~/talk

C++ API & ABI versioning

Talkat ACCU 2018 · 2018-04-11..04-14· [c-and-cpp, software-architecture]
slides:none on file

Defines API as a contract and ABI as how binaries talk, and shows which exact edits break what: changing a function signature triggers name mangling mismatches and link errors, reordering or adding virtuals corrupts vtable layout, and adding or moving struct members changes sizes/offsets and breaks binaries. Recommends clang tooling to generate AST-based patches for automated client upgrades, using inline namespaces and PIMPL to preserve ABI, and contrasts traditional semantic versioning with Live at Head and Google’s bot-driven migration workflow.

AI-written summary · about

  1. 0:00Intro
  2. 1:55Questions to ask yourself
  3. 6:43Reasonable use
  4. 9:38API
  5. 14:05Categorizing Changes
  6. 15:28Contract Changes
  7. 17:03Practical Impact
  8. 18:29Nonbreaking Impact
  9. 19:05Undefined Behavior
  10. 21:34Breaking Changes
  11. 26:18No compiler ISO
  12. 26:34ABI
  13. 28:17Mangling
  14. 31:22Symbol ID
  15. 32:29Inline functions
  16. 35:11Table layouts
  17. 37:26Binary representation of types
  18. 38:10Example
  19. 41:04General rule
  20. 41:50Compatibility with C
  21. 42:45ABI padding
  22. 44:06Semantic versioning
  23. 45:59Binary compatibility
  24. 47:36Traditional ABI
  25. 48:04Major minor patch
  26. 48:49Minor ABI patch
  27. 49:09ABI compatibility
  28. 49:28Allow upgrades
  29. 52:22Databydesign
  30. 54:08Documentation
  31. 55:34ABI in versioning
  32. 56:36Inline namespaces
  33. 57:15Inline namespace example
  34. 59:26Dependencies
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.