-
-
Notifications
You must be signed in to change notification settings - Fork 544
Clean up stdexec-only paths and update affected tests #7123
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
Merged
hkaiser
merged 65 commits into
TheHPXProject:master
from
guptapratykshh:cleanup/stdexec-pr
May 3, 2026
Merged
Changes from 60 commits
Commits
Show all changes
65 commits
Select commit
Hold shift + click to select a range
a1b0242
Clean up stdexec-only paths and update affected tests
guptapratykshh ed2e33b
fixed the formatting
guptapratykshh 5f8cefd
fix stdexec clang-tidy and inspect build issues
guptapratykshh 73b68db
fixed fetched stdexec target setup on Windows
guptapratykshh 49c50da
fix stdexec API compatibility and modernization issues
guptapratykshh 76377c0
revert dataflow lambda signatures to use future parameters
guptapratykshh b97d5c2
fix stdexec API compatibility for __operation and __promise templates
guptapratykshh d936bdf
Restore Hwloc dependency and check_required_components macro in HPXCo…
guptapratykshh 3bd1359
Resolve bulk timeouts and formatting issues
guptapratykshh 66cd010
clang-format 20 fixes on all modified files
guptapratykshh bccf525
workaround MSVC C2732 _mm_pause linkage conflict in stdexec stop_toke…
guptapratykshh 7492415
fix C++ modules duplicate symbols, dataflow signatures, and sender_di…
guptapratykshh 0566aad
Fix missing includes for inspect checks
guptapratykshh b95a1cd
Address maintainer feedback: delete hollowed files, revert orthogonal…
guptapratykshh 15d36e9
execution: remove hollowed-out forwarding headers, modernize as_sender
guptapratykshh 768590f
reverted some files
guptapratykshh 6b06ea1
refactored hpx execution
guptapratykshh f4472b5
execution_base: include exec/completion_signatures.hpp
guptapratykshh 8d573b2
execution_base: forward stdexec::get_domain and get_domain_t
guptapratykshh e7da440
suppress unused parameter warning in any_receiver
guptapratykshh b1e27f2
import HPX.Core in HPX.Full module to prevent duplicate symbols
guptapratykshh 3c10404
pre-include <intrin.h> in module global fragment to fix MSVC C2732
guptapratykshh d209b3b
use continues_on instead of deprecated transfer in sender_diamond
guptapratykshh 94bc3b1
resolve MSVC module linkage conflicts and synchronize P2300 pipelines
guptapratykshh 7e49937
fix MSVC intrinsic linkage and Clang module purview violations
guptapratykshh b6b5e6d
Fix module build regressions
guptapratykshh 4873e85
restore clean ixx.in structure, revert compiler_fence workaround
guptapratykshh c11b152
stdexec: fix module builds and transfer_just compatibility
guptapratykshh 5fc985e
fix async_cuda completion signatures
guptapratykshh e494082
fix sender and async cuda compatibility
guptapratykshh 574b5cd
Fix shift_left and shift_right task policy paths
guptapratykshh 3027182
Fix executor deprecation warnings
guptapratykshh 336b3ab
disable broken Clang stdexec tests
guptapratykshh 728ec6e
skip timeout prone tests
guptapratykshh f753625
fix macos errors
guptapratykshh 76865f1
Clean up stdexec paths and restore sender tests
guptapratykshh e23c9f8
Fix stdexec compatibility and formatting
guptapratykshh 0f40e2a
Fix execution_base awaitable aliases
guptapratykshh fbfd7ce
Fix stdexec scheduler domain queries
guptapratykshh 687b64f
Fix stdexec future dataflow dispatch
guptapratykshh 1703aa6
Revert "Fix stdexec future dataflow dispatch"
guptapratykshh 56d8e00
Remove HPX_HAVE_STDEXEC config define
guptapratykshh 763afb4
Fix stdexec module symbol duplication
guptapratykshh 92e0e59
cleanup: remove unrelated test tweaks
guptapratykshh 5451901
Restore sender_diamond transfer usage
guptapratykshh 764e826
Whitelist CMake endwhile keyword for codespell
guptapratykshh 5b9a2d9
Use continues_on in sender_diamond
guptapratykshh 57e2fe0
Keep sender_diamond on transfer
guptapratykshh aff8789
Disable sender_diamond test on Clang
guptapratykshh 7b79039
Skip foreach_report on Clang
guptapratykshh 98b3458
revert unrelated changes and fix Clang guard
guptapratykshh d3ee92d
pass executor to hpx::dataflow in sort and partial_sort
guptapratykshh 11c9ade
exclude 1d_stencil_8 from Windows CI examples
guptapratykshh 2ce2ba3
restore inline stdexec
guptapratykshh dddf55e
remove orphaned #endif in mismatch_tests.hpp
guptapratykshh 59ce7b7
shift_right parallel path returns first+n and passes executor to data…
guptapratykshh a43f187
exclude transpose_smp_block from Windows CI due to stack overrun crash
guptapratykshh e3183de
move CI exclusions to exclude.targets and sort codespell whitelist
guptapratykshh 32683b8
remove patches fixed upstream in NVIDIA/stdexec PR#2030
guptapratykshh 8b4f6fc
remove stdexec::tags re-export (namespace removed from upstream stdexec)
guptapratykshh ff262f9
remove stdexec digit separator patching (fixed upstream in NVIDIA/std…
guptapratykshh 9743342
revert unrelated changes, restore tests, add compiler versions
guptapratykshh 98e25f3
set up Stdexec unconditionally
guptapratykshh 8da4996
restore HPX_HAVE_STDEXEC define, bump foreach_report exclusion to App…
guptapratykshh 68a1953
fix foreach_report exclusion to use VERSION_LESS to cover patch releases
guptapratykshh File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,83 +10,108 @@ if(STDEXEC_ROOT AND NOT Stdexec_ROOT) | |
| unset(STDEXEC_ROOT CACHE) | ||
| endif() | ||
|
|
||
| if(HPX_WITH_STDEXEC) | ||
| # prefer HPX_WITH_FETCH_STDEXEC by default | ||
| if(Stdexec_ROOT AND HPX_WITH_FETCH_STDEXEC) | ||
| hpx_warn( | ||
| "Both Stdexec_ROOT and HPX_WITH_FETCH_STDEXEC are provided. HPX_WITH_FETCH_STDEXEC will take precedence." | ||
| if(Stdexec_ROOT AND HPX_WITH_FETCH_STDEXEC) | ||
| hpx_warn( | ||
| "Both Stdexec_ROOT and HPX_WITH_FETCH_STDEXEC are provided. HPX_WITH_FETCH_STDEXEC will take precedence." | ||
| ) | ||
| endif() | ||
|
|
||
| function(_hpx_patch_stdexec_header header) | ||
| file(READ "${header}" _content) | ||
| set(_patched_content "${_content}") | ||
|
|
||
| # clang-scan-deps used for C++ modules currently rejects apostrophe-separated | ||
| # pp-number literals in stdexec. Remove digit separators in the fetched copy | ||
| # so dependency scanning succeeds. | ||
| set(_previous_content "") | ||
| while(NOT _patched_content STREQUAL _previous_content) | ||
| set(_previous_content "${_patched_content}") | ||
| string(REGEX REPLACE "([0-9])'([0-9])" "\\1\\2" _patched_content | ||
| "${_patched_content}" | ||
| ) | ||
| endwhile() | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be changed in the upstream version Please create a PR for them.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed upstream in NVIDIA/stdexec PR #2035. |
||
|
|
||
| if(NOT _content STREQUAL _patched_content) | ||
| file(WRITE "${header}" "${_patched_content}") | ||
| endif() | ||
| endfunction() | ||
|
guptapratykshh marked this conversation as resolved.
Outdated
|
||
|
|
||
| function(_hpx_patch_stdexec_headers include_dir) | ||
| if(HPX_WITH_CXX_MODULES AND (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" | ||
| OR CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") | ||
| ) | ||
| hpx_info("Patching stdexec headers for C++ modules dependency scanning") | ||
| file(GLOB_RECURSE stdexec_headers "${include_dir}/*.hpp") | ||
| foreach(stdexec_header IN LISTS stdexec_headers) | ||
| _hpx_patch_stdexec_header("${stdexec_header}") | ||
| endforeach() | ||
| endif() | ||
| endfunction() | ||
|
|
||
| if(HPX_WITH_FETCH_STDEXEC) | ||
| hpx_info( | ||
| "HPX_WITH_FETCH_STDEXEC=${HPX_WITH_FETCH_STDEXEC}, Stdexec will be fetched using CMake's FetchContent and installed alongside HPX (HPX_WITH_STDEXEC_TAG=${HPX_WITH_STDEXEC_TAG})" | ||
| ) | ||
|
|
||
| include(FetchContent) | ||
|
guptapratykshh marked this conversation as resolved.
|
||
| fetchcontent_declare( | ||
| Stdexec | ||
| GIT_REPOSITORY https://github.com/NVIDIA/stdexec.git | ||
| GIT_TAG ${HPX_WITH_STDEXEC_TAG} | ||
| ) | ||
|
|
||
| fetchcontent_getproperties(Stdexec) | ||
| if(NOT Stdexec_POPULATED) | ||
| fetchcontent_populate(Stdexec) | ||
| endif() | ||
| set(Stdexec_ROOT ${stdexec_SOURCE_DIR}) | ||
| _hpx_patch_stdexec_headers("${stdexec_SOURCE_DIR}/include") | ||
|
|
||
| add_library(Stdexec INTERFACE) | ||
| target_include_directories( | ||
| Stdexec SYSTEM INTERFACE $<BUILD_INTERFACE:${stdexec_SOURCE_DIR}/include> | ||
| $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> | ||
| ) | ||
|
|
||
| install( | ||
| TARGETS Stdexec | ||
| EXPORT HPXStdexecTarget | ||
| COMPONENT core | ||
| ) | ||
|
|
||
| install( | ||
| DIRECTORY ${Stdexec_ROOT}/include/ | ||
| DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} | ||
| COMPONENT core | ||
| FILES_MATCHING | ||
| PATTERN "*.hpp" | ||
| ) | ||
|
|
||
| export( | ||
| TARGETS Stdexec | ||
| NAMESPACE Stdexec:: | ||
| FILE "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${HPX_PACKAGE_NAME}/HPXStdexecTarget.cmake" | ||
| ) | ||
|
|
||
| install( | ||
| EXPORT HPXStdexecTarget | ||
| NAMESPACE Stdexec:: | ||
| FILE HPXStdexecTarget.cmake | ||
| DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${HPX_PACKAGE_NAME} | ||
| COMPONENT cmake | ||
| ) | ||
|
|
||
| hpx_add_config_define(HPX_HAVE_STDEXEC) | ||
| # TODO: Enforce a single spelling | ||
| add_library(Stdexec::Stdexec ALIAS Stdexec) | ||
| add_library(STDEXEC::stdexec ALIAS Stdexec) | ||
| else() | ||
| find_package(Stdexec) | ||
|
|
||
| if(HPX_WITH_FETCH_STDEXEC) | ||
| hpx_info( | ||
| "HPX_WITH_FETCH_STDEXEC=${HPX_WITH_FETCH_STDEXEC}, Stdexec will be fetched using CMake's FetchContent and installed alongside HPX (HPX_WITH_STDEXEC_TAG=${HPX_WITH_STDEXEC_TAG})" | ||
| if(NOT Stdexec_FOUND) | ||
| hpx_error( | ||
| "Stdexec could not be found, please specify Stdexec_ROOT to point to the correct location or enable HPX_WITH_FETCH_STDEXEC" | ||
| ) | ||
| if(UNIX) | ||
| include(FetchContent) | ||
| fetchcontent_declare( | ||
| Stdexec | ||
| GIT_REPOSITORY https://github.com/NVIDIA/stdexec.git | ||
| GIT_TAG ${HPX_WITH_STDEXEC_TAG} | ||
| ) | ||
|
|
||
| fetchcontent_getproperties(Stdexec) | ||
| if(NOT Stdexec_POPULATED) | ||
| fetchcontent_populate(Stdexec) | ||
| endif() | ||
| set(Stdexec_ROOT ${stdexec_SOURCE_DIR}) | ||
|
|
||
| add_library(Stdexec INTERFACE) | ||
| target_include_directories( | ||
| Stdexec INTERFACE $<BUILD_INTERFACE:${stdexec_SOURCE_DIR}/include> | ||
| $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> | ||
| ) | ||
|
|
||
| install( | ||
| TARGETS Stdexec | ||
| EXPORT HPXStdexecTarget | ||
| COMPONENT core | ||
| ) | ||
|
|
||
| install( | ||
| DIRECTORY ${Stdexec_ROOT}/include/ | ||
| DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} | ||
| COMPONENT core | ||
| FILES_MATCHING | ||
| PATTERN "*.hpp" | ||
| ) | ||
|
|
||
| export( | ||
| TARGETS Stdexec | ||
| NAMESPACE Stdexec:: | ||
| FILE "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${HPX_PACKAGE_NAME}/HPXStdexecTarget.cmake" | ||
| ) | ||
|
|
||
| install( | ||
| EXPORT HPXStdexecTarget | ||
| NAMESPACE Stdexec:: | ||
| FILE HPXStdexecTarget.cmake | ||
| DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${HPX_PACKAGE_NAME} | ||
| COMPONENT cmake | ||
| ) | ||
|
|
||
| # TODO: Enforce a single spelling | ||
| add_library(Stdexec::Stdexec ALIAS Stdexec) | ||
| add_library(STDEXEC::stdexec ALIAS Stdexec) | ||
|
|
||
| endif() | ||
|
|
||
| else() | ||
| find_package(Stdexec) | ||
|
|
||
| if(Stdexec_FOUND) | ||
| hpx_add_config_define(HPX_HAVE_STDEXEC) | ||
| else() | ||
| hpx_error( | ||
| "Stdexec could not be found, please specify Stdexec_ROOT to point to the correct location or enable HPX_WITH_FETCH_STDEXEC" | ||
| ) | ||
| endif() | ||
| elseif(Stdexec_INCLUDE_DIR) | ||
| _hpx_patch_stdexec_headers("${Stdexec_INCLUDE_DIR}") | ||
|
guptapratykshh marked this conversation as resolved.
Outdated
|
||
| endif() | ||
| endif() | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.