On Fri, Oct 3, 2025 at 4:57 PM Ville Voutilainen via SG21 <sg21@lists.isocpp.org> wrote:
On Fri, 3 Oct 2025 at 01:10, Michael Spencer via SG15
<sg15@lists.isocpp.org> wrote:
>
> We looked at a few different papers about contracts focusing mostly on the implementability of mixing checking modes. From the github tracking:
>
> > SG15 discussed various implementation strategies for contracts with a few Itanium C++ ABI people, and a contracts implementer in the room. We had no tooling related concerns with contracts, but believe that the best ABI would require linker changes to get the best performance.
>
> We had implementers from EDG, GCC, and Clang present.
>
> From what I recall nobody had concerns that contracts is unimplementable, there was mostly discussion around how optimal the implementation could be in the presence of mixed modes. Contracts allowing multiple evaluation of checks makes a lot more implementation strategies viable. Inline functions (including template instantiations) can end up with any semantic that appeared in the program, but the standard also allows this, so that's fine.
>
> I don't recall going into detail about build systems, but I do recall discussion of how this is largely the same problem as any other benign ODR violation that build systems handle today, such as mixing language versions or exceptions on vs. off. The standard just blesses this in the right ways to not technically be an ODR violation.
>
> So to be precise I would say that nobody in the SG15 meetings where this was discussed expressed strong concerns about the implementability of contracts as specified in P2900 from a compiler or build system perspective.

I'm unaware of any concerns about contracts being about
implementability in build systems.

So you disagree with concerns in the NB comment I started out this thread with?

Contracts introduce several new build configurations. The impact on the build system and binary
dependency management has not received sufficient focus.

..
 
The concerns seem to be about
having
to configure the contract semantics in the build system as opposed to
being able to do it in source code.

Can you reference the NB comment(s) (and possibly text in related NB papers) raising those concerns?

--
-- René Ferdinand Rivera Morell
-- Don't Assume Anything  -- No Supongas Nada
-- Robot Dreams - http://robot-dreams.net