Build Scripts with Perfect Dependencies [article]

Sarah Spall and Neil Mitchell and Sam Tobin-Hochstadt
2020 arXiv   pre-print
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
more » ... 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.
arXiv:2007.12737v1 fatcat:lndgdlf75jdjnbsfwrjp2oe66e