Affiliation:
1. Cambridge, United Kingdom
Abstract
Most complex software projects are compiled using a build tool (e.g. make), which runs commands in an order satisfying user-defined dependencies. Unfortunately, most build tools require all dependencies to be specified
before
the build starts. This restriction makes many dependency patterns difficult to express, especially those involving files generated at build time. We show how to eliminate this restriction, allowing additional dependencies to be specified while building. We have implemented our ideas in the Haskell library Shake, and have used Shake to write a complex build system which compiles millions of lines of code.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference12 articles.
1. Design recovery and maintenance of build systems
2. Build-level components
3. Berwyn Hoyt Bryan Hoyt and Ben Hoyt. fabricate - the better build tool. http://code.google.com/p/fabricate 2009. Berwyn Hoyt Bryan Hoyt and Ben Hoyt. fabricate - the better build tool. http://code.google.com/p/fabricate 2009.
4. Scrap your boilerplate
Cited by
14 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Options Matter: Documenting and Fixing Non-Reproducible Builds in Highly-Configurable Systems;Proceedings of the 21st International Conference on Mining Software Repositories;2024-04-15
2. Enabling Fine-Grained Incremental Builds by Making Compiler Stateful;2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO);2024-03-02
3. A Software Architecture Based on Coarse-Grained Self-Adjusting Computations;Proceedings of the 1st ACM SIGPLAN International Workshop on Functional Software Architecture;2023-08-30
4. Towards incremental build of software configurations;Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: New Ideas and Emerging Results;2022-05-21
5. On the benefits and limits of incremental build of software configurations;Proceedings of the 44th International Conference on Software Engineering;2022-05-21