[cxx-abi-dev] C++ ABI version 2

Anthony Williams anthony at justsoftwaresolutions.co.uk
Fri Nov 22 09:16:43 UTC 2013


On 21/11/13 18:32, John McCall wrote:
> On Nov 21, 2013, at 12:24 AM, Anthony Williams <anthony at justsoftwaresolutions.co.uk> wrote:
>> On 20/11/13 01:57, Richard Smith wrote:
>>> There are a few things in the current ABI which are known to be
>>> suboptimal, but we cannot change because doing so would introduce an ABI
>>> break. However, vendors sometimes get an opportunity to break their ABI
>>> (or are defining a new ABI), and for some vendors, this is a very common
>>> occurrence. To this end, I think it would be valuable for the ABI
>>> document to describe what we might want to put in a 'Version 2' of the
>>> ABI; that is, a set of changes that we recommend be made whenever a
>>> vendor has a chance to introduce an ABI break.
>>
>>> Are there any other things that it would make sense to change in a
>>> version 2 of the ABI?
>>
>> If people are willing to make an ABI change, it would be great if they
>> could add in the necessary information to allow std::current_exception
>> to take a copy of the exception rather than increasing the reference
>> count on the existing exception.
> 
> You should not expect that anybody is going to make an ABI change
> to an existing platform.

I don't: that much was made quite clear at the WG21 meeting where this
was discussed.

However, I don't think it's unreasonable for version N+1 of a platform
to extend the ABI in this way. Precompiled code written for version N
would continue to run, but code compiled for version N+1 could take
advantage of the new ABI. I expect I could come up with a change that
worked nicer than my quick patch if I put some time into it.

Isn't the point of a "version 2 ABI" that it is different to version 1?
Richard introduced it above as "a set of changes that we recommend be
made whenever a vendor has a chance to introduce an ABI break."

This is a change I would like to see under such circumstances.

Anthony
-- 
Author of C++ Concurrency in Action     http://www.stdthread.co.uk/book/
just::thread C++11 thread library             http://www.stdthread.co.uk
Just Software Solutions Ltd       http://www.justsoftwaresolutions.co.uk
15 Carrallack Mews, St Just, Cornwall, TR19 7UL, UK. Company No. 5478976


More information about the cxx-abi-dev mailing list