C++ Logo

std-proposals

Advanced search

Re: [std-proposals] PR: std::allocator<T>::allocate is not freestanding

From: Brian Bi <bbi5291_at_[hidden]>
Date: Mon, 4 Sep 2023 13:59:04 -0400
On Mon, Sep 4, 2023 at 1:33 PM Ville Voutilainen <
ville.voutilainen_at_[hidden]> wrote:

> On Mon, 4 Sept 2023 at 20:19, Brian Bi via Std-Proposals
> <std-proposals_at_[hidden]> wrote:
> > ABI breaks certainly have costs, but not breaking ABI also has costs,
> and it appears to many people, both within and outside of WG21, that the
> costs of breaking ABI are overestimated, and the costs of not breaking ABI
> are underestimated.
>
> Appears? Based on what? I could quantify that ABI break cost to a
> dollar precision for various companies if I really had to (because
> we've done it accidentally, by packaging with a platform that had a
> newer GLIBC that results in packages that don't work on systems
> with an older GLIBC, due to an.. *drumroll* ..ABI incompatibility).
> What is this disagreeing appearance based on? Hot air?
>

Is the particular ABI incompatibility that you have mentioned here one that
could be caused by any decision WG21 could possibly make? glibc is not
written in C++.

Nevertheless, I'm not making the claim that *no one ever accurately
estimates the costs of any ABI-breaking change.* There is no one "cost of
breaking ABI"; the cost depends on the particular change in question. Those
particular costs typically never receive a numerical estimate.

Here's what usually happens in the C++ standardization process: First,
someone gets an idea for a proposal. At some point between the time when
they first get that idea and when the proposal gets polled in EWG, someone
points out that adopting the proposal would require an ABI break. Most of
the time, no one ever puts forth an estimate of the dollar cost of that
particular ABI break. Instead, the author simply realizes that the proposal
has no chance of getting accepted in the current form. If the ABI break is
pointed out while the paper is being discussed in EWG, the result is that
the room simply agrees not to poll that particular version of that
proposal. The proposal then dies unless the author can find a way to avoid
the ABI break. No one estimates the dollar cost of *not* adopting the
proposal, either. Therefore, a numerical comparison is not made between the
two costs. Instead, a lot of people simply assume that the former cost
outweighs the latter, which is why the proposal is not accepted. Any
appearance that one cost outweighs the other is therefore backed by exactly
as much evidence as any appearance of the reverse.

I haven't been on the committee for long, so, perhaps there have been
particular cases in which someone stood up in EWG and said, "this
particular ABI break would cost my company $X" and the discussion reached a
consensus that the probable benefits of the proposal could not outweigh
this cost. As far as I know, this is not what usually happens.
-- 
*Brian Bi*

Received on 2023-09-04 17:59:17