Skip to content

Execution: Migrate transform_completion_signatures to avoid deprecation warnings (#7251)#7252

Open
arpittkhandelwal wants to merge 2 commits intoTheHPXProject:masterfrom
arpittkhandelwal:fix/stdexec-transform-completion-signatures-7251
Open

Execution: Migrate transform_completion_signatures to avoid deprecation warnings (#7251)#7252
arpittkhandelwal wants to merge 2 commits intoTheHPXProject:masterfrom
arpittkhandelwal:fix/stdexec-transform-completion-signatures-7251

Conversation

@arpittkhandelwal
Copy link
Copy Markdown
Contributor

Fixes #7251

Description

Upstream stdexec recently deprecated the stdexec::transform_completion_signatures and stdexec::transform_completion_signatures_of template type aliases in favor of the new exec::transform_completion_signatures consteval function API.

This was causing heavy deprecation warnings to surface, particularly when compiling with MSVC and HPX_WITH_CXX_MODULES=ON, where warnings leak across module boundaries more aggressively.

To retain existing semantics in HPX while completely suppressing these deprecation warnings across all compilers, this patch updates the HPX re-exports in stdexec_forward.hpp to wrap the private but stable, non-deprecated internal __transform_completion_signatures_t helpers instead. This is a 100% backwards-compatible, non-invasive fix that avoids the need to immediately refactor all HPX sender architectures to use the new consteval functions.

Additionally, this patch cleans up and removes the now-obsolete #pragma clang diagnostic warning suppression blocks from various sender implementations (bulk.hpp, when_all_vector.hpp, and thread_pool_scheduler_bulk.hpp).

How to test

Compile the project on MSVC with HPX_WITH_CXX_MODULES=ON and verify that the stdexec::transform_completion_signatures deprecation warnings are no longer present. The standard senders_receivers test suite will ensure no functionality has changed.

…on warnings

Upstream stdexec deprecated the `stdexec::transform_completion_signatures`
and `stdexec::transform_completion_signatures_of` type aliases in favor of
the new `exec::transform_completion_signatures` consteval function API.
To retain existing semantics in HPX while suppressing deprecation warnings
(especially on MSVC with modules), this patch updates the HPX re-exports
in `stdexec_forward.hpp` to wrap the private but stable non-deprecated
internal `__transform_completion_signatures_t` helpers instead.

This also removes now-obsolete `#pragma clang diagnostic` warning
suppression blocks from various sender implementations.
Copilot AI review requested due to automatic review settings May 6, 2026 02:05
@arpittkhandelwal arpittkhandelwal requested a review from hkaiser as a code owner May 6, 2026 02:05
@codacy-production
Copy link
Copy Markdown

codacy-production Bot commented May 6, 2026

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.

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

This PR updates HPX’s stdexec forwarding layer to eliminate deprecation warnings caused by upstream deprecating the stdexec::transform_completion_signatures* type-alias APIs, particularly impacting MSVC + C++20 modules builds. It preserves the existing HPX type-alias-based call sites by re-exporting equivalent functionality via non-deprecated internal stdexec helpers and removes now-unnecessary Clang warning-suppression pragmas from affected senders.

Changes:

  • Re-exports transform_completion_signatures and transform_completion_signatures_of as alias templates backed by stdexec::__transform_completion_signatures*_t internal helpers.
  • Removes obsolete #pragma clang diagnostic suppression blocks from sender completion-signature customizations.

Reviewed changes

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

File Description
libs/core/execution_base/include/hpx/execution_base/stdexec_forward.hpp Replaces deprecated stdexec type-alias re-exports with non-deprecated internal helper-backed alias templates.
libs/core/execution/include/hpx/execution/algorithms/bulk.hpp Removes Clang deprecation-warning suppression around completion signature computation.
libs/core/execution/include/hpx/execution/algorithms/when_all_vector.hpp Removes Clang deprecation-warning suppression around completion signature computation.
libs/core/executors/include/hpx/executors/thread_pool_scheduler_bulk.hpp Removes Clang deprecation-warning suppression around completion signature computation.

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.

stdexec warning about transform_completion_signatures

3 participants