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

P1949 C++ Identifier Syntax using Unicode Standard Annex 31 #688

Closed
wg21bot opened this issue Dec 11, 2019 · 22 comments · Fixed by cplusplus/draft#4663
Closed

P1949 C++ Identifier Syntax using Unicode Standard Annex 31 #688

wg21bot opened this issue Dec 11, 2019 · 22 comments · Fixed by cplusplus/draft#4663
Labels
C++23 Targeted at C++23 CWG Core plenary-approved Papers approved for inclusion in their target vehicle by plenary vote.
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Dec 11, 2019

P1949R0 C++ Identifier Syntax using Unicode Standard Annex 31 (Steve Downey)

@wg21bot wg21bot added EWG Evolution EWGI Evolution Incubator SG16 Text processing SG7 Reflection labels Dec 11, 2019
@wg21bot wg21bot added this to the 2020-02 milestone Dec 11, 2019
@tahonermann tahonermann added the needs-revision Paper needs changes before it can proceed label Dec 12, 2019
@tahonermann
Copy link
Collaborator

tahonermann commented Dec 12, 2019

SG16 in Belfast: Needs revision.

SG16 reviewed a draft of this paper in Belfast during our discussions of NL029. The author was present. We're looking forward to a revision for C++23 that addresses C compatibility, implementation experience, and that has wording.

SG16 minutes are available with the minutes for the discussion of NL029 at:

@jensmaurer jensmaurer removed the EWG Evolution label Dec 12, 2019
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 18, 2020

P1949R1 C++ Identifier Syntax using Unicode Standard Annex 31 (Steve Downey, Zach Laine, Tom Honermann, Peter Bindels)

@jensmaurer jensmaurer removed the needs-revision Paper needs changes before it can proceed label Jan 21, 2020
@tahonermann
Copy link
Collaborator

tahonermann commented Jan 31, 2020

