C++ Logo

sg15

Advanced search

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

From: Ryan McDougall <mcdougall.ryan_at_[hidden]>
Date: Mon, 20 Oct 2025 13:46:38 -0700
No such thing has been shown.

On Mon, Oct 20, 2025 at 1:45 PM JOSE DANIEL GARCIA SANCHEZ <
josedaniel.garcia_at_[hidden]> wrote:

> No. Because it has been shown that current design makes C++ less safe.
>
> On Mon, Oct 20, 2025 at 10:43 PM Ryan McDougall <mcdougall.ryan_at_[hidden]>
> wrote:
>
>> That's patently untrue -- trying to change direction now is actually
>> wasting EWG time.
>>
>> If you only care about Language Safety you should be ignoring P2900.
>>
>> On Mon, Oct 20, 2025 at 1:28 PM JOSE DANIEL GARCIA SANCHEZ <
>> josedaniel.garcia_at_[hidden]> wrote:
>>
>>> 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:46:54