Swift ABI Resilience
summary
Swift implements a concrete ABI resilience model: per-module resilience domains that let library-internal code use direct layouts while consumers use runtime metadata (cached at load) like the value witness table to compute size/offset/stride, with LLVM support for dynamic stack layout and outlining; opt-outs exist (e.g. fixed layout or forced inlining) for performance. Tradeoffs: a heavier runtime, runtime bookkeeping, tricky generics and the cost only appears when crossing domain boundaries.
AI-written summary · about
chapters (6)
- 0:00Introduction
- 3:55ABI resilience meaning
- 12:52Prioritizing ABI stability
- 22:15C++ ABI stability signals
- 34:59Swift ABI resilience approach
- 53:42Q&A
related talks
01h 09mABI Stability Strikes Back
49mState of Swift Internals: Swift 4 & 5
19mWhat's up with Swift 5
36mSWIFT ABI Essentials: How to Maximize Your App's Efficiency
05mBinary Frameworks in Swift
51mSwift 2 Under the Hood
58mSwift: safety, ergonomics, productivity and legacy preservation
57mExploring Swift Memory Layout
