You're viewing the readable version of this site. The interactive extras (search, diagrams, read-aloud) need JavaScript and a current browser. Enable JavaScript; if it is already enabled, update your browser.

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.

  1. The Build Is Proportional to the Change — What every build system is really doing — and the one decision that separates the ones that scale.
  2. The Build That Restarts Itself — Inside Skyframe, Bazel's incremental engine — and the strange trick at its heart.
  3. 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.
  4. 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.
  5. 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.