Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P3081 R2 Core safety profiles for C++26 #2058

Open
wg21bot opened this issue Oct 17, 2024 · 12 comments
Open

P3081 R2 Core safety profiles for C++26 #2058

wg21bot opened this issue Oct 17, 2024 · 12 comments
Labels
EWG Evolution
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Oct 17, 2024

P3081R0 Core safety Profiles: Specification, adoptability, and impact (Herb Sutter)

@wg21bot wg21bot added EWG Evolution SG15 Tooling SG23 Safety and Security labels Oct 17, 2024
@wg21bot wg21bot added this to the 2024-telecon milestone Oct 17, 2024
@jfbastien jfbastien removed the EWG Evolution label Oct 18, 2024
@jfbastien
Copy link
Collaborator

jfbastien commented Oct 18, 2024

SG15 and SG23: please consider and forward to EWG.

@Bigcheese
Copy link
Member

SG15 wants to pursue normatively requiring implementations to offer some specific “Fix” semantics as described in P3081R0, such as “when type_safety profile is enabled, a static_cast pointer downcast remains static_cast in the source code but is interpreted as-if the code had written dynamic_cast” — SG15 will separately describe how implementations could conform

SF F N A SA
3 5 2 0 0

SG15 wants to pursue normatively requiring implementations to offer some specific “Modernize” fixits (as a new form of diagnostic) as described in P3081R0, such as “when type_safety profile is enabled, for a static_cast pointer downcast offer a mechanical fixit to change the source code into a dynamic_cast” — SG15 will separately describe how implementations could conform

SF F N A SA
2 6 2 0 0

@Bigcheese Bigcheese removed the SG15 Tooling label Nov 20, 2024
@rogerorr
Copy link
Collaborator

P3081R0 was seen in SG23 on Thurs in Wroclaw

POLL: Apply the SG23 syntax decisions (Weds) in Wrocław and other SG23 direction to P3081R0, and forward P3081 to EWG as part of an initial set of Profiles targeting C++26.

Favor Neutral Against
23 1 0

@cor3ntin cor3ntin added the EWG Evolution label Nov 21, 2024
@jfbastien
Copy link
Collaborator

Seen in EWG on Friday:

Poll: P3081r0 Core safety Profiles, we are interested in pursuing profiles in the C++26 timeline, including aspects of the specification which potentially have language and library impact (i.e. despite the P1000 schedule).

SF F N A SA
25 19 4 2 1

Result: consensus in favor

EWG will perform telecons (@hanickadot) between now and the next meeting to discuss individual profile aspects.

@jfbastien jfbastien added the needs-revision Paper needs changes before it can proceed label Nov 22, 2024
@hanickadot
Copy link
Collaborator

EWG seen first section of paper's wording on 2024/12/11 telecon and took (non-binding, temperature in the room) following polls:


D3081R1: The profile attributes enforce and apply should be separated out from P3081 and done separately, leaving the initial version of profiles to just Implementation-Defined Translation-Unit level configuration.

SF F N A SA
6 10 10 1 1

Result: Consensus


D3081R1: The next revision of P3081 should explore, clarify, and justify the application of profile attributes on lexical vs declaration scoping.

SF F N A SA
11 10 2 0 0

Result: Consensus


D3081R1: EWG prefers that profile attributes include the profiles:: namespace.

SF F N A SA
1 3 12 7 3

Result: Not consensus

@jensmaurer jensmaurer modified the milestones: 2024-telecon, 2025-telecon Dec 18, 2024
@hanickadot
Copy link
Collaborator

D3081R1 was seen again on an EWG teleconference. No poll was taken.

@jensmaurer
Copy link
Member

Object lifetime safety was moved to P3465 "Pursue P1179 as a Lifetime TS" #2120 .

@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 14, 2025

P3081R1 Core safety profiles for C++26 (Herb Sutter)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Jan 14, 2025
@wg21bot wg21bot changed the title P3081 R0 Core safety Profiles: Specification, adoptability, and impact P3081 R1 Core safety profiles for C++26 Jan 14, 2025
@inbal2l inbal2l added LEWG Library Evolution IS Ship vehicle: IS C++26 Targeted at C++26 labels Jan 15, 2025
@hanickadot
Copy link
Collaborator

P3081R1 was seen again on an EWG teleconference (2025-01-15). No poll was taken.

@jfbastien
Copy link
Collaborator

Profiles were discussed in EWG in Hagenberg on Wednesday:

Polls aimed at increasing consensus

Poll: P3081r2 Core safety profiles: for dynamic checking, only focus on library hardening for the first version. Do not change static checking.

SF F N A SA
27 33 9 1 0

Consensus in favor.

Poll: Merge P3589r1 “profiles framework” into P3081r2 “Core safety profiles”.

SF F N A SA
21 34 14 0 0

Consensus in favor.

Poll: P3589r1: the first version of the profiles framework should offer a way to apply a profile in a scope, particularly to be useful for non-modules code and header-only libraries.

SF F N A SA
20 36 9 4 0

Consensus in favor.

Poll: P3081 “Core safety profiles”: separate out “5.1 pointer arithmetic (bounds.1)” from the proposal into its own paper.

SF F N A SA
7 17 31 1 1

No consensus.

Polls to determine ship vehicle

Poll: P3081 “Core safety profiles”: forward (with amendments voted above) to CWG for inclusion in C++26.

SF F N A SA
10 10 2 25 29

Consensus against.

Poll: Pursue a language safety white paper in the C++26 timeframe containing systematic treatment of core language Undefined Behavior in C++, covering Erroneous Behavior, Profiles, and Contracts. Appoint Herb and Gašper as editors.

SF F N A SA
32 31 6 4 4

Consensus in favor.

@jfbastien jfbastien added needs-revision Paper needs changes before it can proceed and removed LEWG Library Evolution C++26 Targeted at C++26 SG21 Contracts SG23 Safety and Security contracts Contracts IS Ship vehicle: IS labels Feb 12, 2025
@jfbastien
Copy link
Collaborator

Profiles were discussed again in EWG on Friday:

Poll: Forward P3589r1 “profiles framework” (with amendment for scope support voted above) to CWG for inclusion in C++26.

SF F N A SA
18 16 4 14 20

Not consensus.

Poll: Forward P3589r1 “profiles framework” (with amendment for scope support voted above) and apply it to library hardening (P3471) for inclusion in C++26 (P3611).

SF F N A SA
17 17 2 13 25

Not consensus.

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Mar 19, 2025
@wg21bot
Copy link
Collaborator Author

wg21bot commented Mar 19, 2025

P3081R2 Core safety profiles for C++26 (Herb Sutter)

@wg21bot wg21bot changed the title P3081 R1 Core safety profiles for C++26 P3081 R2 Core safety profiles for C++26 Mar 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EWG Evolution
Projects
None yet
Development

No branches or pull requests

9 participants