-
Notifications
You must be signed in to change notification settings - Fork 4
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
NL029 05.10 [tab:lex.name.allowed] Disallow zero-width and control characters #28
Comments
SG16 plans to discuss this comment Tuesday morning: |
SG16 in Belfast: Recommend to accept with modification to deprecate identifiers that do not conform to Unicode TR#31 with exception for use of underscore. Rationale: Future direction via D1949R0 intends to make these identifiers ill-formed in C++Future, so we want to put programmers on notice now to give them time to react. Additionally, we don't want to break compatibility with C and we lack implementation experience with D1949R0. We had strong consensus for addressing this concern in C++20. The recommendation above had slightly better consensus than a poll to, rather than deprecating identifiers that do not conform to Unicode TR#31, adding a non-normative note containing guidance that programmers should use conforming identifiers. Removing the SG16 label. This now needs to be seen by EWG. SG16 minutes are available at: |
JF believes he may have created a CWG issue as the resolution for this NB comment, if not, one will need to be created. EWG recommended to adopt Unicode TR#31 with no particular ship vehicle. We did not have consensus to adopt NL029 for C++20. |
I can't find it. I think I ended up just sending the email to SG16, not CWG chair. |
I can't find one either and the above sounds right to me. sg16-unicode/sg16#48 contains a link to the following message that JF sent to the SG16 mailing list. I'll request a CWG issue. |
CWG in Belfast: Given the EWG recommendation: Rejected. There was no consensus to adopt this change. |
SG16 has continued to discuss changes to allowed identifiers in line with UAX #31; most recently in our January 8th, 2020 telecon. We have not yet identified a precise solution to propose. I am therefore not going to pursue filing a CWG issue in the near term. We'll continue pursuing a solution for C++23 and, based on those results, I may consider filing a CWG issue at a later time. |
Allowed characters include those from U+200b until U+206x; these are zero-width and control characters that lead to impossible to type names, indistinguishable names and unusable code & compile errors (such as those accidentally including RTL modifiers).
Proposed change:
Disallow invisible characters in this range
The text was updated successfully, but these errors were encountered: