Boost logo

Boost :

From: Jeff Garland (azswdude_at_[hidden])
Date: 2020-12-02 15:58:20


On Wed, Dec 2, 2020 at 8:50 AM Andrey Semashev via Boost <
boost_at_[hidden]> wrote:

> On 12/2/20 6:42 PM, Jeff Garland via Boost wrote:
> > On Wed, Dec 2, 2020 at 3:12 AM Andrey Semashev via Boost <
> > boost_at_[hidden]> wrote:
> >>
> >> You have to give credit to libstdc++ developers at the very least. It
> >> maintains backward ABI compatibility across all C++ standard versions
> >> and across libstdc++ releases for many years. I think, libc++ also does
> >> the same, although I'm not following its development.
> >
> > Well 'the credit' is that anything that changes the std:: ABI is a fight
> in
> > the committee -- there's even a special working group - so real tough to
> > get an ABI change into the standard. To me it makes sense that boost
> > should break ABI like mad and the standard should strive for more
> stability
> > with occasional ABI breaks.
>
> Although the committee does monitor changes that may affect ABI in real
> implementations, the standard does not define the ABI. It is
> implementors burden to maintain a stable ABI.
>

It doesn't need to define ABI for it to be real -- the library implementers
are very aggressive in limiting ABI breaks. The former LEWG chair (Titus)
was quite vocal in wanting to remove this constraint leading to vigorous
debates and a vote which basically affirmed that the committee was very
split on the matter, but preferred stability.

As an example of this, libstdc++ had to switch their basic_string to a
> non-reference counted implementation when they added support for C++11,
> and they had to maintain both versions ever since. The standard,
> obviously, only defines one basic_string.
>

And that was the last ABI break that made it thru the committee -- so a
good decade ago.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk