Series
The Build systems series
5 pieces, in order — a build systems series.
The Build systems series, read in order. Part of Dissecting Real Systems.
- The Build Is Proportional to the Change — What every build system is really doing — and the one decision that separates the ones that scale.
- The Build That Restarts Itself — Inside Skyframe, Bazel's incremental engine — and the strange trick at its heart.
- There Are No Phases — Buck2's DICE engine collapses load, analysis, and execution into a single graph — and the decision to rebuild rather than adopt.
- A Language That Can't Loop Forever — Bazel's Starlark forbids unbounded loops and recursion on purpose, and gets analyzability, caching, and parallelism in return. Buck2 quietly allows recursion back — and the split shows which restriction is load-bearing.
- The Hash Is the Identity — Content-addressing in the build cache — content-addressed storage and Merkle trees turn a build cache into a shared resource, so your build is proportional to anyone's change.