Главная
Study mode:
on
1
Intro
2
Questions to ask yourself
3
Reasonable use
4
API
5
Categorizing Changes
6
Contract Changes
7
Practical Impact
8
Nonbreaking Impact
9
Undefined Behavior
10
Breaking Changes
11
No compiler ISO
12
ABI
13
Mangling
14
Symbol ID
15
Inline functions
16
Table layouts
17
Binary representation of types
18
Example
19
General rule
20
Compatibility with C
21
ABI padding
22
Semantic versioning
23
Binary compatibility
24
Traditional ABI
25
Major minor patch
26
Minor ABI patch
27
ABI compatibility
28
Allow upgrades
29
Databydesign
30
Documentation
31
ABI in versioning
32
Inline namespaces
33
Inline namespace example
34
Dependencies
Description:
Explore C++ API and ABI versioning in this comprehensive ACCU 2018 conference talk by Mathieu Ropert. Delve into the intricacies of maintaining software libraries, understanding the differences between API and ABI, and managing breaking and non-breaking changes. Learn about API contracts, ABI concepts such as mangling and vtable layout, and the importance of sizes, alignment, and offsets in data structures. Discover key versioning strategies like Semantic Versioning and Live at Head, and how they can be applied to handle API and ABI changes over time. Gain practical insights into categorizing changes, managing undefined behavior, and ensuring compatibility with C ABI padding. Understand the significance of inline namespaces, dependencies, and proper documentation in maintaining long-term library stability and client adaptability.

C++ API & ABI Versioning

ACCU Conference
Add to list
0:00 / 0:00