API & ABI versioning
summary
Defines concrete rules that decide compatibility: which symbol names change, how mangling and vtable layout and struct offsets alter binaries, and when those become breaking. Explains mapping of changes to semantic versioning (major.minor.patch) and contrasts it with a live-at-head workflow. Shows practical mitigations: use the same compiler, export-control macros, and clang-based automatic refactoring to update callsites. Counts of surprises come from missing symbols or mismatched sizes not from high-level topics.
AI-written summary · about
chapters (8)
- 0:00Introduction to versioning
- 2:13Library lifecycle basics
- 8:33Understanding the API
- 12:39Types of API changes
- 22:11The C++ ABI explained
- 35:21Versioning strategies
- 45:15Best practices for releases
- 49:01Compatibility quiz
related talks
01h 02mBinary compatibility 100
01h 00mABI Resilience
52mBuilding Bridges: C++ Interop, Foreign Function Interfaces & ABI
01h 02mBack to Basics: The Structure of a Program
01h 03mHidden Overhead of a Function API
06mMy least favorite C++ feature
01h 02mEmbedded Friendly C++: Features That Make a Difference
57mBack to Basics: The Abstract Machine
