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

CWG2843 Undated reference to Unicode makes C++ a moving target #1736

Open
jensmaurer opened this issue Jan 6, 2024 · 7 comments
Open

CWG2843 Undated reference to Unicode makes C++ a moving target #1736

jensmaurer opened this issue Jan 6, 2024 · 7 comments
Labels
CWG Core LWG Library needs-revision Paper needs changes before it can proceed

Comments

@jensmaurer
Copy link
Member

jensmaurer commented Jan 6, 2024

Clause 2 [intro.refs] paragraph 1.10 uses an undated reference for the Unicode standard, meaning that a published (and otherwise frozen) standard for C++ (e.g. C++23) will implicitly refer to a new revision of the Unicode standard the moment such is issued.

This situation might be considered strictly worse than the lack of support for certain scripts or languages, which can be rectified by updating the reference to Unicode in the next revision of the C++ standard, as is regularly done with any other missing language feature deemed worth addressing.

CWG solicits advice from SG16 and LWG on handling this matter.

CWG2843

@jensmaurer jensmaurer added LWG Library SG16 Text processing EWG Evolution labels Jan 6, 2024
@jensmaurer
Copy link
Member Author

Also forwarded to EWG on request of the EWG chair.

@tahonermann
Copy link
Collaborator

SG16 discussed this issue during the January 10th, 2024 SG16 meeting. The following polls were taken:

  • Poll 1: Recommend having a dated reference to Unicode in the "Normative references" and add
    permission to implement an implementation-defined version.
    • Attendees: 10
    • No objection to unanimous consent.
  • Poll 2: The standard shall specify a mandatory minimum Unicode version.
    • Attendees: 10
      SF F N A SA
      3 5 1 1 0
    • Consensus in favor

Further discussion of this issue is planned for the 2024-02-07 SG16 meeting. I'll provide a more detailed summary of the SG16 consensus following that meeting.

@tahonermann
Copy link
Collaborator

tahonermann commented Feb 26, 2024

SG16 discussed this issue during the February 7th, 2024 SG16 meeting. The following polls were taken:

  • Poll 1: Recommend specifying Unicode 15.1.0 as the minimum Unicode version for C++23 (as a DR) and C++26.
    • Attendees: 9
      SF F N A SA
      3 5 1 0 0
    • Consensus in favor

Further discussion regarding changes needed for Unicode 15.1.0 was scheduled for the 2024-07-21 SG16 meeting. I'll provide a detailed summary of the SG16 consensus when the minutes for that meeting are published.

@tahonermann
Copy link
Collaborator

SG16 concluded its review of this issue during its 2024-02-21 meeting. No additional polls were taken.

The SG16 consensus is as follows:

  1. The C++ standard should switch to use of a dated reference for the Unicode Standard.
  2. The C++ standard should switch to a dated reference that corresponds to Unicode 15.1.0.
  3. At present, Unicode 15.1.0 is the current Unicode version. The undated reference in the C++23 standard therefore corresponds to Unicode 15.1.0 at present. The use of a dated reference to Unicode 15.1.0 should be adopted as a DR for C++23 so that conforming implementations are not required to adopt newer Unicode versions as they are released.
  4. Implementations should be allowed to use any Unicode Standard version that is at least as recent as the version referenced from the C++ standard.
  5. New feature proposals should evaluate the need to change the dated reference to the Unicode Standard to a newer version. Changes to the dated reference should consider potential ABI impact and involve the ABI review group as necessary.
  6. No recommendation regarding a new feature test macro (either core or library); implementations should continue to define the __STDC_ISO_10646__ predefined macro with an appropriate implementation-defined value (e.g., 202309L for Unicode 15.1.0).
  7. No recommendation regarding requirements for implementations to use the same Unicode version for both the core language and the standard library. This is partially due to our belief that the standard library does not currently depend on a normative reference to the Unicode Standard.

Steve Downey has volunteered to draft updates for annex E.

SG16 review is complete. This issue is now solely in CWG's capable hands.

@tahonermann tahonermann removed the SG16 Text processing label Mar 9, 2024
@tahonermann
Copy link
Collaborator

This issue is now solely in CWG's capable hands.

Correction, this issue awaits review from EWG and LWG. The updates that Steve has volunteered to draft are still pending as well, but those correspond to non-normative content.

@erichkeane
Copy link
Collaborator

EWG discussed this issue during the Monday AM session in Tokyo. The following poll was taken:

Forward SG16's suggestions (allow implementation defined version, with a mininum version of 15.1.0) to CWG for inclusion in C++ as a DR against C++23.

SF F N A SA
9 14 1 0 0

Result: Consensus

@erichkeane erichkeane added CWG Core and removed EWG Evolution labels Mar 18, 2024
@jensmaurer jensmaurer added the needs-revision Paper needs changes before it can proceed label Mar 21, 2024
@jensmaurer
Copy link
Member Author

Adding "needs-revision" while waiting for the Annex E update. No need for CWG to context-switch to this paper more often than necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CWG Core LWG Library needs-revision Paper needs changes before it can proceed
Projects
Status: Awaiting updated wording
Development

No branches or pull requests

3 participants