▲ | nickelpro 7 months ago | |
This isn't about language ABI, which is the realm of the various implementations which have their own stability guarantees. ABI stability in the context of the standards committee is about library ABI, specifically the standard library. When the committee updated the wording about C++'s std::string in C++11, it meant implementers needed to change the layout of a std::string, making this "new" std::string incompatible with the "old" std::string. Any libraries passing std::string across API boundaries needed to be recompiled with the "new" std::string. This has no effect on FFIs for interop with other languages, which are not passing STL types across language boundaries to begin with (a std::string has no meaning in Python). ABI stability for the standard library is motivated by large, old, coroporate codebases which had poor API practices, passed STL types across ABI boundaries, and subsequently lost access to the source code of those libraries and applications or otherwise cannot recompile them for some reason. Many people question the wisdom of catering to such users. | ||
▲ | account42 7 months ago | parent | next [-] | |
> ABI stability for the standard library is motivated by large, old, coroporate codebases which had poor API practices, passed STL types across ABI boundaries, and subsequently lost access to the source code of those libraries and applications or otherwise cannot recompile them for some reason. Many people question the wisdom of catering to such users. It's also motivated by Linux distributions and other complex systems where rebuilding and installing the world in one go is not possible/feasible. | ||
▲ | dead_gunslinger 7 months ago | parent | prev [-] | |
[dead] |