arXiv · 2007.12737
Build Scripts with Perfect Dependencies
Abstract
Build scripts for most build systems describe the actions to run, and the dependencies between those actions---but often build scripts get those dependencies wrong. Most build scripts have both too few dependencies (leading to incorrect build outputs) and too many dependencies (leading to excessive rebuilds and reduced parallelism). Any programmer who has wondered why a small change led to excess compilation, or who resorted to a "clean" step, has suffered the ill effects of incorrect dependency specification. We outline a build system where dependencies are not specified, but instead captured by tracing execution. The consequence is that dependencies are always correct by construction and build scripts are easier to write. The simplest implementation of our approach would lose parallelism, but we are able to recover parallelism using speculation.
Explore related subjects
Keep this discovery
Sarah Spall, Neil Mitchell, Sam Tobin-Hochstadt. 2020-07-24. Build Scripts with Perfect Dependencies. https://doi.org/10.1145/3428237
Cite the original work for its findings. Save a collection to share your selection of sources.