Building Modules
summary
Explains three concrete build strategies—textual modules, implicit build, and explicit build—and measures their trade-offs: modules trade serialization for deduplication, adding synchronization and BMI caching overhead but enabling reuse across translation units. Presents a pre-scan tool that produces a full module build graph in seconds (3 s for LLVM/Clang: ~7,000 files, 3.8M LOC on an 18-core iMac Pro), shows when BMI generation or header-units emit .o artifacts, and gives concrete mapping and invalidation solutions.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 1:10What are modules
- 7:54Module translation units
- 13:54Dependency problem
- 25:47Build strategies
- 32:10Mapping problem
- 43:42Q&A part 1
- 57:24Q&A part 2
- 1:03:00Conclusion
related talks
58mWhy Modules?: It's not about build time
01h 01mLarge Scale C++ with Modules: What You Should Know
35mHow we brought down our build times. Modularization impact on build speeds and metrics
59mC++ Modules and Large-Scale Development
32mVisibility, Reachability, Linkage – The Three Secret Spices of C++ Modules
01h 30mC++ Modules and Large-Scale Development
01h 01mC++20 Modules - Review of the Current State of C++ Modules 2024
01h 30mC++ Modules and Large-Scale Development
