2020 Fall Library Evolution Polls

Published Proposal,

Issue Tracking:
ISO/IEC JTC1/SC22/WG21 14882: Programming Language — C++

1. Introduction

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

2. Voting

These decision polls will be conducted electronically; see [P2195R1] for more information on electronic voting procedures.

All committee members may vote, but if you have not participated in the Library Evolution discussions of a poll, please choose to not vote.

2.1. How to Vote

Vote here

A documents.isocpp.org account is necessary to vote. If you have an isocpp.org/papers account, a documents.isocpp.org account has been created for you. Just go to documents.isocpp.org and reset your password by email. Email Bryce Adelstein Lelbach if you do not have an account or are having trouble accessing your account.

If you see "Form not found" when you go to the above link, you are not signed in to documents.isocpp.org. Go to documents.isocpp.org and sign in first.

You will not receive a confirmation email after voting. The Library Evolution chairs will send a confirmation to all voters before the close of the poll.

If you need to change how you voted or have any questions or issues about voting, please email Bryce Adelstein Lelbach.

2.2. Voting Timeline

3. 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 favor", "weakly favor", "neutral", "weakly against", or "strongly against". If you do not want to participate in a poll, select the "I do not want to participate in this poll" option. Those who do not participate in a poll will not be counted or recorded.

Each poll has a comment field. Please write a few sentences explaining the rationale for your vote.

Poll results and comments will be shared with Library Evolution after the end of the polling period, including attribution of your votes and comments.

If you want to discuss the polls or how you plan on voting, please start an email thread on the Library Evolution mailing list.

3.1. Executor Polls

The following C++ Library Evolution polls relate to executors ([P0443R14]), 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]).

3.1.1. Poll 0

Remove implicit adaptation from [P0443R14] (Executors) by applying [P2235R0] to [P0443R14]) which will:

3.1.2. Poll 1

Use one class for each individual trait instead of combined traits classes (sender_traits, etc) in [P0443R14] (Executors).

3.1.3. Poll 2

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

3.1.4. Poll 3

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

3.1.5. Poll 4

Remove any_executor::target and any_executor::target_type from [P0443R14] (Executors).

3.1.6. Poll 5

[P0443R14] (Executors) is sufficiently mature that we should aim to ship it in C++23.

3.2. Other Polls

3.2.1. Poll 6

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

3.2.2. Poll 7

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

3.2.3. Poll 8

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


Informative References

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
Ville Voutilainen. To boldly suggest an overall plan for C++23. 25 November 2019. URL: https://wg21.link/p0592r4
Robert Leahy. Remove Default Candidate Executor. 14 July 2020. URL: https://wg21.link/p2161r2
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
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
Bryce Adelstein Lelbach; et al. Electronic Straw Polls. 23 November 2020. URL: https://isocpp.org/files/papers/P2195R1.html
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
Ryan McDougall, Tomasz Kamiński, Conor Hoekstra, Bryan St. Amour. LEWG Executors Customization Point Report. 15 July 2020. URL: https://wg21.link/p2203r0
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
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
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
Alexey Dmitriev, Howard Hinnant. Relax Requirements for time_point::clock. 14 September 2020. URL: https://wg21.link/p2212r1
Ville Voutilainen. Disentangling Schedulers and Executors. 2020-10-15. URL: https://isocpp.org/files/papers/P2235R0.html