Date: Thu, 23 Oct 2025 15:34:56 -0400
Hi Nevin,
Just for arguments sake, lets call the what is currently in the WP “not great contracts”, and that there potentially exists another feature that we’ll call “great contracts”.
“not great contracts” would potentially block “great contracts” because it would have already taken up the syntax space that “great contracts” might want to use.
I apologize if my earlier wording of this was not clear in my intent.
There is some new technical information. I think David Chisnal (and others) paper https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2025/p3829r0.pdf provides new information.
My (and others) paper https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2025/p3835r0.html provides information in a form that might have previously not been clear to people.
As SG21 chair, it was my hope and expectation that SG21 would come up with a good solution for contracts. I certainly didn’t keep my concerns to myself, although I mostly directed my comments to the paper authors as I didn’t think it was my job as chair to exercise any undue influence on the group.
When one is working on a feature as an individual contributor, you do your best to have things go in the direction that you want. For many of us, it turns out that things ended up in a bad place.
If you want contracts, it would be very strange to have some shadow group working on a competing proposal to whatever it is that SG21 might produce without knowing in advance what SG21 would produce, and it would be bad faith to not try to make the SG21 product as good as possible and instead work on something else.
I am certainly sad that the 6 years since contracts were pulled from C++20 produced a result that I cannot support, but I’m sure all the people who worked on C++20 contracts felt the same way when the feature was pulled.
John.
> On Oct 23, 2025, at 3:19 PM, Nevin Liber via SG21 <sg21_at_[hidden]> wrote:
>
> On Tue, Oct 21, 2025 at 12:09 PM John Spicer via SG15 <sg15_at_[hidden] <mailto:sg15_at_[hidden]>> wrote:
>> It also blocks later adoption of a contract feature that would make C++ better.
>
> SD-4 <https://wg21.link/sd-4>: "Delay vs. bird in the hand. We cannot act on ideas without papers, and we do not significantly delay progress on concrete proposals in order to wait for alternative proposals we might get in the future. [...]"
>
> What is the paper number of the proposal of the contract feature which the C++26 CD is blocking later adoption of?
>
>> We have from time to time removed features from the WP, or in some cases from the IS.
>> In none of those cases did we have a replacement to put in its place.
>
> And in some cases, competing proposals never materialize, which is what lead to SD-4.
>
>> If it turns out to be the case that we decide to remove contracts, it will take significant time and effort to come up with a replacement.
>
> So far, I haven't seen any new technical information (but it could be lost in the flood of papers and emails). And it isn't like one hasn't had years to come up with a competing proposal, the deployment experience for it some have claimed is part of the minimum, etc.
> --
> Nevin ":-)" Liber <mailto:nevin_at_[hidden] <mailto:nevin_at_[hidden]>> +1-312-623-5420
> _______________________________________________
> 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/11715.php
Just for arguments sake, lets call the what is currently in the WP “not great contracts”, and that there potentially exists another feature that we’ll call “great contracts”.
“not great contracts” would potentially block “great contracts” because it would have already taken up the syntax space that “great contracts” might want to use.
I apologize if my earlier wording of this was not clear in my intent.
There is some new technical information. I think David Chisnal (and others) paper https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2025/p3829r0.pdf provides new information.
My (and others) paper https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2025/p3835r0.html provides information in a form that might have previously not been clear to people.
As SG21 chair, it was my hope and expectation that SG21 would come up with a good solution for contracts. I certainly didn’t keep my concerns to myself, although I mostly directed my comments to the paper authors as I didn’t think it was my job as chair to exercise any undue influence on the group.
When one is working on a feature as an individual contributor, you do your best to have things go in the direction that you want. For many of us, it turns out that things ended up in a bad place.
If you want contracts, it would be very strange to have some shadow group working on a competing proposal to whatever it is that SG21 might produce without knowing in advance what SG21 would produce, and it would be bad faith to not try to make the SG21 product as good as possible and instead work on something else.
I am certainly sad that the 6 years since contracts were pulled from C++20 produced a result that I cannot support, but I’m sure all the people who worked on C++20 contracts felt the same way when the feature was pulled.
John.
> On Oct 23, 2025, at 3:19 PM, Nevin Liber via SG21 <sg21_at_[hidden]> wrote:
>
> On Tue, Oct 21, 2025 at 12:09 PM John Spicer via SG15 <sg15_at_[hidden] <mailto:sg15_at_[hidden]>> wrote:
>> It also blocks later adoption of a contract feature that would make C++ better.
>
> SD-4 <https://wg21.link/sd-4>: "Delay vs. bird in the hand. We cannot act on ideas without papers, and we do not significantly delay progress on concrete proposals in order to wait for alternative proposals we might get in the future. [...]"
>
> What is the paper number of the proposal of the contract feature which the C++26 CD is blocking later adoption of?
>
>> We have from time to time removed features from the WP, or in some cases from the IS.
>> In none of those cases did we have a replacement to put in its place.
>
> And in some cases, competing proposals never materialize, which is what lead to SD-4.
>
>> If it turns out to be the case that we decide to remove contracts, it will take significant time and effort to come up with a replacement.
>
> So far, I haven't seen any new technical information (but it could be lost in the flood of papers and emails). And it isn't like one hasn't had years to come up with a competing proposal, the deployment experience for it some have claimed is part of the minimum, etc.
> --
> Nevin ":-)" Liber <mailto:nevin_at_[hidden] <mailto:nevin_at_[hidden]>> +1-312-623-5420
> _______________________________________________
> 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/11715.php
Received on 2025-10-23 19:35:11
