C++ Logo

sg15

Advanced search

Re: [isocpp-sg15] [isocpp-sg21] P3835 -- Different contract checking for different libraries

From: JOSE DANIEL GARCIA SANCHEZ <josedaniel.garcia_at_[hidden]>
Date: Mon, 20 Oct 2025 22:27:51 +0200
It is a matter of priorities.



On Mon, Oct 20, 2025 at 10:23 PM Ryan McDougall <mcdougall.ryan_at_[hidden]>
wrote:

> It’s not an either or thing.
>
> That’s like saying “we haven’t decided if the goal of WG21 is object
> oriented programming or structured programming”.
>
> On Mon, Oct 20, 2025 at 1:21 PM JOSE DANIEL GARCIA SANCHEZ <
> josedaniel.garcia_at_[hidden]> wrote:
>
>> We have never (to the best of my knowledge) decided if the goal of WG21
>> is functional safety or language safety.
>>
>> Let's keep in mind that there are external pressures to pursue language
>> safety.In particular (but not only) memory safety.
>>
>>
>> On Mon, Oct 20, 2025 at 10:08 PM Ryan McDougall via SG21 <
>> sg21_at_[hidden]> wrote:
>>
>>> They are comparable because they both address the needs of Functional
>>> Safety as per p3578 <http://wg21.link/p3578>. SG23 took a poll on
>>> whether they're better than macros see P3297 <http://wg21.link/P3297>.
>>>
>>> I think it's not a leap of logic that EWG has strong consensus to pass
>>> P2900 precisely because they feel it's strictly better than macros.
>>>
>>> Cheers,
>>>
>>> On Mon, Oct 20, 2025 at 12:58 PM John Spicer <jhs_at_[hidden]> wrote:
>>>
>>>> We have never taken a poll of whether P2900 is better then macro
>>>> solutions.
>>>>
>>>> Could you explain why you think contracts and macro-based solutions are
>>>> comperable?
>>>>
>>>> John.
>>>>
>>>> On Oct 20, 2025, at 3:09 PM, Ryan McDougall <mcdougall.ryan_at_[hidden]>
>>>> wrote:
>>>>
>>>> I’m saying we have decades of experience with macro based systems,
>>>> which defines the floor of features/expectations. The consensus is P2900 is
>>>> better taken as a whole. There are things i think should be different with
>>>> p2900, but p2900 represents consensus. There has been no evidence put
>>>> forward that there is a more correct course. Based on those decades of
>>>> experience here are no outstanding questions that having a TS would answer.
>>>>
>>>> If i am wrong, please list precise questions that a TS would answer.
>>>> “We don’t have enough experience” is a statement.
>>>>
>>>> Cheers,
>>>>
>>>> On Mon, Oct 20, 2025 at 11:54 AM John Spicer <jhs_at_[hidden]> wrote:
>>>>
>>>>> You keep saying things like we have “decades of experience with
>>>>> macro-based systems”.
>>>>>
>>>>> If contracts were remotely similar to macro-based systems, we would
>>>>> not be having this discussion.
>>>>>
>>>>> The problem is that contracts are *vastly* different.
>>>>>
>>>>> If you put P2900 and macro-based systems in the same set, that means
>>>>> you don’t understand one or the other.
>>>>>
>>>>> John.
>>>>>
>>>>> On Oct 20, 2025, at 2:22 PM, Ryan McDougall via SG21 <
>>>>> sg21_at_[hidden]> wrote:
>>>>>
>>>>> The "course corrections" do not actually suggest a future course
>>>>> (beyond asserting without evidence"we need more experience" and kicking the
>>>>> can down the road to a TS) -- we've had years for alternative proposals to
>>>>> be put forward, and none have surpassed P2900.
>>>>>
>>>>> We *do* have decades of experience with macro-based systems, we *do*
>>>>> have decades of experience building software at scale (see Software
>>>>> Engineering at Google <https://abseil.io/resources/swe-book>), and we
>>>>> *do* know who our users are (see P1995 and P3297) -- and while there are
>>>>> many variations on contracts, P2900 represents our best consensus
>>>>> interpretation of those decades of experience. Not all of these decisions
>>>>> were everyone's first choice, but P2900 is the consensus. There is no
>>>>> evidence that any other option would improve that.
>>>>>
>>>>> Multiple papers, like P2900 and P3578 <http://wg21.link/p3578> explain
>>>>> exactly who the feature is for, and how and why each of these design
>>>>> choices were made. There is no reason to believe the current course is
>>>>> incorrect, or that another course would be more correct.
>>>>>
>>>>> On Mon, Oct 20, 2025 at 4:58 AM Ville Voutilainen via SG21 <
>>>>> sg21_at_[hidden]> wrote:
>>>>>
>>>>>> On Mon, 20 Oct 2025 at 14:34, Timur Doumler via SG15
>>>>>> <sg15_at_[hidden]> wrote:
>>>>>> > Given the above, it seems to me like opposing C++26 contract
>>>>>> assertions because you want that checks are always on / always enforced is
>>>>>> kinda like this:
>>>>>> >
>>>>>> > – Alice: "I want safer roads for pedestrians." (reasonable and good
>>>>>> request)
>>>>>> > – Bob: "Here's a proposal to fund bike lanes in the city."
>>>>>> (reasonable and good proposal roughly in the same area but with a different
>>>>>> goal)
>>>>>> > – Alice: "But bike lanes don't add more crosswalks or reduce speed
>>>>>> limits. So they don't make roads safer for pedestrians. Therefore, we
>>>>>> should not build bike lanes."
>>>>>> >
>>>>>> > Here, Alice is committing a logical fallacy. Just because bike
>>>>>> lanes are not useful for Alice, it doesn't mean that they're not useful for
>>>>>> Bob, and taking away bike lanes from Bob does nothing to give Alice what
>>>>>> she wants.
>>>>>>
>>>>>> The colorful analogy doesn't include considerations where providing
>>>>>> bike lanes for Bob and doing nothing else is not entirely harmless for
>>>>>> the pedestrians Alice is focused on.
>>>>>>
>>>>>> It's also incorrect in its suggestion that bike lanes are not useful
>>>>>> for Alice. Nobody has said that P2900 isn't useful. That's why it's
>>>>>> included
>>>>>> in *every* *single* *one* of the currently active proposals suggesting
>>>>>> course corrections.
>>>>>> _______________________________________________
>>>>>> SG21 mailing list
>>>>>> SG21_at_[hidden]
>>>>>> Subscription: https://lists.isocpp.org/mailman/listinfo.cgi/sg21
>>>>>> Link to this post: http://lists.isocpp.org/sg21/2025/10/11436.php
>>>>>>
>>>>> _______________________________________________
>>>>> SG21 mailing list
>>>>> SG21_at_[hidden]
>>>>> Subscription: https://lists.isocpp.org/mailman/listinfo.cgi/sg21
>>>>>
>>>>> Link to this post: http://lists.isocpp.org/sg21/2025/10/11499.php
>>>>>
>>>>>
>>>>>
>>>> _______________________________________________
>>> SG21 mailing list
>>> SG21_at_[hidden]
>>> Subscription: https://lists.isocpp.org/mailman/listinfo.cgi/sg21
>>>
>> Link to this post: http://lists.isocpp.org/sg21/2025/10/11510.php
>>>
>>

Received on 2025-10-20 20:28:33