cplusplus / papers

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

P2786 R6 Trivial Relocatability For C++26 #1463

Open erichkeane opened 1 year ago

erichkeane commented 1 year ago

P2786R0 Trivially relocatability options (Mungo Gill, Alisdair Meredith)

erichkeane commented 1 year ago

This paper was seen by EWGI with P1144 during the February 10th, 2023 evening session in Issaquah.

The following polls were taken:

Given the committee's limited bandwidth, EWGI believes the problem presented in P1144/P2786 is worth solving.

SF F N A SA
10 8 0 0 0

Result: Consensus

EWGI believes the problem being introduced in P1144/P2786 should be solved in a more general way instead of as proposed.

SF F N A SA
3 0 5 6 4

Result: Not Consensus

EWGI believes that the relocatable annotation in P1144R6 is acceptable as an attribute.

SF F N A SA
0 6 4 6 2

Result: Not Consensus

EWGI believes that the relocatable annotation should just 'trust' the user as presented in P1144R6 (aka sharp knife) instead of be diagnosed, as in P2786R0 (aka 'dull knife').

F N A
7 5 6

Result: No obvious preference

Inform the EWG chair that we believe P1144R6 is sufficiently ready to be presented in EWG.

SF F N A SA
0 7 4 3 1

Result: Not Consensus

Inform the EWG chair that we believe P2786R0 is sufficiently ready to be presented in EWG.

SF F N A SA
1 8 3 3 1

Result: Weak Consensus

Guidance to the authors was given to work with the author of P1144 to better ensure a more unified set of pros/cons/well thought out behaviors before the discussion in EWG. However, our weak consensus is enough for this paper as-is to be seen by the EWG chair.

wg21bot commented 1 year ago

P2786R1 Trivial relocatability options (Mungo Gill, Alisdair Meredith)

jfbastien commented 1 year ago

https://github.com/cplusplus/papers/issues/1542 was seen in EWG in Varna, feedback provided.

wg21bot commented 1 year ago

P2786R2 Trivial relocatability options (Mungo Gill, Alisdair Meredith)

wg21bot commented 11 months ago

P2786R3 Trivial Relocatability For C++26 (Mungo Gill)

wg21bot commented 7 months ago

P2786R4 Trivial Relocatability For C++26 (Mungo Gill, Alisdair Meredith)

erichkeane commented 6 months ago

This was discussed in EWG in Tokyo during the Monday afternoon session. The following poll was taken:

Forward P2786R4 to CWG for inclusion in C++26.

SF F N A SA
7 9 6 0 2

Result: Consensus

jensmaurer commented 6 months ago

CWG 2024-03-21: Reviewed; needs updates.

Concern for EWG: CWG strongly suggests dropping the change for anonymous classes; it is squatting syntax space that might be needed in the future, for little gain.

erichkeane commented 6 months ago

EWG discussed this in EWG during the Friday AM session in Tokyo. The following polls were taken:

Poll: D2786R5 — Trivial Relocatability For C++26: EWG agrees with CWG’s proposal to disallow trivially_relocatable(�) on unnamed struct/class/union.

SF F N A SA
11 12 2 0 0

Result: Consensus

Poll: D2786R5 — Trivial Relocatability For C++26: EWG agrees to make a most vexing parse involving trivial relocatability “just work” as a trivially relocatable type by carving out the specific syntax “class-key class-head-name trivially_relocatable (“. For example: struct C trivially_relocatable (bool(my_constexpr_value)) { };

SF F N A SA
0 6 10 6 2

Result: Not consensus, paper's status quo prevails

jensmaurer commented 6 months ago

CWG 2024-03-22: Reviewed, needs updates. (Limit "most vexing parse" to potential function parameter declaration by parsing balanced-token-seq starting at ().

inbal2l commented 5 months ago

2024-04-10 Library Evolution Telecon

P2786R4: Trivial Relocatability For C++26

(the trait part was voted on as appears in revision P2786R5, with the guarantee from the authors that this part was not changed)

2024-04-10 Library Evolution Telecon Minutes

Champion: Alisdair Meredith, Mungo Gill Chair: Inbal Levi Minute Taker: Robert Leahy

Summary

POLL: We approve the design of the “is_trivially_relocatable” trait (as defined in P2786R5):

template< class T > struct is_trivially_relocatable; template< class T > constexpr bool is_trivially_relocatable_v = is_trivially_relocatable< T >::value;

With type properties: template struct is_trivially_relocatable; Condition: T is a trivially relocatable type (6.8.1. [basic.types.general]) Preconditions: remove_all_extents_t shall be a complete type or cv-void

SF F N A SA
3 8 0 0 0

Attendance: 20 Author's Position: 2xF Outcome: Strong consensus in favor

To summarize - we approved the design of the “is_trivially_relocatable” trait (as defined in P2786R5).

Design decisions to be made in future discussions for the “trivially_relocate” template function:

Next Steps

We approved the design of the “is_trivially_relocatable” trait (as defined in P2786R5). We still need to look at the “trivially_relocate” template function. Followup sessions are required, to address the design decisions mentioned above.

LEWG would like to see:

  1. Examples of applying the feature on standard lib, to get informed decisions on the proposed API.
  2. The comparison paper, to understand what are the tradeoffs taken.
  3. LEWG would also like to be informed of the design decisions made (possibly by reviewing P2814).

A follow-up on this would be by the Convenor and EWG chairs. In case a session on this topic will be scheduled in EWG, we'll have it as a joint one.

wg21bot commented 5 months ago

P2786R5 Trivial Relocatability For C++26 (Mungo Gill, Alisdair Meredith)

wg21bot commented 4 months ago

P2786R6 Trivial Relocatability For C++26 (Mungo Gill, Alisdair Meredith)

jfbastien commented 2 months ago

Seen in EWG in St Louis:

Poll: P2786R6 — Trivial Relocatability For C++26, given the new information received (P3233R0, P3236R1, P3278R0), we wish to un-forward P2786 from CWG and bring it back to EWG.

SF F N A SA
21 15 3 6 5