Date: Fri, 3 Jul 2026 17:25:18 +0200
Jan,
on Sun, 28 Jun 2026 10:25:22 +0200 you (Jan Schultke
<janschultke_at_[hidden]>) wrote:
> The next SG22 (C/C++ Liaison) Telecon is taking place *Wednesday,
> 2026-07-08 04:30 PM - 06:00 PM UTC*.
Unfortunately I will not be able to be there, so I will send comments
to this list on the two papers, starting with
> - P3290R4
> <https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3290r4.pdf>
> Integrating
> Existing Assertions with Contracts (Joshua Berne, Timur Doumler,
> John Lakos)
I take it that the question here is only about the interplay with
`assert`.
I appreciate the effort to keep the two tools orthogonal, this would
certainly help user adoption.
The only thing that I am a bit worried with regards to this is the
following sentence
> If the contract-violation handler returns normally or an exception
> escapes the contract- violation handler’s evaluation, the program
> will terminate in an implementation-defined manner
I wouldn't know about exceptions, but for the "returns normally" this
seems to be the wrong strategy. C's `assert` calls `abort` and I think
we should keep it like that.
Not because `abort` is a particularly well-designed feature, but
because people might use `SIGABRT` handlers to trigger some specific
code. So we should not invalidate the tools people already have.
Thanks
Jₑₙₛ
on Sun, 28 Jun 2026 10:25:22 +0200 you (Jan Schultke
<janschultke_at_[hidden]>) wrote:
> The next SG22 (C/C++ Liaison) Telecon is taking place *Wednesday,
> 2026-07-08 04:30 PM - 06:00 PM UTC*.
Unfortunately I will not be able to be there, so I will send comments
to this list on the two papers, starting with
> - P3290R4
> <https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3290r4.pdf>
> Integrating
> Existing Assertions with Contracts (Joshua Berne, Timur Doumler,
> John Lakos)
I take it that the question here is only about the interplay with
`assert`.
I appreciate the effort to keep the two tools orthogonal, this would
certainly help user adoption.
The only thing that I am a bit worried with regards to this is the
following sentence
> If the contract-violation handler returns normally or an exception
> escapes the contract- violation handler’s evaluation, the program
> will terminate in an implementation-defined manner
I wouldn't know about exceptions, but for the "returns normally" this
seems to be the wrong strategy. C's `assert` calls `abort` and I think
we should keep it like that.
Not because `abort` is a particularly well-designed feature, but
because people might use `SIGABRT` handlers to trigger some specific
code. So we should not invalidate the tools people already have.
Thanks
Jₑₙₛ
-- :: ICube :::::::::::::::::::::::::::::: deputy director :: :: Université de Strasbourg :::::::::::::::::::::: ICPS :: :: INRIA antenne de Strasbourg :::::::::::::::::: Camus :: :: INRIA PIQ program Strasbourg :::::::::: piq.inria.fr :: :: :::::::::::::::::::::::::::::::::::: ☎ +33 368854536 :: :: https://icube-icps.unistra.fr/index.php/Jens_Gustedt ::
Received on 2026-07-03 15:25:21
