C++ ABI Stability

The cluster focuses on debates about ABI stability in C++, including its challenges, lack of standardization, impacts on libraries like libstdc++, and comparisons to C, Rust, and other languages or platforms.

📉 Falling 0.4x Programming Languages
2,286
Comments
18
Years Active
5
Top Authors
#6523
Topic ID

Activity Over Time

2009
4
2010
9
2011
13
2012
36
2013
37
2014
59
2015
60
2016
136
2017
116
2018
123
2019
114
2020
290
2021
211
2022
379
2023
225
2024
257
2025
191
2026
28

Keywords

COM e.g PTX CI CD digitalmars.com CUDA FFI ABI i.e abi stability compiler stable compiled compatibility compatible rust libraries conventions

Sample Comments

nequo Jan 4, 2024 View on HN

Your sibling comments and responses to them about ABI stability talk about why this is not possible. For example,https://news.ycombinator.com/item?id=38853047

gumby Mar 1, 2020 View on HN

You mean a refusal to break ABI?

ygritte Aug 1, 2025 View on HN

What's the pro of not having a stable ABI?

maxerickson Nov 1, 2019 View on HN

There is work towards a stable abi, that should help with such things, eventually.

I've always heard that it's a backwards compatibility problem with ABI, not API, is that not true?

bluGill Nov 14, 2021 View on HN

The C++ standard committee regularly has debates about breaking the ABI. They forced it for 11, who knows if they will again.

mgaunard May 8, 2023 View on HN

in practice ABI compatibility is holding back libstdc++ more than anything.

zabzonk Feb 14, 2023 View on HN

just to be clear about the abi issues mentioned here, neither c++ nor c have a standardised abi. but there are widely agreed abis for different platforms. standardised language changes can thus not break standardised abis, because the standards don't specify abis.

tsimionescu Jan 24, 2021 View on HN

I think you misunderstood. C++ doesn't even have an official ABI, nevermind having a stable one. ABI changes can and do happen in many C++ implementations (and there is no compatibility across implementations - you can't link a library compiled with clang to one compiled with MSVC). You can't generally expect to link together libraries compiled with different major versions of the same toolchain, though this may be supported by some toolchains.Instead, Rust has defined an ABI a

garaetjjte May 13, 2022 View on HN

Compilers generally try to preserve ABI between versions, or include compatibility options (like -fabi-version in g++)