paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Escaping dependency hell: finding build dependency errors with the unified dependency graph

逃离依赖地狱:用统一依赖图发现构建依赖错误
ISSTA Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis2020匹配度 3/10 · 论文属于程序分析/软件工程中的构建依赖错误检测,提出了静态与动态信息融合的依赖图及工业级工具,与用户关注的浮点程序分析、贝叶斯程序分析以及 LLM/Agent 与静态分析的交叉均无直接关系。仅可勉强归入广义静态分析/开发者工具方向,但不在其核心研究画像内。引用 38 inbox
Gang Fan, Chengpeng Wang, Rongxin Wu, Xiao Xiao, Qingkai Shi, Charles Zhang
crossref: 2026-09-12

AI 速览

一句话:提出统一依赖图 UDG,融合静态与动态信息编码声明与实际依赖,实现高效精确的构建依赖错误检测工具 VeriBuild。

现代软件项目依赖构建系统与构建脚本生成可执行产物,但脚本中的依赖错误(缺失依赖、冗余依赖)十分常见,会导致构建失败、结果错误或增量/并行构建性能下降。现有检测技术因底层依赖图不足而效率低、误报高。本文提出统一依赖图 UDG,同时利用静态与动态信息,统一编码构建目标与文件之间的声明依赖和实际依赖;基于 UDG,仅需简单图遍历即可高效且精确地检测依赖错误。作者实现工具 VeriBuild,并在 42 个维护良好的开源项目上评估。结果显示,在不损失精度的情况下,VeriBuild 的开销比当前最优方法降低 58.2%,已有 398 个检测到的依赖问题被开发者确认。

问题
构建脚本中的缺失或冗余依赖错误会导致构建失败、构建结果错误以及增量或并行构建性能下降;现有检测技术受底层依赖图缺陷影响,效率低且误报高。
方法
提出统一依赖图 UDG,融合静态与动态信息统一编码构建目标与文件间的声明依赖和实际依赖,并通过简单图遍历检测依赖错误;该方法的实现工具为 VeriBuild。
评估
在 42 个维护良好的开源项目上评估 VeriBuild,结果表明其在不损失精度的情况下开销比当前最优方法降低 58.2%,检测到的 398 个依赖问题已被开发者确认。
原文摘要(Abstract)

Modern software projects rely on build systems and build scripts to assemble executable artifacts correctly and efficiently. However, developing build scripts is error-prone. Dependency-related errors in build scripts, mainly including missing dependencies and redundant dependencies, are common in various kinds of software projects. These errors lead to build failures, incorrect build results or poor performance in incremental or parallel builds. To detect such errors, various techniques are proposed and suffer from low efficiency and high false positive problems, due to the deficiency of the underlying dependency graphs. In this work, we design a new dependency graph, the unified dependency graph (UDG), which leverages both static and dynamic information to uniformly encode the declared and actual dependencies between build targets and files. The construction of UDG facilitates the efficient and precise detection of dependency errors via simple graph traversals. We implement the proposed approach as a tool, VeriBuild, and evaluate it on forty-two well-maintained open-source projects. The experimental results show that, without losing precision, VeriBuild incurs 58.2% less overhead than the state-of-the-art approach. By the time of writing, 398 detected dependency issues have been confirmed by the developers.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6060,
  title = {Escaping dependency hell: finding build dependency errors with the unified dependency graph},
  author = {Gang Fan and Chengpeng Wang and Rongxin Wu and Xiao Xiao and Qingkai Shi and Charles Zhang},
  booktitle = {ISSTA},
  year = {2020},
  doi = {10.1145/3395363.3397388}
}