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

P2465 Standard Library Modules std and std.compat #1115

Closed
brycelelbach opened this issue Oct 12, 2021 · 14 comments · Fixed by cplusplus/draft#5680
Closed

P2465 Standard Library Modules std and std.compat #1115

brycelelbach opened this issue Oct 12, 2021 · 14 comments · Fixed by cplusplus/draft#5680
Labels
C++23 Targeted at C++23 CWG Core IS Ship vehicle: IS LWG Library modular-standard-library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. size - large paper size estimate straw-poll Straw poll tentatively-ready-for-plenary Reviewed between meetings; ready for a vote.
Projects
Milestone

Comments

@brycelelbach
Copy link

P2465R0 Standard Library Modules std and std.all (Stephan T. Lavavej, Gabriel Dos Reis, Bjarne Stroustrup, Jonathan Wakely)

@brycelelbach brycelelbach added LEWG Library Evolution C++23 Targeted at C++23 IS Ship vehicle: IS B1 - focus Bucket 1 as described by P0592: material that is mentioned in this plan. modular-standard-library ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll size - large paper size estimate labels Oct 12, 2021
@brycelelbach
Copy link
Author

brycelelbach commented Oct 12, 2021

2021-10-12 Library Evolution Telecon

P2465R0: Standard Library Modules std and std.all

2021-10-12 Library Evolution Telecon Minutes

Chair: Bryce Adelstein Lelbach

Champion: Stephan T Lavavej

Minute Taker: Steve Downey

Start: 2021-10-12 10:09 Pacific

Does this proposal have:

  • Examples?
    • Yes.
  • Implementation experience?
    • Some.
  • Usage experience?
    • No.
  • Deployment experience?
    • No.
  • Performance considerations?
    • Yes.
  • Discussion of prior art?
    • Yes.
  • Changes Library Evolution previously requested?
    • Yes.
  • Wording?
    • Yes.
  • Feature test macro?

Topics to Polls:

  • Design options:
    • std:: only module and global only module.
    • std:: only module and std:: + global module.
  • Names.

POLL: Provide both
0) a std:: only module, and

  1. a std:: + global module
    (what's currently in the paper and preferred by the authors).
Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
8 8 5 1 0

Attendance: 30

# of Authors: 3

Author Position: 3 x SF

Outcome: Consensus in favor.

POLL: Provide both
0) a std:: only module, and

  1. a global only module.
Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
6 5 5 3 2

Attendance: 30

# of Authors: 3

Author Position: 2 x SA, 1 x N

Outcome: No consensus.

POLL: Provide the following standard library modules (vote once):

Option Votes
(A) std:: only and std:: + global 13
(B) std:: only and global only 8

Attendance: 31

# of Authors: 3

Author Position: 3 x A

Outcome: Option (A) has the stronger consensus.

POLL: The std:: only module should be named std.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
7 15 1 0 2

Attendance: 31

# of Authors: 3

Author Position: 3 x SF

Outcome: Consensus in favor.

POLL: The std:: + global module should be of the form std.X (where X is a placeholder).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
6 8 6 3 0

Attendance: 28

# of Authors: 3

Author Position: 3 x SF

Outcome: Weak consensus in favor.

POLL: The std:: + global module should be of the form std_X (where X is a placeholder).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
0 0 10 9 2

Attendance: 28

# of Authors: 3

Author Position: 1 x WA, 2 x SA

Outcome: Consensus against.

POLL: The std:: + global module should be of the form stdX (where X is a placeholder).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
4 6 7 5 2

Attendance: 28

# of Authors: 3

Author Position: 1 x WA, 2 x SA

Outcome: No consensus.

SA: I find it harder to read without punctuation in the middle. That's why I
was SA this one, but WA the underscore poll.

POLL: The std:: + global module should be named std.all.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
3 9 4 5 4

Attendance: 28

# of Authors: 3

Author Position: 3 x SF

Outcome: No consensus.

POLL: The std:: + global module should be named std.compat.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
7 10 5 3 0

Attendance: 28

# of Authors: 3

Author Position: 1 x N, 2 x WF

Outcome: Consensus in favor.

POLL: Modify P2465R0 (Standard Library Modules std and std.all) by renaming std.all to std.compat, and then send the revised paper to LWG for C++23 with priority B1 (to be confirmed with a Library Evolution electronic poll).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
14 8 0 2 1

Attendance: 27

# of Authors: 3

Author Position: 3 x SF

Outcome: Consensus in favor.

WA: I don't think std.compat is a good name.

WA & SA: I am against the land grab of std.

End: 11:28

Summary

We reviewed P2465R0 (Standard Library Modules std and std.all), which proposes a minimal form of Standard Library modules.

During our last discussion of this topic, we determined that we wanted a module that only exported the names in std:: (as well as operator new/delete).

Today, we discussed whether we should have a second module which either

  • exports all the names in std:: plus global names (e.g. ::fopen), or
  • exports only global names (e.g. ::fopen).

We had a preference for first option, a std:: + global module. There was some suggestion that we could have both options, in addition to a std:: only module, but there was no noted support for this.

We also concluded our discussion about how these modules should be named. First, we decided that the std:: only module should be called std.

