Automatic Caching for C++ Builds: Merging Git and the Compiler
summary
Claim: merge Git with the build system so Ninja and CMake reuse actual build outputs by commit id rather than mtimes. The system uses Git mirroring, binds Git to Ninja, creates content-addressable snapshots of build trees, packs them with Zstd pack compression and exposes them to remote builders so a 10 GB build tree can be represented in a few megabytes and 300 historical revisions fit in ~100 MB. Works cross platform and yields fast incremental CI and local rebuilds.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 2:30Why builds are slow
- 5:42Limitations of file timestamps
- 7:30Git for build trees fails
- 9:17Git meets build systems
- 10:42Introducing Build Checker
- 12:30TP’s caching in practice
- 14:59Live demo
- 17:33Open source and closing
related talks
46mBuilding and Packaging Modern C++
54mCMake for the Impatient
05mSet it and forget it!
33mBehind the Scenes of a C++ Build System
01h 04mBetter CMake: A World Tour of Build Systems - Better C++ Builds
47mSo you think you know Git: Advanced Git Tips and Tricks
38mBuying More Time for Innovation
01h 10mCreating efficient, convenient and reliable CI
