Date: Tue, 30 Sep 2025 13:26:20 -0500
On Wed, Sep 24, 2025 at 8:36 AM René Ferdinand Rivera Morell <
grafikrobot_at_[hidden]> wrote:
> On Wed, Sep 24, 2025 at 6:10 AM Harald Achitz via Admin <
> admin_at_[hidden]> wrote:
>
>> The Swedish SC22 mirror committee TK611/AG09 has discussed the current
>> working draft of C++26 and identified concerns regarding contract
>> assertions. We have summarized these in the attached document.
>>
>> As convener, I see it as my duty to mediate these concerns. I would
>> therefore appreciate guidance on how to proceed and to ensure that our
>> experts’ concerns, as well as similar concerns from others, are taken
>> into account.
>>
>
> From the comments:
>
> Contracts introduce several new build configurations. The impact on the
> build system and binary
> dependency management has not received sufficient focus.
>
>
I wanted to address the fears regarding build systems. But I didn't have
time to write up implemented examples until yesterday. Last night I
implemented Contracts build support for B2 (aka Boost.Build). It took me
less than an hour to implement that support. The parts of that are these
segments (the rest are documentation comments and examples):
<
https://github.com/bfgroup/b2/commit/3b20a4e16594b19a38f006a7af051c775bf0e1c9#diff-0fc008a10b15f249e1b7f2dffc067eadae061007e7b8a83122cb6a562ce0de11R20-R24
>
<
https://github.com/bfgroup/b2/commit/3b20a4e16594b19a38f006a7af051c775bf0e1c9#diff-0fc008a10b15f249e1b7f2dffc067eadae061007e7b8a83122cb6a562ce0de11R45-R48
>
<
https://github.com/bfgroup/b2/commit/3b20a4e16594b19a38f006a7af051c775bf0e1c9#diff-33537906d8dfd13afc76c7734b09d22c4d7716e45250cefc65ae2086b26e560cR719-R724
>
I also created a simple example showing the matrix of using static vs
dynamic linking a library with contracts, vs enforce/ignore semantics on
main(), vs enforce/ignore semantics on the library. That's in this repo <
https://github.com/grafikrobot/cpp_contracts_example>.
The comparison I like to raise with that is that I have yet to implement
Modules support in B2 because that has-taken / is-taking serious amount of
reengineering.
grafikrobot_at_[hidden]> wrote:
> On Wed, Sep 24, 2025 at 6:10 AM Harald Achitz via Admin <
> admin_at_[hidden]> wrote:
>
>> The Swedish SC22 mirror committee TK611/AG09 has discussed the current
>> working draft of C++26 and identified concerns regarding contract
>> assertions. We have summarized these in the attached document.
>>
>> As convener, I see it as my duty to mediate these concerns. I would
>> therefore appreciate guidance on how to proceed and to ensure that our
>> experts’ concerns, as well as similar concerns from others, are taken
>> into account.
>>
>
> From the comments:
>
> Contracts introduce several new build configurations. The impact on the
> build system and binary
> dependency management has not received sufficient focus.
>
>
I wanted to address the fears regarding build systems. But I didn't have
time to write up implemented examples until yesterday. Last night I
implemented Contracts build support for B2 (aka Boost.Build). It took me
less than an hour to implement that support. The parts of that are these
segments (the rest are documentation comments and examples):
<
https://github.com/bfgroup/b2/commit/3b20a4e16594b19a38f006a7af051c775bf0e1c9#diff-0fc008a10b15f249e1b7f2dffc067eadae061007e7b8a83122cb6a562ce0de11R20-R24
>
<
https://github.com/bfgroup/b2/commit/3b20a4e16594b19a38f006a7af051c775bf0e1c9#diff-0fc008a10b15f249e1b7f2dffc067eadae061007e7b8a83122cb6a562ce0de11R45-R48
>
<
https://github.com/bfgroup/b2/commit/3b20a4e16594b19a38f006a7af051c775bf0e1c9#diff-33537906d8dfd13afc76c7734b09d22c4d7716e45250cefc65ae2086b26e560cR719-R724
>
I also created a simple example showing the matrix of using static vs
dynamic linking a library with contracts, vs enforce/ignore semantics on
main(), vs enforce/ignore semantics on the library. That's in this repo <
https://github.com/grafikrobot/cpp_contracts_example>.
The comparison I like to raise with that is that I have yet to implement
Modules support in B2 because that has-taken / is-taking serious amount of
reengineering.
-- -- René Ferdinand Rivera Morell -- Don't Assume Anything -- No Supongas Nada -- Robot Dreams - http://robot-dreams.net
Received on 2025-09-30 18:26:37