Skip to content

Commit 5929840

Browse files
authored
Merge pull request #261 from cplusplus/r10
update the release notes for R10
2 parents 02b2b99 + 59fe59a commit 5929840

File tree

1 file changed

+50
-13
lines changed

1 file changed

+50
-13
lines changed

execution.bs

+50-13
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
Title: `std::execution`
33
H1: <code>std::execution</code>
44
Shortname: P2300
5-
Revision: 9
5+
Revision: 10
66
Status: P
77
Group: WG21
8+
Date: 2024-06-28
89
Audience: SG1, LEWG
910
Editor: Michał Dominiak, [email protected]
1011
Editor: Georgy Evtushenko, [email protected]
@@ -1503,9 +1504,22 @@ The changes since R9 are as follows:
15031504

15041505
<b>Fixes:</b>
15051506

1507+
* Fixed `connect` and `get_completion_signatures` to use `transform_sender`,
1508+
as "[[P2999R3]]" proposed (but failed) to do. See "[[P3303R1]]" for details.
1509+
15061510
* `ensure_started`, `start_detached`, `execute`, and `execute_may_block_caller`
15071511
are removed from the proposal. They are to be replaced with safer and more
1508-
structured APIs by [@P3149R3].
1512+
structured APIs by "[[P3149R3]]". See "[[P3187R1]]" for details.
1513+
1514+
* Fixed a logic error in the specification of `split` that could have caused a
1515+
receiver to be completed twice in some cases.
1516+
1517+
* Fixed `stopped_as_optional` to handle the case where the child sender
1518+
completes with more than one value, in which case the `stopped_as_optional`
1519+
sender completes with an `optional` of a `tuple` of the values.
1520+
1521+
* The `queryable`, `stoppable_source`, and `stoppable_callback_for` concepts
1522+
have been made exposition-only.
15091523

15101524
<b>Enhancements:</b>
15111525

@@ -1515,18 +1529,35 @@ The changes since R9 are as follows:
15151529
* The `get_delegatee_scheduler` query has been renamed to
15161530
`get_delegation_scheduler`.
15171531

1532+
* The `read` environment has been renamed to `read_env`.
1533+
1534+
* The nullary forms of the queries which returned instances of the `read_env`
1535+
sender have been removed. That is, `get_scheduler()` is no longer another way
1536+
to spell `read_env(get_scheduler)`. Same for the other queries.
1537+
1538+
* A feature test macro has been added: `__cpp_lib_senders`.
1539+
1540+
* `transfer` has been renamed to `continues_on`. `on` has been renamed to
1541+
`starts_on`. A new `on` algorithm has been added that is a combination of
1542+
`starts_on` and `continues_on` for performing work on a different context
1543+
and automatically transitioning back to the starting one. See "[[P3175R3]]"
1544+
for details.
1545+
15181546
* An exposition-only <i>`simple-allocator`</i> concept is added to the
15191547
Library introduction ([library]), and the specification of the
15201548
`get_allocator` query is expressed in terms of it.
15211549

1550+
* An exposition-only <i>`write-env`</i> sender adaptor has been added for
1551+
use in the implementation of the new `on` algorithm.
1552+
15221553
## R9 ## {#r9}
15231554

15241555
The changes since R8 are as follows:
15251556

15261557
<b>Fixes:</b>
15271558

15281559
* The `tag_invoke` mechanism has been replaced with member functions
1529-
for customizations as per \[P2855](https://wg21.link/p2855).
1560+
for customizations as per "[[P2855R1]]".
15301561

15311562
* Per guidance from LWG and LEWG, `receiver_adaptor` has been removed.
15321563

@@ -4275,7 +4306,6 @@ namespace std {
42754306
template&lt;class CallbackFn>
42764307
class inplace_stop_callback;
42774308

4278-
<span class="ed-note">Do we need the `::template` here?</span>
42794309
template&lt;class T, class CallbackFn>
42804310
using stop_callback_for_t = T::template callback_type&lt;CallbackFn>;</div>
42814311
}
@@ -6932,13 +6962,6 @@ namespace std::execution {
69326962

69336963
- Otherwise, `tag_of_t<Sndr>` is ill-formed.
69346964

6935-
<span class="ed-note">
6936-
There is no way in standard C++ to determine whether the above declaration
6937-
is well-formed without causing a hard error, so this presumes compiler
6938-
magic. However, the author anticipates the adoption of [@P2141R1], which
6939-
makes it possible to implement this purely in the library. P2141 has already
6940-
been approved by EWG for C++26.</span>
6941-
69426965
6. Let <i>`sender-for`</i> be an exposition-only concept defined as follows:
69436966

69446967
<pre highlight="c++">
@@ -7856,10 +7879,10 @@ namespace std::execution {
78567879
* `decltype((sch))` does not satisfy `scheduler`, or
78577880

78587881
* `decltype((sndr))` does not satisfy `sender` and `sndr` is not
7859-
a pipeable sender adaptor closure object ([exec.adapt.objects]), or
7882+
a pipeable sender adaptor closure object ([exec.adapt.objects]), or
78607883

78617884
* `decltype((sndr))` satisfies `sender` and `sndr` is also
7862-
a pipeable sender adaptor closure object.
7885+
a pipeable sender adaptor closure object.
78637886

78647887
3. Otherwise, if `decltype((sndr))` satisfies `sender`, the expression `on(sch,
78657888
sndr)` is expression-equivalent to:
@@ -9955,6 +9978,20 @@ void finish();
99559978
"pages": 2352,
99569979
"publisher": "The Open Journal",
99579980
"journal": "Journal of Open Source Software"
9981+
},
9982+
9983+
"P3175R3": {
9984+
"authors": ["Eric Niebler"],
9985+
"href": "https://wg21.link/P3175R3",
9986+
"title": "Reconsidering the std::execution::on algorithm",
9987+
"date": "2024-06-24"
9988+
},
9989+
9990+
"P3303R1": {
9991+
"authors": ["Eric Niebler"],
9992+
"href": "https://wg21.link/P3303R1",
9993+
"title": "Fixing Lazy Sender Algorithm Customization",
9994+
"date": "2024-06-24"
99589995
}
99599996
}
99609997
</pre>

0 commit comments

Comments
 (0)