Releasing C++ Toolchains Weekly in a 'Live at Head' World
summary
Google's C++ production toolchain releases new compiler builds almost every week by ingesting upstream commits, building two-stage PGO binaries, running millions of tests across configurations, and promoting only when A/B benchmarks and sanitizer runs pass. Automated Friday branches, deterministic rebuilds, and bisecting with C-Reduce and llvm-reduce find culprits; performance uses micro/macro/public suites with statistical runs and visualization. The process regularly ships and keeps regressions small under weekly live-at-head releases.
AI-written summary · about
chapters (23)
- 0:00Introduction
- 1:17What is a toolchain
- 3:51Why shorter feedback cycles
- 11:32How a toolchain changes
- 17:17Performance testing
- 20:42Benchmarking
- 28:03Failures
- 28:56Compiler Diagnostics
- 30:46Compiler Crashes
- 32:16Other Bad Things the Compiler Can Do
- 32:59Undefined Behavior
- 36:54Hirams Law
- 37:21Ordering
- 38:14Floatingpoint arithmetic
- 39:28Miss compiles
- 46:35Its not that hard
- 48:02How can you do this
- 52:14Do you have any measure
- 52:54Does the code change
- 53:34Source Control
- 54:24Tagging
- 55:34Central repository
- 58:29Reproducible Benchmarks
related talks
23mMoving Fast With Complex...
38mSIG Release - Deep Dive: Release Engineering Subproject
01h 14m“Using build2, C++ Build Toolchain"
01h 00m“Deploying C++ modules to 100s of millions of lines of code"
46mBuilding and Packaging Modern C++
29mOur Journey to Fully Automated Weekly Releases
17mShipping a stable compiler every six weeks
58m"Just switch the compiler", they said
