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:
-
2020-10-13: Draft polls distributed by mailing list.
-
2020-10-22 or 2020-10-23: Final discussion telecon on these polls. Start of the polling period.
-
2020-11-19: Close of the polling period.
-
2020-11-20: Chairs share results and summarize consensus and conclusions of the results.
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]):
-
Make
schedule
only takescheduler
s. -
Make
execute
only takeexecutor
s. -
Make sender and receiver operations like
connect
only take senders and receivers. -
Add explicit adaptation from
executor
toscheduler
(make_scheduler_from_executor
) but not vice versa.
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).