Abstract:
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. In this paper, we propose versioned values to solve the problem. They allow us to have multiple versions of functions in a binary file. This gets rid of requiring two or more incompatible binaries. We develop a calculus $\lambda_{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.
Reference:
A Context-Oriented Programming Approach to Dependency Hell (Yudai Tanabe, Tomoyuki Aotani and Hidehiko Masuhara), In Proceedings of the 10th International Workshop on Context-Oriented Programming: Advanced Modularity for Run-time Composition, ACM, 2018.
Bibtex Entry:
@inproceedings{tanabe2018cop,
author = {Yudai Tanabe and Tomoyuki Aotani and Hidehiko Masuhara},
title = {A Context-Oriented Programming Approach to Dependency Hell},
booktitle = {Proceedings of the 10th International Workshop on Context-Oriented Programming: Advanced Modularity for Run-time Composition},
series = {COP '18},
year = 2018,
isbn = {978-1-4503-5722-7},
location = {Amsterdam, Netherlands},
month = jul,
date = {2018-07-16},
pages = {8--14},
numpages = {7},
url = {http://doi.acm.org/10.1145/3242921.3242923},
pdf = {cop2018.pdf},
doi = {10.1145/3242921.3242923},
acmid = {3242923},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Coeffects, Context-Oriented Programming, Contexts},
abstract = {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. In this paper, we propose versioned
values to solve the problem. They allow us to have multiple versions
of functions in a binary file. This gets rid of requiring two or more
incompatible binaries. We develop a calculus $\lambda_{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.}
}