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

Institutions

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

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

PackHunter: Recovering Missing Packages for C/C++ Projects

Rongxin Wu, Zhong‐Qun Tian, Chengpeng Wang, Xiangyu Zhang et al.
IEEE Transactions on Software Engineering
Distributed and Parallel Computing Systems
article

PackHunter: Recovering Missing Packages for C/C++ Projects

Rongxin Wu, Zhong‐Qun Tian, Chengpeng Wang, Xiangyu Zhang, Zhiling Huang
article en

Abstract

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.

IEEE Transactions on Software EngineeringVol. 51(1)
Xiamen University (CN), Purdue University West Lafayette (US)
National Natural Science Foundation of China
Openalex Percentile: Top 76%
Distributed and Parallel Computing Systems
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.