Skip to content

drop dead trait, dead test guards, and migrate async_mpi receiver to native P2300#7244

Open
guptapratykshh wants to merge 1 commit intoTheHPXProject:masterfrom
guptapratykshh:cleanup/post-stdexec-followup
Open

drop dead trait, dead test guards, and migrate async_mpi receiver to native P2300#7244
guptapratykshh wants to merge 1 commit intoTheHPXProject:masterfrom
guptapratykshh:cleanup/post-stdexec-followup

Conversation

@guptapratykshh
Copy link
Copy Markdown
Contributor

Proposed Changes

  • Removed dead HPX_HAVE_STDEXEC test guards left over from Clean up stdexec-only paths and update affected tests #7123 — deleted test_tag_invoke_only_completion_signatures.cpp (its body was wrapped in #if !defined(HPX_HAVE_STDEXEC) so it never executed) and the 5 always-false guarded blocks in coroutine_utils.cpp that tested HPX's removed awaitable-as-sender path.
  • Deleted the dead has_completion_signatures trait from completion_signatures.hpp. It checked for the nested ::completion_signatures alias that the removed HPX fallback used, with stdexec mandatory, completion signatures come exclusively via tag_invoke(get_completion_signatures_t, ...) or stdexec's standard discovery. Also removed its one remaining live use in the completion_signatures test.
  • Migrated async_mpi's transform_mpi_receiver and transform_mpi_sender from friend tag_invoke(set_X_t/connect_t, ...) to the modern member-based form (void set_value(...) && noexcept, auto connect(R&&) &[/&&], using receiver_concept = receiver_t). This brings them in line with the shape that keep_future and async_cuda's transform_stream already use. The tag_invoke(get_completion_signatures_t, ...) was kept as that customization point has no member-function form.

Any background context you want to provide?

Checklist

Not all points below apply to all pull requests.

  • I have added a new feature and have added tests to go along with it.
  • I have fixed a bug and have added a regression test.
  • I have added a test using random numbers; I have made sure it uses a seed, and that random numbers generated are valid inputs for the tests.

Copilot AI review requested due to automatic review settings May 3, 2026 16:13
@guptapratykshh guptapratykshh requested a review from hkaiser as a code owner May 3, 2026 16:13
@codacy-production
Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@StellarBot
Copy link
Copy Markdown
Collaborator

Can one of the admins verify this patch?

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes leftover stdexec-test guards and obsolete completion signature detection code, and updates async_mpi’s transform_mpi_* sender/receiver types to use the member-based P2300 receiver/sender shape instead of tag_invoke for set_*/connect.

Changes:

  • Deleted dead stdexec-guarded tests/blocks in execution_base unit tests and removed the now-unused unit test target.
  • Removed the obsolete detail::has_completion_signatures trait and its remaining test usage.
  • Migrated async_mpi transform_mpi_receiver/transform_mpi_sender to member set_value/set_error/set_stopped and member connect (keeping tag_invoke(get_completion_signatures_t, ...)).

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
libs/core/execution_base/tests/unit/test_tag_invoke_only_completion_signatures.cpp Removed a unit test file that was effectively disabled by stdexec configuration.
libs/core/execution_base/tests/unit/coroutine_utils.cpp Removed dead stdexec-guarded assertions for the removed awaitable-as-sender path; added explanatory note.
libs/core/execution_base/tests/unit/completion_signatures.cpp Removed assertion that depended on the deleted has_completion_signatures trait.
libs/core/execution_base/tests/unit/CMakeLists.txt Removed the deleted test target from the unit test list.
libs/core/execution_base/include/hpx/execution_base/completion_signatures.hpp Deleted the obsolete detail::has_completion_signatures trait.
libs/core/async_mpi/include/hpx/async_mpi/transform_mpi.hpp Updated transform_mpi sender/receiver to member-based P2300 forms for set_* and connect.

Comment on lines +121 to 125
auto&& result =
HPX_INVOKE(f, HPX_FORWARD(Ts, ts)..., &request);
set_value_request_callback_non_void(request,
HPX_MOVE(r.r), HPX_MOVE(result),
HPX_MOVE(r), HPX_MOVE(result),
HPX_FORWARD(Ts, ts)...);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pre-existing issue in the master

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@guptapratykshh Can you please fix this while you're touching this code?

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants