Abstract

This disclosure describes content-addressed build tools and techniques to accelerate the checkout of source code and building of software binaries. The techniques leverage the observation that a typical software build is highly cacheable, and major parts of a build are reusable when code changes are made. In contrast to traditional, timestamp-based build tools, the techniques use content hashes to trigger rebuilding. A Merkle Tree File System (MTFS) provides a content-hash of the directories and files of the software project. Build inputs are not required to be fully or correctly specified. Files and directories are lazily loaded upon actual access, such that a developer need not wait for the entire source tree to download before use. Interactions with the file system are recorded and can be replayed/reused by other builds to save time and compute resources. The techniques can substantially reduce checkout and build times.

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.

Share

COinS