C++ Logo

sg15

Advanced search

Re: [isocpp-sg15] [isocpp-admin] Swedish mirror committee consideration on the current working draft

From: Harald Achitz <harald_at_[hidden]>
Date: Wed, 24 Sep 2025 16:06:43 +0200
On 2025-09-24 15:36, René Ferdinand Rivera Morell 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.
>
>
> FYI..
>
> <https://github.com/cplusplus/papers/issues/1923#issuecomment-2198207843>
> <https://github.com/cplusplus/papers/issues/1589#issuecomment-1804470319>
>
> I personally don't remember any concerns by build and packaging
> ecosystem experts on this subject when it's been discussed. Contracts
> mirror existing practice for binary linking and is easily managed with
> existing build systems and package managers.
>
>
> --
> -- René Ferdinand Rivera Morell
> -- Don't Assume Anything -- No Supongas Nada
> -- Robot Dreams - http://robot-dreams.net
>
Thanks for the reply. Rene

Having some interest on the build issue myself, I would be thankful to
learn about the following topics:

Will it be easily manageable to tell the linker: hey, give me libfoo
with contract assertions enabled, and that is using this special
contract handler? And get an error if libfoo in that flavor is not
available, but only in others other configuration.

or is it only easily manageable when you build the whole source tree
including dependencies with profiles / tripplets, or what ever your
control file is.

If you want to provide binary dependencies, does that mean you need to
have each build in 4 variations, per contract variations.

And is it even possible to have different contract handlers set, in
dependencies, or do people make that up?

What will, for example, Linux distributions add to their build, will it
be implementation defined? And I can tell from the binary in the system
what it is.

If such questions have been discussed, is there some documentation to
read up on the outcome?

/Harald




Received on 2025-09-24 14:06:50