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 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:30 | Session 2COP at Bangkok Chair(s): Tetsuo Kamina Oita University, Jens Lincke Hasso Plattner Institute | ||
14:00 30mTalk | A Context-Oriented Programming Approach to Dependency Hell COP Yudai Tanabe Tokyo Institute of Technology, Tomoyuki Aotani Tokyo Institute of Technology, Hidehiko Masuhara Tokyo Institute of Technology | ||
14:30 30mTalk | Feature Visualiser: an Inspection Tool for Context-Oriented Programmers COP Benoît Duhoux Université catholique de Louvain, Belgium, Kim Mens Université Catholique de Louvain, Belgium, Bruno Dumas | ||
15:00 30mTalk | A Declarative Language for Context Activation COP Nicolás Cardozo Universidad de los Andes |