Re:The C++ Lifetime Profile: How It Plans to Make C++ Code S...
by paulddraper on Friday January 24, 2020 @02:45PM
(#22141762)
The legitimate difference between C and C++ ABIs is that the C ABI is easier to understand and reason about.
It's analogous to Java and Scala; each has an ABI, but it's easier to tell when the former breaks ABI than the latter.
Re:The C++ Lifetime Profile: How It Plans to Make C++ Code S...
by likeliv on Friday January 24, 2020 @05:49PM
(#22143139)
That's right. C being more limited, it has a more simplistic ABI. But the parent comment was replying the "need for a stable, standard ABI, which C provide". Which is misleading as both C++ and C have the same level of stability and standardisation of their ABI. (I.e: none of them is standardized, but both of them are stable on practice)
Re:The C++ Lifetime Profile: How It Plans to Make C++ Code S...
by paulddraper on Friday January 24, 2020 @06:22PM
(#22143325)
Yep, you're right.
There is a difference, but the difference is in complexity, not availability.
Standard library implementations do not necessarily share the same ABI, but it is possible to interoperate between libc++ and libstdc++, and libstdc++ maintains ABI compatibility across different versions.
And, to be pedantic, C does not provide a stable, standard ABI. It is the platforms themselves that provide this ABI standard, and these platforms equally provide a C++ ABI standard. So C++ ABI compatibility is no more or less a problem than C ABI compatibility.