Not registered as user yet
Contributions
View general profile
Not registered as user yet
Contributions
Research Papers
Wed 12 Oct 2022 11:20 - 11:40 at Banquet B - Technical Session 12 - Builds and Versions Chair(s): Yi LiBuild scripts play an important role in transforming the source code into executable artifacts. However, the development of build scripts is typically error-prone. As one kind of the most prevalent errors in build scripts, the dependency-related errors, including missing dependencies and redundant dependencies, draw the attention of many researchers. A variety of build dependency analysis techniques have been proposed to tackle them. Unfortunately, most of these techniques, even the state-of-the-art ones, suffer from efficiency issues due to the expensive cost of monitoring the complete build process to build dynamic dependencies. Especially for large-scale projects, such the cost would not be affordable.
In this work, we propose a new technique to accelerate the build dependency error detection by reducing the time cost of the build monitoring. The key idea of this acceleration is to reduce the size of a program while still preserving the same dynamic dependencies as the original one. Building the reduced program does not generate a real software artifact, but it yields the same list of dependency errors and meanwhile speeds up the process. We implement our technique as the tool VirtualBuild, and evaluate it on real-world projects. The results show that VirtualBuild can detect all the dependency errors found by existing tools at a low cost. Compared with the state-of-the-art technique, VirtualBuild accelerates the build process by 8.74 times and further improves the efficiency of error detection by 6.13 times on average. Specifically, in the large-scale project LLVM that contains 5.67 MLoC, VirtualBuild reduces the overall time from over four hours to 38.63 minutes.