A Context-Oriented Programming Approach to Dependency Hell
Two or more incompatible versions of a library are sometimes needed in one software artifact, which is so-called dependency hell. One likely faces the problem if he or she uses two or more libraries that depend on the same library. We propose a context-oriented programming language VL as a solution to the problem. It treats versions as contexts and allows multiple versions of definitions such as classes, methods, and functions coexist in a binary file, which gets rid of requiring two or more incompatible binaries. We show in this paper a sketch of VL by using an example situation of incompatibility among versions that is simplified from the one found in the ASM bytecode engineering library. We also show a core calculus of VL to discuss type safety in the case where definitions are available only in specific versions, which is a common and important nature of versioned programs.
Conference DayMon 16 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:30
|A Context-Oriented Programming Approach to Dependency Hell|
|Feature Visualiser: an Inspection Tool for Context-Oriented Programmers|
|A Declarative Language for Context Activation|
Nicolás CardozoUniversidad de los Andes