cplusplus / papers

ISO/IEC JTC1 SC22 WG21 paper scheduling and management
673 stars 18 forks source link

P3068 R4 Allowing exception throwing in constant-evaluation #1754

Open wg21bot opened 9 months ago

wg21bot commented 9 months ago

P3068R0 Allowing exception throwing in constant-evaluation. (Hana Dusíková)

inbal2l commented 9 months ago

Note: One of the action items requested for Library functions is suggested in P3068

hanickadot commented 9 months ago

Part of the changes in library are done by paper https://github.com/cplusplus/papers/issues/1769

erichkeane commented 8 months ago

This was discussed in EWG on Tuesday afternoon in Tokyo. The following poll was taken:

D3068R1 Allowing exception throwing in constant-evaluation: forward to CWG for inclusion in C++26.

SF F N A SA
4 15 5 9 0

Result: Not Consensus

wg21bot commented 7 months ago

P3068R1 Allowing exception throwing in constant-evaluation. (Hana Dusíková)

wg21bot commented 6 months ago

P3068R2 Allowing exception throwing in constant-evaluation (Hana Dusíková)

jfbastien commented 5 months ago

Seen by EWG in St Louis:

Poll: P3068R2 — Allowing exception throwing in constant-evaluation, forward to LEWG and CWG for inclusion in C++26.

SF F N A SA
11 17 1 0 0
jensmaurer commented 5 months ago

CWG 2024-06-26 in St. Louis: Reviewed, needs updates.

jfbastien commented 5 months ago

Seen again in EWG in St Louis to answer a question for CWG:

Poll: P3068R2 — Allowing exception throwing in constant-evaluation, allow constexpr throwing in dynamic_cast and typeid as well.

SF F N A SA
9 15 1 0 0
hanickadot commented 5 months ago

Updated wording is uploaded on CWG wiki.

FabioFracassi commented 5 months ago

2024-06-27 Library Evolution St. Louis Meeting

P3068R3: Allowing exception throwing in constant-evaluation

2024-06-27 Library Evolution St. Louis Minutes

Summary

POLL: Forward "P3068R3: Allowing exception throwing in constant-evaluation" to LWG for C++26 (to be confirmed by an electronic poll)

SF F N A SA
14 10 1 1 0

Attendance: 24 + 7

# of Authors: 1

Author's Position: SF

Outcome: Strong consensus in favour

Next Steps

P3068R3 was forwarded to LWG for C++26 (as B3 - addition) (to be confirmed by an LEWG electronic poll).

jensmaurer commented 5 months ago

std::exception::what() strings are now suggested to be considered for compiler diagnostics. Assigning to SG16 for consideration of the encoding aspects.

inbal2l commented 4 months ago

Waiting for SG16's input on the returned string from constexpr const char* what() const noexcept override; (to avoid circling back through LEWG). @tahonermann, if possible, please see this and give a recommendation before 2024-08-15 (if no change is requested, P3068R3 will be added to the next electronic poll).

wg21bot commented 4 months ago

P3068R3 Allowing exception throwing in constant-evaluation (Hana Dusíková)

jensmaurer commented 4 months ago

See also LWG4087, tracked by cplusplus/papers#1895.

inbal2l commented 3 months ago

2024-07-31 SG16 Telecon

Per LEWG's request, SG16 saw P3068R3 and recommended wording fix to enable correct constexpr encoding and management in runtime.

The wording change was applied on P3068R4, LEWG will briefly see the wording (scheduled for 2024-08-20) before R4 of the paper will be added to our next EP.

wg21bot commented 3 months ago

P3068R4 Allowing exception throwing in constant-evaluation (Hana Dusíková)

FabioFracassi commented 3 months ago

2024-08-20 Library Evolution Telecon

P3068R4 Allowing exception throwing in constant-evaluation

2024-08-20 Library Evolution Telecon Minutes

Champion: Hana Dusíková Chair: Fabio Fracassi Minute Taker: Daveed Vandevoorde

Summary

POLL: We approve of the change requested by SG16 to P3068R3 as applied in P3068R4 (make exception .what() return a literal encoding)

SF F N A SA
6 5 1 0 0

Attendance: 20

# of Authors: 1

Author's Position: SF

Outcome: Strong consensus in favour

Next Steps

As of the decision from: https://github.com/cplusplus/papers/issues/1754#issuecomment-2195429730 P3068R4 will be added to the next LEWG electronic poll.

inbal2l commented 1 month ago

P3068R4 was added to LEWG 2024 October electronic poll paper (P3467R0)

tahonermann commented 1 week ago

SG16 reviewed P3068R2 during its 2024-07-31 meeting. No polls were taken as attendance was low for that meeting and we didn't have quorum. General agreement was expressed for the message text returned by the what() virtual member function of a std::exception derived type being encoded in the ordinary literal encoding if the exception object is created during constant evaluation. Additional discussion concerned support for localized messages; it was observed that a different message or a differently encoded message could still be used for an exception thrown outside of constant evaluation. It was noted that a non-localized message could still be observed if the message from an exception thrown during constant evaluation was used to initialize a constexpr variable, but no strong concerns about this possibility were expressed.

jwakely commented 1 week ago

Approved by LWG for Core to move in plenary

jensmaurer commented 1 week ago

CWG 2024-11-19 in Wroclaw: Approved D3068R5.

bstamour commented 6 days ago

LWG minutes: https://wiki.edg.com/bin/view/Wg21wroclaw2024/LWG20241119-P3068