P2233R0
2020 Fall Library Evolution Polls

Published Proposal,

Author:
(NVIDIA)
Source:
GitHub
Issue Tracking:
GitHub
Project:
ISO/IEC JTC1/SC22/WG21 14882: Programming Language — C++
Audience:
WG21

Introduction

This paper contains the decision polls that the C++ Library Evolution group will take in Fall of 2020.

Voting

These decision polls will be conducted electronically; see [P2195R0] for more information.. Details on how to participate in these polls will be distributed on the Library Evolution mailing list. All committee members may vote, but if you have not participated in the Library Evolution discussions of executors, please choose to not vote.

The tentative timeline for these votes is as follows:

Polls

Each poll consists of a statement; you vote on whether you support the statement. All polls will be 5-way polls; you’ll vote either strongly for, weakly for, neutral, weakly against, or strongly against.

Executor Polls

The following C++ Library Evolution polls relate to executors ([P0443R13]), a proposed set of abstractions for asynchronously creating and managing execution agents. These polls are based on the reports of the six breakout groups that reviewed various aspects of the executors proposal in the Summer of 2020 ([P2202R0], [P2203R0], [P2183R0], [P2205R0], [P2206R0], and [P2207R0]).

Poll 0

Remove explicit adaptation (apply [P2235R0] to [P0443R14]):

Poll 1

Use one class for each individual trait instead of combined traits classes (sender_traits, etc).

Poll 2

Remove static_thread_pool from [P0443R14] (it may be pursued in a follow-on proposal).

Poll 3

Remove any_executor from [P0443R14] (it may be pursued in a follow-on proposal).

Poll 4

Remove any_executor::target and any_executor::target_type from [P0443R14].

Poll 5

Executors are sufficiently mature that we should aim to ship them in C++23.

Other Polls

Poll 6

Send [P2212R1] (Relax Requirements for time_point::clock) to LWG for C++23, classified as a bug fix/enhancement of an existing feature ([P0592R4] bucket 2 item).

Poll 7

Send [P2166R1] (Prohibit basic_string and basic_string_view Construction from nullptr) to LWG for C++23, classified as a bug fix/enhancement of an existing feature ([P0592R4] bucket 2 item).

Poll 8

Send [P2161R0] (Remove Default Candidate Executor) to LWG for the Networking TS Working Draft, classified as a focus work item ([[P0592R4 bucket 1 item).

References

Informative References

[P0443R13]
Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, Carter Edwards, Gordon Brown, D. S. Hollman, Lee Howes, Kirk Shoop, Lewis Baker, Eric Niebler. A Unified Executors Proposal for C++. 2 March 2020. URL: https://wg21.link/p0443r13
[P0443R14]
Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, H. Carter Edwards, Gordon Brown, D. S. Hollman. A Unified Executors Proposal for C++. 15 September 2020. URL: https://wg21.link/p0443r14
[P0592R4]
Ville Voutilainen. To boldly suggest an overall plan for C++23. 25 November 2019. URL: https://wg21.link/p0592r4
[P2161R0]
Robert Leahy. Remove Default Candidate Executor. 14 May 2020. URL: https://wg21.link/p2161r0
[P2166R1]
Yuriy Chernyshov. A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr. 7 September 2020. URL: https://wg21.link/p2166r1
[P2183R0]
David Olsen, Ruslan Arutyunyan, Michael J. Voss, Michał Dominiak, Chris Kohlhoff, D.S. Hollman, Kirk Shoop, Inbal Levi. Executors Review: Properties. 14 July 2020. URL: https://wg21.link/p2183r0
[P2195R0]
Bryce Adelstein Lelbach. Electronic Straw Polls. 15 September 2020. URL: https://wg21.link/p2195r0
[P2202R0]
Gašper Ažman, Tony van Eerd, Thomas Rodgers, Tomasz Kamiński, Corentin Jabot, Robert Leahy, Gordon Brown, Kirk Shoop, Eric Niebler, Dietmar Kühl. Senders/Receivers group Executors review report. 15 July 2020. URL: https://wg21.link/p2202r0
[P2203R0]
Ryan McDougall, Tomasz Kamiński, Conor Hoekstra, Bryan St. Amour. LEWG Executors Customization Point Report. 15 July 2020. URL: https://wg21.link/p2203r0
[P2205R0]
Inbal Levi, Ruslan Arutyunyan, Zach Laine, Tom Scogland, Dmitri Mokhov, Chris Kohlhoff, Daisy Hollman, Jared Hoberock. Executors Review - Polymorphic Executor. 19 August 2020. URL: https://wg21.link/p2205r0
[P2206R0]
Ruslan Arutyunyan, Ben Craig, Guy Davidson, Anuya Welling, Michael Voss, Tom Scogland, Chris Kohlhoff, Gordon Brown, Lee Howes. Executors Thread Pool review report. 2 September 2020. URL: https://wg21.link/p2206r0
[P2207R0]
Guy Davidson, Ben Craig, Robert Leahy, Michał Dominiak, Alexey Kukanov, Hartmut Kaiser, Daisy Hollman, Jared Hoberock, Gordon Brown. Executors review: concepts breakout group report. 14 August 2020. URL: https://wg21.link/p2207r0
[P2212R1]
Alexey Dmitriev, Howard Hinnant. Relax Requirements for time_point::clock. 14 September 2020. URL: https://wg21.link/p2212r1
[P2235R0]
Ville Voutilainen. Disentangling Schedulers and Executors. 2020-10-15. URL: https://isocpp.org/files/papers/P2235R0.html