The naming of the std:: + global module was a bit more complicated. The original proposal was std.all, but some were concerned about having a module with a subordinate name (e.g. std.X) that was a superset of its parent (e.g. std), even though the module name syntax does not express any semantic hierarchy. Underscores as a delimiter were also considered, but some were worried about inconsistencies between std.X modules and std_X modules in the future. An undelimited form, stdX, was also suggested.

Ultimately, we only had consensus for the std.X pattern. We settled on the name std.compat for the std:: plus global module.

Outcome

Library Evolution sends P2465R0 (Standard Library Modules std and std.all), renaming std.all to std.compat, to LWG, for C++23, classified as a focus (P0592 bucket 1 item). This will be confirmed via a Library Evolution electronic poll.

@wg21bot
Copy link
Collaborator

wg21bot commented Oct 26, 2021

P2465R1 Standard Library Modules std and std.compat (Stephan T. Lavavej, Gabriel Dos Reis, Bjarne Stroustrup, Jonathan Wakely)

@wg21bot wg21bot added this to the 2021-telecon milestone Oct 26, 2021
@brycelelbach brycelelbach added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Nov 9, 2021
@cor3ntin cor3ntin added LWG Library and removed ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Dec 6, 2021
@cor3ntin
Copy link

cor3ntin commented Dec 6, 2021

2021-11 Library Evolution Electronic Poll Outcomes

Poll 1: Send [P2465R1] (Standard Library Modules std And std.compat) to Library Working Group for C++23, classified as a focus ([P0592R4] bucket 1 item).

SF F N A SA
20 9 1 2 1

Consensus in favor

@cor3ntin cor3ntin removed the LEWG Library Evolution label Dec 6, 2021
@jensmaurer
Copy link
Member

The paper contains Core changes.

@jensmaurer jensmaurer added the CWG Core label Dec 10, 2021
@jensmaurer jensmaurer added this to Ready for review in CWG Dec 10, 2021
@jensmaurer jensmaurer changed the title P2465 Standard Library Modules std and std.all P2465 Standard Library Modules std and std.compat Dec 16, 2021
@jensmaurer jensmaurer modified the milestones: 2021-telecon, 2022-telecon Jan 1, 2022
@jensmaurer jensmaurer moved this from Ready for review to Awaiting updated wording in CWG Jan 28, 2022
@jensmaurer jensmaurer added needs-revision Paper needs changes before it can proceed and removed B1 - focus Bucket 1 as described by P0592: material that is mentioned in this plan. labels Jan 28, 2022
@jensmaurer
Copy link
Member

Reviewed in CWG telecon 2022-01-27: Needs revision.

@StephanTLavavej
Copy link

I have submitted P2465R2 for the next mailing, containing minor Core wording changes.

I would like to ask where this is on the LWG review schedule (which shouldn't need to block on CWG review) - is this the right place or should I ask on the reflector?

@jensmaurer
Copy link
Member

jensmaurer commented Feb 3, 2022

@StephanTLavavej , please e-mail Jonathan Wakely and Jeff Garland for LWG scheduling concerns.

@JeffGarland
Copy link
Member

LWG review is planned for 2022-02-18.

@JeffGarland
Copy link
Member

LWG reviewed and approved for c++23.

Notes: https://wiki.edg.com/bin/view/Wg21telecons2022/P2465-20220218

poll: Adopt P2465R2 Standard Library Modules std and std.compat for c++23

F N A
16 0 0

@jensmaurer jensmaurer removed the needs-revision Paper needs changes before it can proceed label Feb 18, 2022
@jensmaurer jensmaurer moved this from Awaiting updated wording to Ready for review in CWG Feb 18, 2022
@wg21bot
Copy link
Collaborator

wg21bot commented Feb 22, 2022

P2465R2 Standard Library Modules std and std.compat (Stephan T. Lavavej, Gabriel Dos Reis, Bjarne Stroustrup, Jonathan Wakely)

@jensmaurer
Copy link
Member

CWG review is planned for 2022-03-11.

@jensmaurer
Copy link
Member

CWG telecon 2022-03-11: Approved D2465R3
https://wiki.edg.com/pub/Wg21telecons2022/Teleconference2022-03-11/D2465R3.pdf

@jensmaurer jensmaurer moved this from Ready for review to Approved for plenary vote in CWG Mar 11, 2022
@jensmaurer jensmaurer added the straw-poll Straw poll label Mar 11, 2022
@JeffGarland JeffGarland added the tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. label Mar 11, 2022
@JeffGarland
Copy link
Member

JeffGarland commented Mar 11, 2022

With CWG and LWG both complete setting ready for the next plenary vote. Library will move this paper.

@wg21bot
Copy link
Collaborator

wg21bot commented Mar 21, 2022

P2465R3 Standard Library Modules std and std.compat (Stephan T. Lavavej, Gabriel Dos Reis, Bjarne Stroustrup, Jonathan Wakely)

@cor3ntin cor3ntin added the plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. label Jul 25, 2022
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 IS Ship vehicle: IS LWG Library modular-standard-library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. size - large paper size estimate straw-poll Straw poll tentatively-ready-for-plenary Reviewed between meetings; ready for a vote.
Projects
CWG
Approved for plenary vote
Development

Successfully merging a pull request may close this issue.

6 participants