[libcxx-dev] Stabilizing libc++'s ABI v2

Louis Dionne via libcxx-dev libcxx-dev at lists.llvm.org
Thu Mar 21 08:07:58 PDT 2019



> On Mar 21, 2019, at 05:54, Eric Fiselier <eric at efcs.ca> wrote:
> 
> 
> libc++ should support only three ABI versions at once: deprecated, stable, and unstable.
> Making v2 stable means deprecating v1.  The time between deprecation and removal
> limits how often we can cut a new ABI.

I'm not sure I agree with this. If the time required for people to move off v1 is too great (and I think it is quite long), I don't see harm in maintaining multiple stable ABI versions at a given time. Basically, each ABI version just opts-in to some new ABI break. Eventually, if a stable ABI version is not needed anymore, it can be removed.

Otherwise, stabilizing ABI v3 will be blocked on the slowest "customer" moving off ABI v1, but in some cases this may be an unbounded amount of time.

Louis

> 
> /Eric
> 
> On Wed, Mar 20, 2019 at 3:47 PM Louis Dionne via libcxx-dev <libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org>> wrote:
> 
> 
>> On Mar 20, 2019, at 14:02, Mikhail Maltsev <Mikhail.Maltsev at arm.com <mailto:Mikhail.Maltsev at arm.com>> wrote:
>> 
>> On 3/20/19 5:24 PM, Marshall Clow via libcxx-dev wrote:
>>> 
>>> 
>>> On Tue, Mar 19, 2019 at 1:10 PM Louis Dionne via libcxx-dev
>>> <libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org> <mailto:libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org>>> wrote:
>>> 
>>>    Hi,
>>> 
>>>    I'd like to know whether folks currently have breaking changes planned for
>>>    the version 2 ABI of libc++. Are we aware of improvements that would require
>>>    breaking the ABI and that we have not implemented yet?
>>> 
>>> 
>>> I have a note to fix XXX::set_value to use call_once when I can break ABI, so I
>>> should do that first.
>> 
>> You also mentioned some <regex>-related changes:
>> https://bugs.llvm.org/show_bug.cgi?id=35967#c2 <https://bugs.llvm.org/show_bug.cgi?id=35967#c2>
> 
> Right, those two items are exactly the kind of thing I was thinking about. Let's implement those and put them behind ABI macros just so we don't forget. When we are ready to stabilize the ABI we won't miss those changes.
> 
> Louis
> 
> _______________________________________________
> libcxx-dev mailing list
> libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org>
> https://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev <https://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libcxx-dev/attachments/20190321/57daf3db/attachment-0001.html>


More information about the libcxx-dev mailing list