Skip to content

Conversation

@ispeters
Copy link

@ispeters ispeters commented Dec 14, 2025

This PR will implement P3149R11 patched with P3815R1.

  • [exec.scope.concepts]
    • concept scope_association
    • concept scope_token
  • [exec.associate]
    • associate algorithm
  • [exec.stop.when]
    • stop-when algorithm
  • [exec.spawn]
    • spawn algorithm
  • [exec.spawn.future]
    • spawn_future algorithm
  • [exec.counting.scopes]
    • simple_counting_scope
    • counting_scope

@copy-pr-bot
Copy link

copy-pr-bot bot commented Dec 14, 2025

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@ericniebler
Copy link
Collaborator

/ok to test fd9d04b

@ispeters
Copy link
Author

ispeters commented Dec 16, 2025

The latest push includes an implementation of stdexec::associate with some tests, but the tests are incomplete so I haven't marked associate as done in the summary.

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. Homebrew clang version 21.1.7).

@ispeters
Copy link
Author

Rebased on #1717.

This diff adds a definition for `concept stdexec::scope_association`
plus tests confirming it accepts and rejects the expected things.
@ericniebler
Copy link
Collaborator

/ok to test f786c00

@ispeters ispeters force-pushed the p3149_plus_p3815 branch 2 times, most recently from 51fab9d to cd89027 Compare December 23, 2025 02:32
This diff adds a definition for `concept stdexec::scope_token` plus
tests confirming it accepts and rejects the expected things.
@ericniebler
Copy link
Collaborator

/ok to test 97d79ee

@ispeters
Copy link
Author

I managed to get GCC 12 installed on my Mac and it repro'd the ICE and the build failure in test_stop_when.cpp; I think I've addressed the build failures in GCC, nvcc, and MSVC.

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.
This diff adds `stdexec::spawn` and its tests.
This diff adds `stdexec::simple_counting_scope` and some basic tests.
Still a work in progress, but the tests *have* found a spec bug.
@ispeters
Copy link
Author

simple_counting_scope still needs more tests, but I did discover that [exec.simple.counting.mem], paragraph 9 has a bug: we need to move the scope to the joined state and return true if count is zero, regardless of the value of state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants