Analyzing C/C++ Library Migrations at the Package-level: Prevalence, Domains, Targets and Rationals across Seven Package Management Tools
Haiqiao Gu, Yiliang Zhao, Kai Gao, Minghui Zhou

TL;DR
This paper provides the first comprehensive analysis of C/C++ library migrations, revealing their prevalence, domains, reasons, and comparison with other programming languages, based on a dataset of nearly 20,000 projects.
Contribution
It introduces the first C/C++ library migration dataset and analyzes migration patterns, reasons, and differences compared to Python, JavaScript, and Java ecosystems.
Findings
C/C++ migrations are similar to Java in trend.
Most C/C++ libraries have only one migration target.
Four C/C++-specific migration reasons identified.
Abstract
Library migration happens when a library can not meet the project's requirements and is non-trivial to accomplish. To mitigate the problem, substantial efforts have been devoted to understanding its characteristics and recommending alternative libraries, especially for programming language (PL) ecosystems with a central package hosting platform, such as Python (PyPI). However, to the best of our knowledge, understanding of C/C++ library migrations is still lacking, possibly due to challenges resulting from the fragmented and complicated dependency management practices in the C/C++ ecosystem. To bridge this knowledge gap, this paper analyzes 19,943 C/C++ projects that utilize different package management tools and establishes the first C/C++ library migration dataset. Based on the dataset, we investigate the prevalence, domains, target library, and rationale of C/C++ library migrations…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
