cplusplus / papers

ISO/IEC JTC1 SC22 WG21 paper scheduling and management
655 stars 18 forks source link

P3019 R10 Vocabulary Types for Composite Class Design #1680

Open wg21bot opened 1 year ago

wg21bot commented 1 year ago

P3019R0 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

jbcoe commented 1 year ago

Draft and reference implementation at https://github.com/jbcoe/value_types

ben-craig commented 1 year ago

Library Evolution Meeting Kona 2023-11-08

P3019R1: Vocabulary Types for Composite Class Design

2023-11-08 Library Evolution Kona Minutes

Champion: Jonathan Coe

Chair: Inbal Levi / Billy Baker

Minute Taker: Eddie Nolan, Andreas Weis

Summary

POLL: Add "operator()", "operator[]" to the proposed classes.

SF F N A SA
0 0 10 4 5

Attendance: 19 IP + 8 R

# of Authors: 2

Authors’ position: 1 SA 1 WA

Outcome: Consensus Agains

POLL: Add "emplace" to the proposed classes.

SF F N A SA
0 1 1 11 6

Attendance: 19 IP + 8 R

# of Authors: 2

Authors’ position: 2xA

Outcome: Consensus Against

Favor: Have to spell the type if emplace is not there.

POLL: We want to support types that have comparison operators incompatible with regularity

SF F N A SA
0 9 5 2 2

Attendance: 19 IP + 8 R

# of Authors: 2

Authors’ position: 2x WF

Outcome: Not consensus for a change

IL: We need to take the following poll next meeting (POLL: Remove "noexcept" from all the functions apart from *, ->, move CTOR, and move assignment)

Next Steps

The paper made progress. Authors are to provide a new revision which will be seen again during the Kona meeting.

Library Evolution Meeting Kona 2023-11-10

P3019R02: Vocabulary Types for Composite Class Design

2023-11-10 Library Evolution Kona Minutes

Champion: Jonathan Coe

Chair: Ben Craig, Inbal Levi

Minute Taker: Eddie Nolan, Andreas Weis

Summary

__POLL: Remove preconditions for move, copy, swap, move assign, assign, comparisons, and std::hash for indirect and polymorphic_value as appropriate.__

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

Attendance: 32 IP + 6 R # of Authors: 2 Author Position: 2xSA Outcome: Weak consensus against

__POLL: Require T of polymorphic to be a polymorphic base class (which will prevent the template parameter from being an incomplete type)___

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
1 0 4 6 17

Attendance: 31 IP + 4 R # of Authors: 2 Author Position: 2XSA Outcome: Strong consensus against

SF: Seems we love polymorphic<int> too much

POLL: Approve design of P3019R2 (Vocabulary Types for Composite Class Design), except ensure the swap noexcept specification matches std::vector and remove the std::optional specialization.

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

Attendance: 32 IP + 4 R # of Authors: 2 Author Position: 2xSF Outcome: Strong Consensus in favor

WA: Can't vote in favor of the approach that makes the valueless state unsafe

Next Steps

The design was approved with the proposed changes in the polls. Minor fixes are still required, authors will work on this and present the change log at the next meeting.

The paper wording and final design will be reviewed in a telecon.

inbal2l commented 12 months ago

Library Evolution Telecon 2023-11-21

P3019R3: Vocabulary Types for Composite Class Design

2023-11-21 Library Evolution Telecon

Champion: Jonathan Coe Chair: Inbal Levi Minute Taker: Ben Craig

Summary

We covered change log for R3 (and before). We will see the paper again with the resolution for the topics:

Next meeting we should also discuss on the topics (and weather they can be added later):

POLL: Investigate “explicitness” of the CTORS for “indirect” and “polymorphic”, and come back to LEWG with a resolution.

SF F N A SA
3 1 5 7 1

Outcome: Weak consensus against (no need for additional exploration from the authors) # of Authors: 2 Authors’ position: 2xN Attendance: 30

POLL: Indirect should accept any T which is Cpp17Destructible (relax the restrictions in the paper, to allow int, union and function pointers).

SF F N A SA
4 11 2 0 0

Outcome: Consensus in favor # of Authors: 2 Authors’ position: 2xF Attendance: 30

Next Steps

Once we have a detailed reasoning for the course of action for "valueless state”, send the paper to SG23. Come back to LEWG with an investigation of the topics above.

Please reach out to authors between meetings. If no major topic comes up, the next meeting should be devoted to wording review.

wg21bot commented 11 months ago

P3019R1 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

wg21bot commented 11 months ago

P3019R2 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

wg21bot commented 11 months ago

P3019R3 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

inbal2l commented 9 months ago

2024-02-06 Library Evolution Telecon

P3019R4: Vocabulary Types for Composite Class Design (design review) P3019R5: Vocabulary Types for Composite Class Design (wording review)

2024-02-06 Library Evolution Telecon Minutes

Champion: Jonathan B. Boe Chair: Fabio Fracassi Minute Taker: Ben Craig

Summary

TODO: @FabioFracassi (modify/add)

Paper forwarding checklist:

Modifications requested by the room:

POLL: Modify P3019R6 as specified, then forward it to LWG for C++26 as B3 (to be confirmed by an electronic poll)

SF F N A SA
5 11 0 0 0

Attendance: 19 # of Authors: 2 Author's Position: 2xSF Outcome: Unanimous consent in favor

Next Steps

Authors will publish both R4 (from D4) and R5, of which we reviewed the wording (from D5) in the paper system. Then they will apply the changes requested by LEWG and publish an R6 (please send it to the LEWG reflector, for verification). Assuming specified as intended, R6 will be forwarded to LWG for C++26 as B3 (to be confirmed by an electronic poll).

Twon commented 9 months ago

Latest versions of the paper now uploaded:

wg21bot commented 9 months ago

P3019R4 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

wg21bot commented 9 months ago

P3019R5 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

inbal2l commented 9 months ago

P3019R6 was added to LEWG 2024 February electronic poll paper (P3123R0) (P3152R0 was created to follow up on potential design extensions)

jbcoe commented 8 months ago

Latest draft: https://isocpp.org/files/papers/P3019R8.html

JeffGarland commented 7 months ago

This paper was seen by LWG on Friday in Tokyo -- significant feedback given to authors. @jwakely has also now implemented the proposal.

Notes here: https://wiki.edg.com/bin/view/Wg21tokyo2024/LibraryWorkingGroup

inbal2l commented 7 months ago

P3019R6 was forwarded in LEWG 2024 February electronic poll (outcomes: P3124R0)

wg21bot commented 7 months ago

P3019R7 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

wg21bot commented 7 months ago

P3019R8 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

wg21bot commented 1 month ago

P3019R9 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

wg21bot commented 1 month ago

P3019R10 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)