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

P2538 ADL-proof std::projected #1201

Closed
wg21bot opened this issue Feb 22, 2022 · 10 comments · Fixed by cplusplus/draft#6349
Closed

P2538 ADL-proof std::projected #1201

wg21bot opened this issue Feb 22, 2022 · 10 comments · Fixed by cplusplus/draft#6349
Labels
C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. ranges std::ranges
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Feb 22, 2022

P2538R0 ADL-proof std::projected (Arthur O'Dwyer)

@wg21bot wg21bot added LEWG Library Evolution LWG Library labels Feb 22, 2022
@wg21bot wg21bot added this to the 2022-telecon milestone Feb 22, 2022
@cor3ntin cor3ntin added the SG9 Ranges SG label Feb 22, 2022
@brycelelbach brycelelbach added ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 size - small paper size estimate IS Ship vehicle: IS C++26 Targeted at C++26 labels Mar 14, 2022
@inbal2l inbal2l removed the SG9 Ranges SG label Mar 15, 2022
@inbal2l
Copy link
Collaborator

inbal2l commented Mar 15, 2022

Was seen by SG9 (Ranges) on 2022-03-14 (Full Minutes)

Polls

POLL: We support forwarding the change proposed in P2538R0 to LEWG.

SF F N A SA
7 2 0 0 0

Attendance: 11

# of Authors: 1

Author Position: SF

Outcome: Consensus in favor

Summary

Consensus for forwarding to LEWG. Author is aware that the change is unlikely to be ported as a DR, but that implementers will have the freedom to back-port.

Implementation experience in libcxx (in paper) and in STL by Casey Carter (https://github.com/CaseyCarter/STL/tree/p2538), all tests in STL pass normally.

@inbal2l inbal2l added the ranges std::ranges label Mar 19, 2022
@brycelelbach brycelelbach added expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review and removed expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. labels Apr 1, 2022
@cor3ntin cor3ntin added ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll and removed ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list labels Apr 7, 2022
@cor3ntin
Copy link

cor3ntin commented Apr 7, 2022

A motion was made on april 4 2022 on the mailing list to send this paper to electronic polling https://lists.isocpp.org/lib-ext/2022/04/22898.php.

Motion passes with 10 votes.

@brycelelbach brycelelbach added expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. and removed scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Apr 7, 2022
@inbal2l inbal2l added C++23 Targeted at C++23 and removed C++26 Targeted at C++26 labels Apr 11, 2022
@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 Apr 22, 2022
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 25, 2022

P2538R1 ADL-proof std::projected (Arthur O'Dwyer, Casey Carter)

@brycelelbach brycelelbach added lwg-pending LWG Chair needs to disposition and removed LEWG Library Evolution 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 Jun 19, 2022
@brycelelbach
Copy link

2022-05 Library Evolution Electronic Poll Outcomes

POLL: Send [P2538R0] ADL-Proof projected to Library Working Group for C++23, classified as an improvement of an existing feature ([P0592R4] bucket 2 item).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
8 11 2 0 0

Strong consensus in favor.

@brycelelbach brycelelbach removed the size - small paper size estimate label Jun 19, 2022
@brycelelbach brycelelbach added C++23 Targeted at C++23 scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Jun 22, 2022
@brycelelbach
Copy link

After further discussion, we'll try and squeeze in another review of this in Library Evolution in time for C++23.

@brycelelbach
Copy link

After even further discussion, the potential conflicts were only in P2248 (#944), so this paper doesn't need more Library Evolution attention.

@brycelelbach brycelelbach added LWG Library lwg-pending LWG Chair needs to disposition LEWG Library Evolution and removed LEWG Library Evolution LWG Library lwg-pending LWG Chair needs to disposition ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Jun 28, 2022
@brycelelbach
Copy link

brycelelbach commented Jun 29, 2022

2022-06-28 Library Evolution Telecon

P2248R4: Enabling list-initialization for algorithms

2022-06-28 Library Evolution Telecon Minutes

P2609R0: Relaxing Ranges Just A Smidge

2022-06-28 Library Evolution Telecon P2609 Minutes

P2538R1: ADL-proof projected

2022-06-28 Library Evolution Telecon P2538 Minutes

Chair: Bryce Adelstein Lelbach

Minute Taker: Ben Craig

Champion: Giuseppe D'Angelo (P2248) & John Eivind Helset (P2609)

Start P2248: 2022-06-28 11:47 Eastern

POLL: Modify P2248R4 (Enabling list-initialization for algorithms) by making projected_value a metafunction defined in terms of invoke_result_t, and return the revised paper to Library for C++23 classified as B2 - Improvement, to be confirmed with a Library Evolution electronic poll.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
3 10 1 0 0

Attendance: 26

# of Authors: 1

Author Position: N

Outcome: Strong consensus in favor.

End: 11:55

POLL: Modify P2248R4 (Enabling list-initialization for algorithms) by making projected_value a metafunction defined in terms of invoke_result_t and extending the paper to ranges::fold and ranges::contains, and return the revised paper to Library for C++23 classified as B2 - Improvement, to be confirmed with a Library Evolution electronic poll.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
0 11 3 0 0

Attendance: 26

# of Authors: 1

Author Position: WF

Outcome: Consensus in favor.

N: Too much work for C++23.

POLL: Modify P2248R4 (Enabling list-initialization for algorithms) by making projected_value a metafunction defined in terms of invoke_result_t and extending the paper to ranges::fold and ranges::contains, and return the revised paper to Library for C++23 classified as B2 - Improvement, to be confirmed with a Library Evolution electronic poll.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
4 9 1 0 0

Attendance: 25

# of Authors: 1

Author Position: SF

Outcome: Strong consensus in favor.

We will go with the last poll.

End P2248: 12:03

Start P2609: 12:04

Does this paper have:

  • Examples?
    • Yes.
  • Field experience?
    • Implementation experience?
      • Yes, in ranges v3 and libstdc++.
  • Wording?
    • Yes.
  • Feature test macro?
    • No; we should modify the paper to bump the __cpp_lib_ranges feature
      test macro.

POLL: indirect_value_t should be exposition only.

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

Attendance: 25

# of Authors: 1

Author Position: N

Outcome: No consensus; we'll leave it to the author's discretion.

POLL: Modify P2609R0 (Relaxing Ranges Just A Smidge) by bumping the __cpp_lib_ranges feature test macro, and send the revised paper to Library for C++26 classified as B2 - Improvement, to be confirmed with a Library Evolution electronic poll.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
6 11 0 0 0

Attendance: 24

# of Authors: 1

Author Position: SF

Outcome: Unanimous consensus in favor.

End: 12:37

If P2609 merges before P2248, P2248 should define projected_value in terms of indirect_value_t.

If P2248 merges before P2609, P2609 should update the definition of projected_value.

Summary

We discussed projected_value (from P2248) and indirect_value_t (from P2609), two metafunctions with a very similar definition.
We determined that we should try to ensure that they are defined in terms of each other, and that we wanted both to be concrete and not expositional.
We also decided that P2248 (Enabling list -initialization for algorithms) should be expanded to include two new algorithms that have been added since P2248 was forwarded, ranges::fold and ranges::contains.

Next Steps

  • Produce and publish P2248R5 (Enabling list-initialization for algorithms), making projected_value a metafunction defined in terms of invoke_result_t and expanding the paper to include ranges::fold and ranges::contains
  • Take an electronic poll to confirm sending P2248R5 (Enabling list-initialization for algorithms) to Library for C++23 classified as B2 - Improvement.
  • Produce and publish P2609R1 (Relaxing Ranges Just A Smidge), bumping the __cpp_lib_ranges feature test macro.
  • Take an electronic poll to confirm sending P2609R0 (Relaxing Ranges Just A Smidge) to Library for C++26 classified as B2 - Improvement.
  • If P2609 merges before P2248, P2248 should define projected_value in terms of indirect_value_t.
  • If P2248 merges before P2609, P2609 should update the definition of projected_value.

@JeffGarland JeffGarland added C++26 Targeted at C++26 and removed C++23 Targeted at C++23 labels Jan 9, 2023
@JeffGarland
Copy link
Member

Correcting target label given the latest status

@JeffGarland
Copy link
Member

JeffGarland commented Apr 19, 2023

LWG reviewed and approved for C++26

https://wiki.edg.com/bin/view/Wg21telecons2023/P2538-20230419

Poll: Put P2538R1 in c++26

F A N
5 0 0

@JeffGarland JeffGarland added tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. and removed lwg-pending LWG Chair needs to disposition B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e size - small paper size estimate labels Apr 19, 2023
@cor3ntin cor3ntin added plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. and removed tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. labels Jun 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. ranges std::ranges
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants