Package managers, such as NPM, are critical components of modern software development, allowing programmers to access large ecosystems full of useful packages. Given only a few lines of configuration, a package manager automates the downloading and installation of perhaps hundreds of (transitive) dependencies. To achieve this, package managers perform dependency solving to choose which concrete versions of dependencies to install. However, different solvers select dependency versions in very different ways, which affects correctness, code size, and other factors of the final bundled software in ways that are opaque and confusing to programmers. Moreover, the exact behaviors of dependency solvers are defined by their implementations, rather than by specifications, which inhibits systematic comparisons of dependency solvers, whether looking at formal properties or empirical evaluations. We present PacSolve, a unifying formal semantics of dependency solving. PacSolve is parameterized along several key axes, allowing it to compactly represent the key features and differences between NPM, PIP and Cargo, and to express a wide variety of alternative semantics for dependency solving. We then build an executable implementation of PacSolve using Rosette, and use it to implement a drop-in replacement for NPM called MinNPM. MinNPM allows the user to customize both the consistency criteria and optimization objectives. We show empirically that MinNPM shrinks the footprint of 21% of the top 1,000 most downloaded NPM packages with at least one dependency, and that it produces a newer set of dependencies for 14%. We also use MinNPM to answer key empirical questions about dependency solver design. Notably, we show that NPM's tree-solving semantics is only necessary for 1.9% of its packages, and that MinNPM gives higher quality solutions while taking only 2.6 seconds longer than NPM on average.


翻译:国家防范机制等软件包管理器是现代软件开发的关键组成部分,使程序设计员能够使用大量有用的软件包。鉴于只有几行配置,一个软件包管理器可以自动下载和安装大约数百种(透明)依赖性。为此,软件包管理者将依赖性解决方案用于选择哪一种具体版本的可安装的依赖性解决方案。然而,不同的国家防范机制管理者只以非常不同的方式选择依赖性版本,这影响到国家防范机制、代码大小和最终捆绑软件的其他因素的正确性能,对程序设计者来说是不透明、不易理解的。此外,依赖性解决者的确切行为是由其实施过程确定的,而不是由规格决定的,这阻碍了对依赖性解决者的设计者进行系统化比较,无论是看正式的属性还是经验性评估。我们介绍PacSolve, 一种统一的解决依赖性标准。PacSolveve, 沿着几个关键轴进行比较,这只代表了国家防范机制、PIP和货物之间的关键特征和差异,以及表达出多种解决依赖性的替代方法。我们随后需要的可操作性Mmmalmmmmmmmmmmmmmmmmmmmmdroom 。我们用一个最差的软化的软化的软化软化的软化的软化的软化版本化版本化版本,用Sexmmmmmmmmmmmmmmmolational

0
下载
关闭预览

相关内容

Automator是苹果公司为他们的Mac OS X系统开发的一款软件。 只要通过点击拖拽鼠标等操作就可以将一系列动作组合成一个工作流,从而帮助你自动的(可重复的)完成一些复杂的工作。Automator还能横跨很多不同种类的程序,包括:查找器、Safari网络浏览器、iCal、地址簿或者其他的一些程序。它还能和一些第三方的程序一起工作,如微软的Office、Adobe公司的Photoshop或者Pixelmator等。
专知会员服务
50+阅读 · 2020年12月14日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
全球首个GNN为主的AI创业公司,募资$18.5 million!
图与推荐
1+阅读 · 2022年4月16日
【ICIG2021】Check out the hot new trailer of ICIG2021 Symposium9
中国图象图形学学会CSIG
0+阅读 · 2021年12月17日
【ICIG2021】Check out the hot new trailer of ICIG2021 Symposium8
中国图象图形学学会CSIG
0+阅读 · 2021年11月16日
【ICIG2021】Check out the hot new trailer of ICIG2021 Symposium7
中国图象图形学学会CSIG
0+阅读 · 2021年11月15日
【ICIG2021】Check out the hot new trailer of ICIG2021 Symposium6
中国图象图形学学会CSIG
2+阅读 · 2021年11月12日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Slowly Varying Regression under Sparsity
Arxiv
0+阅读 · 2022年9月1日
Arxiv
0+阅读 · 2022年9月1日
Arxiv
23+阅读 · 2018年10月1日
VIP会员
相关VIP内容
相关资讯
全球首个GNN为主的AI创业公司,募资$18.5 million!
图与推荐
1+阅读 · 2022年4月16日
【ICIG2021】Check out the hot new trailer of ICIG2021 Symposium9
中国图象图形学学会CSIG
0+阅读 · 2021年12月17日
【ICIG2021】Check out the hot new trailer of ICIG2021 Symposium8
中国图象图形学学会CSIG
0+阅读 · 2021年11月16日
【ICIG2021】Check out the hot new trailer of ICIG2021 Symposium7
中国图象图形学学会CSIG
0+阅读 · 2021年11月15日
【ICIG2021】Check out the hot new trailer of ICIG2021 Symposium6
中国图象图形学学会CSIG
2+阅读 · 2021年11月12日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
相关基金
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Top
微信扫码咨询专知VIP会员