-
Notifications
You must be signed in to change notification settings - Fork 227
Implement P3149R11 and P3815R1 #1713
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
Conversation
db2f61a to
9327406
Compare
|
/ok to test fd9d04b |
fd9d04b to
707aed3
Compare
|
The latest push includes an implementation of I have also tried to address the build failures on the previous iteration, but I don't have a local test environment for the failing build types so I haven't tested the fixes locally, other than to confirm that they still build with my local Clang (i.e. |
707aed3 to
66f394c
Compare
|
Rebased on #1717. |
96d4661 to
f786c00
Compare
|
/ok to test f786c00 |
67262ee to
97d79ee
Compare
|
/ok to test 97d79ee |
97d79ee to
95d10a7
Compare
|
I managed to get GCC 12 installed on my Mac and it repro'd the ICE and the build failure in |
52e1755 to
521d849
Compare
|
|
521d849 to
cc867f4
Compare
|
/ok to test cc867f4 |
a1dd153 to
9263dab
Compare
|
I think I've fixed the build breaks in old gcc, nvc++, and MSVC. Getting a repro of the gcc 11 builds was quite a pain—I can't figure out how to get gcc 11 to run properly on macOS Tahoe so I had to use I've updated |
9263dab to
254887d
Compare
|
Pull the guts of |
254887d to
f78a329
Compare
|
Do some template hoisting and renaming, and replace a single |
f78a329 to
e6db1ed
Compare
This diff adds a definition for `concept stdexec::scope_association` plus tests confirming it accepts and rejects the expected things.
This diff adds a definition for `concept stdexec::scope_token` plus tests confirming it accepts and rejects the expected things. Co-authored-by: Eric Niebler <eniebler@nvidia.com>
This diff defines `stdexec::associate` and adds some initial tests to confirm it works properly. Still a work in progress.
This diff defines `stdexec::__stop_when` as the implementation of _`stop-when`_ and adds tests to validate the algorithm. Co-authored-by: Eric Niebler <eniebler@nvidia.com>
This diff adds `stdexec::spawn` and its tests. Co-authored-by: Eric Niebler <eniebler@nvidia.com>
This diff adds `stdexec::simple_counting_scope` and `stdexec::counting_scope` plus tests for both. The tests found a spec bug that's been filed as an LWG issue. Co-authored-by: Eric Niebler <eniebler@nvidia.com>
This diff adds `stdexec::spawn_future` and some basic tests. Co-authored-by: Eric Niebler <eniebler@nvidia.com>
This diff probably implements the intended design that stop requests sent to a started future-sender get forwarded to the spawned work. The existing tests still pass, but I don't have new tests to confirm the new behaviour. Co-authored-by: Eric Niebler <eniebler@nvidia.com>
Wrap the call to `std::numeric_limits<std::size_t>::max` in parens so that Microsoft's `max` macro doesn't get in the way.
* Eliminate camel case * Uglify all identifiers * `s/\bassert\b/STDEXEC_ASSERT/g` * Take the address of objects with `std::addressof`
31ccf35 to
2775f7c
Compare
|
/ok to test 2775f7c |
Take @ericniebler's suggestion and use `__mapply_q` in `__spawn_future.hpp`.
Take @ericniebler's suggestion and replace a constrained overload set with a single overload with an internal cascade of constexpr ifs to control the environment selection logic in `__spawn_common.hpp` and to control the stop token construction in `__stop_when.hpp`.
Replace the pure-virtual function in `__spawn_state_base` with a function pointer.
Replace the pure-virtuals in `__try_cancelable` and `__spawn_future_state_base` with function pointers.
Take @ericniebler's suggestion for a better work-around for what might be a spec bug in howthe base class of `__spawn_future_state` is computed.
9bd9635 to
afd6e39
Compare
Since the stdexec-specific `__variant` type has an uninitialized state, we don't need the `__monostate` variant option to represent "uninitialized". Delete it.
|
There are still a few things I'd like to improve, but this is probably landable. |
|
/ok to test 9199dcc |
Explicitly specify the template type parameters when constructing a `__fused_token` in `__make_token_fn`.
Uncollide with MSVC's `__nothrow` attribute by renaming `__nothrow` to `__non_throwing`.
|
/ok to test 892f971 |
|
/ok to test bdb7f09 |
|
/ok to test 3303429 |
This PR will implement P3149R11 patched with P3815R1.
concept scope_associationconcept scope_tokenassociatealgorithmstop-whenalgorithmspawnalgorithmspawn_futurealgorithmsimple_counting_scopecounting_scope