Build Scripts with Perfect Dependencies

24 Jul 2020  ·  Spall Sarah, Mitchell Neil, Tobin-Hochstadt Sam ·

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.

PDF Abstract
No code implementations yet. Submit your code now

Categories


Programming Languages

Datasets


  Add Datasets introduced or used in this paper