Removed the SG7 label per email discussion; SG7 related concerns will be discussed via P1953 (#690).

@tahonermann tahonermann removed the SG7 Reflection label Jan 31, 2020
@theres-waldo theres-waldo added this to Thursday AM in EWG-I Prague Feb 7, 2020
@tahonermann
Copy link
Collaborator

tahonermann commented Feb 13, 2020

SG16 approved P1949R1 in Prague. Minutes are at http://wiki.edg.com/bin/view/Wg21prague/SG16P1949R1.

P1949R1: Implementations should implicitly normalize identifiers to NFC

SF F N A SA
1 2 2 3 0

Consensus? No

P1949R1: non-NFC normalized identifiers should be ill-formed.

SF F N A SA
4 4 0 0 0

Consensus? Yes

P1949R1: We agree with the stated UAX31 conformance requirements.

SF F N A SA
2 4 1 0 0

Consensus? Yes

P1949R1: Encourage exploring incorporation of UAX39; exclusion of confusables.

SF F N A SA
0 3 2 0 1

Consensus? Weak - authors prerogative

P1949R1: Forward to EWG

SF F N A SA
4 2 1 0 0

Adding the needs-revision tag to address SG16 guidance and to provide wording. SG16 guidance was to specify that non-NFC normalized identifiers are ill-formed.

@tahonermann tahonermann added the needs-revision Paper needs changes before it can proceed label Feb 13, 2020
@erichkeane erichkeane moved this from Thursday AM to Thursday PM in EWG-I Prague Feb 13, 2020
@erichkeane
Copy link
Collaborator

erichkeane commented Feb 13, 2020

EWGI in Prague

Given the time constraints of the committee, should we spend additional committee effort on
P1949?

SF F N A SA
12 3 1 0 0

Should implementers be allowed to extend the list of allowable characters as a conforming
extension?

SF F N A SA
1 1 7 4 0

We believe that P1949R1 has been sufficiently developed and (pending the feedback from the
room and SG16 are merged) this paper is ready for EWG.

SF F N A SA
8 6 1 0 0

@erichkeane erichkeane added EWG Evolution and removed EWGI Evolution Incubator labels Feb 13, 2020
@jfbastien jfbastien added this to Friday in EWG Prague Feb 14, 2020
@jfbastien jfbastien added tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. and removed needs-revision Paper needs changes before it can proceed labels Feb 14, 2020
@jfbastien
Copy link
Collaborator

jfbastien commented Feb 14, 2020

D1949R2 C++ Identifier Syntax using Unicode Standard Annex 31

Paper is the same as P1949R1 from the mailing, plus wording and NFC.

D1949R2 is tentatively ready to go to CWG for C++23.

SF F N A SA
12 8 1 0 0

@wg21bot
Copy link
Collaborator Author

wg21bot commented Mar 24, 2020

P1949R2 C++ Identifier Syntax using Unicode Standard Annex 31 (Steve Downey, Zach Laine, Tom Honermann, Peter Bindels)

@wg21bot wg21bot modified the milestones: 2020-02, 2020-telecon Mar 24, 2020
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 24, 2020

P1949R3 C++ Identifier Syntax using Unicode Standard Annex 31 (Steve Downey, Zach Laine, Tom Honermann, Peter Bindels, Jens Maurer)

@jfbastien
Copy link
Collaborator

jfbastien commented Apr 24, 2020

This has been updated since marked at "tentatively ready", so we'll need to revisit.

@jensmaurer jensmaurer added this to Ready for review in CWG Apr 24, 2020
@jensmaurer
Copy link
Member

jensmaurer commented Jun 19, 2020

"The paper isn't tentatively ready anymore, in the sense that we'll want to re-affirm its status or deny when we can next make binding decisions."

@tahonermann
Copy link
Collaborator

tahonermann commented Jul 12, 2020

Removing the SG16 label as this proposal is now in EWG's hands. I trust the EWG chair will involve SG16 should further review warrant it.

@tahonermann tahonermann removed the SG16 Text processing label Jul 12, 2020
@wg21bot
Copy link
Collaborator Author

wg21bot commented Aug 23, 2020

P1949R5 C++ Identifier Syntax using Unicode Standard Annex 31 (Steve Downey, Zach Laine, Tom Honermann, Peter Bindels, Jens Maurer)

@jfbastien jfbastien added the EWG-vote-on-me EWG can vote on this label Sep 21, 2020
@wg21bot
Copy link
Collaborator Author

wg21bot commented Sep 23, 2020

P1949R6 C++ Identifier Syntax using Unicode Standard Annex 31 (Steve Downey, Zach Laine, Tom Honermann, Peter Bindels, Jens Maurer)

@jfbastien
Copy link
Collaborator

jfbastien commented Sep 24, 2020

R6 was discussed in today's EWG telecon.

POLL: P1949R6 is tentatively ready to move to CWG

SF F N A SA
13 6 2 0 0

@jensmaurer jensmaurer moved this from Awaiting updated wording to Ready for review in CWG Oct 1, 2020
@jensmaurer jensmaurer modified the milestones: 2020-telecon, 2021-telecon Dec 28, 2020
@AaronBallman AaronBallman added the SG22 C / C++ liaison label Jan 22, 2021
@jfbastien
Copy link
Collaborator

jfbastien commented Mar 9, 2021

EWG February 2021 polls:

Poll: Forward P1949R6 "C++ Identifier Syntax using Unicode Standard Annex 31" to Core.

SF F N A SA
19 6 3 0 0

Poll outcome: consensus.

Salient comments:

  • The allow-list approach isn’t sustainable. There are too many characters allowed that can be actively harmful, such as RTL modifiers.
  • Follows Unicode recommendations. WG21 shouldn’t be in the business of assigning meaning to Unicode characters, Unicode is authoritative in this case.
  • Avoids surprising behavior that is difficult to defend.
  • Good international language support encourages wider adoption and this wider adoption implies a larger global pool of resources for the development of the C++ ecosystem.

@jfbastien jfbastien added CWG Core and removed EWG Evolution EWG-vote-on-me EWG can vote on this labels Mar 9, 2021
@jensmaurer jensmaurer moved this from Ready for review to Approved for plenary vote in CWG Apr 12, 2021
@jensmaurer
Copy link
Member

jensmaurer commented Apr 12, 2021

CWG 2021-04-12: Approved D1949R7 for plenary vote.

@jensmaurer jensmaurer added the straw-poll Straw poll label Apr 12, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 25, 2021

P1949R7 C++ Identifier Syntax using Unicode Standard Annex 31 (Steve Downey, Zach Laine, Tom Honermann, Peter Bindels, Jens Maurer)

@cor3ntin cor3ntin added plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. C++23 Targeted at C++23 labels Jun 7, 2021
@AaronBallman
Copy link
Collaborator

AaronBallman commented Jun 11, 2021

This paper was discussed at the Jun 4, 2021 SG22 meeting. SG22 agreed with the direction (but no official poll was taken). A WG14 member has agreed to help bring a companion paper to WG14 on this topic, so SG22 does not need to see this paper again.

@AaronBallman AaronBallman removed the SG22 C / C++ liaison label Jun 11, 2021
@jensmaurer jensmaurer removed this from Approved for plenary vote in CWG Jun 27, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Oct 26, 2021

Adopted 2021-06.

@jensmaurer jensmaurer removed the straw-poll Straw poll label Oct 26, 2021
@jensmaurer
Copy link
Member

jensmaurer commented Feb 23, 2022

WG14 accepted http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2836.pdf
(N2836 Identifier Syntax using Unicode Standard Annex 31) for C23.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C++23 Targeted at C++23 CWG Core plenary-approved Papers approved for inclusion in their target vehicle by plenary vote.
Projects
No open projects
EWG-I Prague
Thursday PM
Development

Successfully merging a pull request may close this issue.

7 participants