PackHunter: Recovering Missing Packages for C/C++ Projects
The reproducibility of software artifacts is a critical aspect of software development and application. However, current research indicates that a notable proportion of C/C++ projects encounter non-reproducibility issues stemming from build failures, primarily attributed to the absence of necessary packages. This paper introduces <small>PackHunter</small>, a novel technique that automates the recovery of missing packages in C/C++ projects. By identifying missing files during the project's build process, <small>PackHunter</small> can determine potentially missing packages and synthesize an installation script. Specifically, it simplifies C/C++ projects through program reduction to reduce build overhead and simulates the presence of missing files via mock build to ensure a successful build for probing missing files. Besides, <small>PackHunter</small> leverages a sophisticated design to eliminate packages that do not contain the required missing files, effectively reducing the search space. Furthermore, <small>PackHunter</small> introduces a greedy strategy to prioritize the packages, eventually recovering missing packages with few times of package enumeration. We have implemented <small>PackHunter</small> as a tool and evaluated it on 30 real-world projects. The results demonstrate that <small>PackHunter</small> can recover missing packages efficiently, achieving 26.59<inline-formula><tex-math notation="LaTeX">$\boldsymbol{\times}$</tex-math></inline-formula> speed up over the state-of-the-art approach. The effectiveness of <small>PackHunter</small> highlights its potential to assist developers in building C/C++ artifacts and promote software reproducibility.
Authors
- Rongxin Wu (ORCID: https://orcid.org/0000-0002-4648-3795)
- Zhong‐Qun Tian (ORCID: https://orcid.org/0000-0002-9775-8189)
- Chengpeng Wang (ORCID: https://orcid.org/0000-0003-0617-5322)
- Xiangyu Zhang (ORCID: https://orcid.org/0000-0002-9544-2500)
- Zhiling Huang (ORCID: https://orcid.org/0009-0007-9673-7435)
Institutions
- Xiamen University (CN)
- Purdue University West Lafayette (US)
Publication Details
- Journal
- IEEE Transactions on Software Engineering
- Published
- 2024-11-27
- DOI
- https://doi.org/10.1109/tse.2024.3506629
- Primary Topic
- Distributed and Parallel Computing Systems
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- National Natural Science Foundation of China