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.
Activity Over Time
Top Contributors
Keywords
Sample Comments
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
You mean a refusal to break ABI?
What's the pro of not having a stable ABI?
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?
The C++ standard committee regularly has debates about breaking the ABI. They forced it for 11, who knows if they will again.
in practice ABI compatibility is holding back libstdc++ more than anything.
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.
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
Compilers generally try to preserve ABI between versions, or include compatibility options (like -fabi-version in g++)