-
Notifications
You must be signed in to change notification settings - Fork 228
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Checking mergeability…
Don’t worry, you can still create the pull request.
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: NVIDIA/stdexec
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: NVIDIA/stdexec
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: pull-request/1790
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 12 commits
- 23 files changed
- 1 contributor
Commits on Jan 31, 2026
-
exec::storage_for_completion_signatures
Certain algorithms, for example when_all, must store the completions of child operations and then later examine or forward them. The typical way of doing this is via decay-copy into a tuple, but this erases the reference-ness of values and errors. The class template added by this commit, exec:: storage_for_completion_signatures, makes it convenient to store, examine, and forward the completions of some asynchronous operation, while also being reference-aware.
Configuration menu - View commit details
-
Copy full SHA for a7cc199 - Browse repository at this point
Copy the full SHA a7cc199View commit details -
Type alias for the type returned by std::forward_like.
Configuration menu - View commit details
-
Copy full SHA for 98a38c5 - Browse repository at this point
Copy the full SHA 98a38c5View commit details -
Copy/paste of Beman.Elide. I am the sole author thereof so this is fine.
Configuration menu - View commit details
-
Copy full SHA for 6c29d52 - Browse repository at this point
Copy the full SHA 6c29d52View commit details -
stdexec::let_value performs two functions: - Persisting the values sent by the predecessor, and - Predicating the successor on those persisted values Which leaves space for a lower level primitive: One which simply predicates a successor sender on the values sent by a predecessor. That lower level primitive is exec::invoke.
Configuration menu - View commit details
-
Copy full SHA for 90791c5 - Browse repository at this point
Copy the full SHA 90791c5View commit details -
Adds concepts which deal with exit scope senders. An exit scope sender performs the clean up/rollback operations necessary to leave a "scope." As such an exit scope sender must (in addition to being a sender): - Send exactly stdexec::set_value_t() - Be nothrow connectable - Be nothrow movable - Be nothrow decay-copyable Note that in some sense an exit scope sender is analogous to a destructor.
Configuration menu - View commit details
-
Copy full SHA for f42972b - Browse repository at this point
Copy the full SHA f42972bView commit details -
exec::enter_scope_sender et al.
Adds concepts which deal with enter scope senders. Whereas an exit scope sender performs the operations necessary to leave a scope, an enter scope sender performs the operations necessary to enter a scope. Just entering a scope is insufficient, however, as if a scope is entered it must be exited. Therefore enter scope senders not only perform the actions which must be taken to enter a scope, but also complete with a sender which undoes those actions, i.e. all enter scope senders are a higher-order sender.
Configuration menu - View commit details
-
Copy full SHA for b91e354 - Browse repository at this point
Copy the full SHA b91e354View commit details -
An algorithm which combines N enter scope senders into a single enter scope sender which enters the scopes represented by each of its children in parallel, i.e. the scopes are entered in no particular order, as if by stdexec::when_all.
Configuration menu - View commit details
-
Copy full SHA for 8a03d59 - Browse repository at this point
Copy the full SHA 8a03d59View commit details -
Algorithm which accepts an enter scope sender, and a sender to run within the scope represented by the enter scope sender, respectively. The resulting operation: 1. Enters the scope represented by the enter scope sender 2. Runs the operation represented by the other sender 3. Stores the completion of the above 4. Exits the scope using the exit scope sender yielded by the operation in step 1 5. Yields the completion stored in step 3
Configuration menu - View commit details
-
Copy full SHA for 19e7ed3 - Browse repository at this point
Copy the full SHA 19e7ed3View commit details -
Adds the concepts which deal with asynchronous objects. An asynchronous object is an object whose constructor and destructor are asynchronous operations (as opposed to regular, synchronous object which have constructors and destructors which are regular, synchronous functions). Whereas senders are a fully-curried asynchronous function the concept of an asynchronous object embodied by the concepts in this commit is a fully-curried asynchronous constructor. The particular form of the aforementioned is a unary invocable whose: - Sole argument is a pointer to storage whereat the asynchronous object shall be placed - Returned value is an enter scope sender which constructs the object (asynchronously) when the scope is entered, and destroys the object (asynchronously) when the scope is exited
Configuration menu - View commit details
-
Copy full SHA for 3bfabbd - Browse repository at this point
Copy the full SHA 3bfabbdView commit details
Commits on Feb 6, 2026
-
Enables consumption of asynchronous objects. Accepts an invocable, and N asynchronous objects. Forms an operation which, when connected: 1. Provides the asynchronous objects with storage in its operation state 2. Passes all enter scope senders obtained in step 1 to exec:: enter_scopes to combine them 3. Connects the resulting enter scope sender And when started: 1. Starts the enter scope sender which was connected in step 3 above 2. If the operation started in step 1 sends error or stopped, completes immediately with that completion, otherwise passes a reference to all of the newly-constructed objects to the invocable, obtaining a sender 3. Connects and starts the sender obtained in step 2 4. Upon the completion of that operation, stores the completion thereof 5. Connects and starts the exit scope sender which destroys the objects constructed in step 1 6. Upon the completion of that operation, ends the overall operation with the completion stored in step 4
Configuration menu - View commit details
-
Copy full SHA for c21105f - Browse repository at this point
Copy the full SHA c21105fView commit details -
Adaptor which transforms a regular, synchronous object into an asynchronous object.
Configuration menu - View commit details
-
Copy full SHA for 3cedfe8 - Browse repository at this point
Copy the full SHA 3cedfe8View commit details -
Similar to exec::enter_scopes except the scopes are not entered in parallel. The first enter scope sender's operation runs, then the second, et cetera. The yielded exit scope sender exits the scopes in the reverse order. If at any point an enter scope sender's operation ends with error or stopped all scopes that have been entered are exited in reverse order and the operation completes with the error or stopped signal received.
Configuration menu - View commit details
-
Copy full SHA for 8fa65b7 - Browse repository at this point
Copy the full SHA 8fa65b7View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...pull-request/1790