C++ Logo

std-proposals

Advanced search

Re: [std-proposals] Possible clean API break solution

From: Thiago Macieira <thiago_at_[hidden]>
Date: Sat, 03 Sep 2022 13:06:43 -0300
On Saturday, 3 September 2022 12:23:22 -03 Marcin Jaczewski wrote:
> Mainly because most of the problems will land on the hands of the end
> user and he will need
> to mix and match code from different versions. And best would be if
> same solution
> would work in every compiler.

> All compilers will have the same set of attributes? Another thing is
> that you would need
> add attributes on types that do not belong to you like form header
> from external source.

Yes. All those that are interested in the concept of retaining ABI
compatibility amongst themselves already do share a common lexicon of
attributes. They can and do coordinate amongst themselves. Those compilers
that don't care about this don't need to support those attributes.

Moreover, having a solution for ABI breaking would allow them flexibility to do
it or not do it at other points in time, if they need to. It could be used for
other libraries too, not just the Standard Library.

Your paper, if it's providing a cost analysis, should analyse the
alternatives, so the committee can weigh whether they want to opt to make
changes that would require ABI. You're not doing that. You've focused on ONE
possible solution, to the exclusion of all others.

But let me give you an argument why it should be a limited set of
possibilities: because this is a loaded gun. If it is not done carefully, it
could break a lot of things. So there's value in only having it on the hands
of experts.

> Ok, my point was more that you do not get full C++ by default.
> This is indead a different magnitude of change but some way it is precedens.

You do. The fact that you must link to certain libraries (temporarily or
permanently) is not "less than full".

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DCAI Cloud Engineering

Received on 2022-09-03 16:06:48