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.
Mon 16 Jul
|14:00 - 14:30|
|14:30 - 15:00|
|15:00 - 15:30|
Nicolás CardozoUniversidad de los Andes