paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Automatic Fixing of Missing Dependency Errors

自动修复缺失依赖错误
ASE 2025 40th IEEE/ACM International Conference on Automated Software Engineering (ASE)2025匹配度 5/10 · 论文关注自动修复 Makefile 缺失依赖错误,属于软件工程中的程序修复,使用了声明图和自动提示生成(可能涉及 LLM)。与用户核心方向(浮点/贝叶斯程序分析、LLM 改进静态分析/形式化验证、Agentic 程序静态分析)交叉有限,但工业落地和问题驱动特征符合用户偏好。引用 0 inbox
Jun Lyu, He Zhang, Lanxin Yang, Yue Li, Chenxing Zhong, Manuel Rigger
crossref: 2026-09-12

AI 速览

一句话:提出 MDfixer,通过识别 Makefile 的依赖声明风格并生成同风格补丁,自动修复缺失构建依赖错误。

许多构建系统(如 Make)依赖用户编写的构建脚本声明依赖,而 Makefile 中的缺失依赖(Missing Dependencies, MDs)会导致增量构建编译或链接过时产物,阻碍项目更新。已有研究多关注 MD 检测,自动修复仍具挑战,原因在于 Makefile 语义复杂且项目维护者声明依赖的方式多样。本文提出 MDfixer:根据错误报告定位出错目标的依赖声明,为每个出错构建目标构建声明图,并基于目标与依赖之间的距离度量识别其声明风格;随后结合声明图与自动提示生成,为需补充的依赖生成同风格补丁。作者在 35 个知名项目上评估,结果显示 MDfixer 能修复所有 MDs;向 17 个项目提交了 2,786 个依赖问题修复,其中 11 个项目合并了 pull request,共修复 2,099 个错误;修复一个项目平均耗时 3.31 分钟,中位数为 62.999 秒。

问题
Makefile 中的缺失依赖会导致增量构建使用过时产物,但已有工作主要关注检测而非自动修复;Makefile 语义复杂、依赖声明风格多样,使自动修复十分困难。
方法
MDfixer 依据错误报告定位出错目标的依赖声明,构建声明图,并基于目标与依赖间的距离度量识别声明风格,再通过声明图与自动提示生成同风格补丁。
评估
在 35 个知名项目上评估修复效果与效率,并向 17 个项目提交 2,786 个依赖问题修复,统计 PR 合并情况与修复错误数及耗时。
原文摘要(Abstract)

Many build systems, such as Make, rely on build scripts that are written by users to specify dependencies. As a serious dependency error in Makefiles, Missing Dependencies (MDs) can result in compiling and linking outdated artifacts in incremental builds, preventing software project updates from being applied correctly. Many studies have explored the detection of MDs. Automatically fixing those missing build dependency errors has become an apparent but challenging task. The challenges mainly result from Makefiles having complex semantics and project maintainers declaring dependencies in a variety of ways. To address these challenges, we propose a new approach to fixing MDs called MDfixer. The core idea of MDfixer is to identify the dependency declaration style in a Makefile and generate patches for the same declaration style based on declaration graphs and automatic prompt generation. Specifically, MDfixer locates dependency declarations for targets that have errors in the Makefile based on error reports, and then builds a declaration graph for each build target with errors and identifies the target’s declaration style based on a distance metric between the target and the dependencies. Based on the declaration graph and automatic prompt generation, MDfixer generates patches with the same style for the dependencies that need to be added. We evaluated the effectiveness and efficiency of MDfixer with 35 well-known projects. The evaluation results show that MDfixer can fix all MDs. We submitted fixes for 2,786 individual dependency issues across 17 projects, with 11 of them merging our pull requests, resulting in a total of 2,099 errors being fixed. MDfixer consumes an average time of 3.31 min for fixing a project, with a median of 62.999s. It can assist practitioners in the effective and efficient fixing of MDs.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot9233,
  title = {Automatic Fixing of Missing Dependency Errors},
  author = {Jun Lyu and He Zhang and Lanxin Yang and Yue Li and Chenxing Zhong and Manuel Rigger},
  booktitle = {ASE},
  year = {2025},
  doi = {10.1109/ase63991.2025.00056}
}