diff --git a/.github/workflows/ci_tests.yml b/.github/workflows/ci_tests.yml index c86fedb9..409f66ee 100644 --- a/.github/workflows/ci_tests.yml +++ b/.github/workflows/ci_tests.yml @@ -64,7 +64,7 @@ jobs: "tests": [ {"cxxversions": ["c++26"], "tests": [ - { "stdlibs": ["libstdc++", "libc++"], + { "stdlibs": ["libc++"], "tests": [ "Debug.Default", "Release.Default", "Release.MaxSan", "Debug.Dynamic" @@ -74,7 +74,7 @@ jobs: }, { "cxxversions": ["c++23"], "tests": [ - {"stdlibs": ["libstdc++", "libc++"], "tests": ["Release.Default"]} + {"stdlibs": ["libc++"], "tests": ["Release.Default"]} ] } ] @@ -83,7 +83,7 @@ jobs: "tests": [ { "cxxversions": ["c++26", "c++23"], "tests": [ - {"stdlibs": ["libstdc++", "libc++"], "tests": ["Release.Default"]} + {"stdlibs": ["libc++"], "tests": ["Release.Default"]} ] } ] diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5baf30b5..9636e830 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,7 +24,7 @@ repos: # See also: https://github.com/ssciwr/clang-format-wheel # Config file: .clang-format - repo: https://github.com/pre-commit/mirrors-clang-format - rev: v21.1.7 + rev: v21.1.8 hooks: - id: clang-format types_or: [c++, c, json] @@ -32,7 +32,7 @@ repos: # CMake linting and formatting - repo: https://github.com/BlankSpruce/gersemi - rev: 0.23.2 + rev: 0.25.3 hooks: - id: gersemi name: CMake linting @@ -55,7 +55,7 @@ repos: # Config file: pyproject.toml # second Python code formatting - repo: https://github.com/psf/black - rev: 25.11.0 + rev: 26.1.0 hooks: - id: black diff --git a/CMakeLists.txt b/CMakeLists.txt index 409e197c..87029607 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.25...4.2) #========================== pre project settings =============================== # gersemi: off -if(CMAKE_VERSION VERSION_EQUAL 4.2) +if(CMAKE_VERSION VERSION_GREATER_EQUAL 4.2) set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "d0edc3af-4c50-42ea-a356-e2862fe7a444") if(CMAKE_CXX_STDLIB_MODULES_JSON) @@ -45,6 +45,7 @@ if(${CMAKE_CXX_STANDARD} IN_LIST CMAKE_CXX_COMPILER_IMPORT_STD) message(STATUS "CMAKE_CXX_MODULE_STD=${CMAKE_CXX_MODULE_STD}") endif() +# gersemi: off if(CMAKE_CXX_SCAN_FOR_MODULES AND ${CMAKE_GENERATOR} STREQUAL Ninja) set(BEMAN_USE_MODULES ON) message(STATUS "BEMAN_USE_MODULES=${BEMAN_USE_MODULES}") @@ -52,7 +53,6 @@ else() message(WARNING "Missing support for CMAKE_CXX_SCAN_FOR_MODULES!") endif() -# gersemi: off if(CMAKE_EXPORT_COMPILE_COMMANDS) set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}) message( @@ -62,10 +62,31 @@ if(CMAKE_EXPORT_COMPILE_COMMANDS) endif() # gersemi: on -# CMake requires the language standard to be specified as compile feature -# when a target provides C++23 modules and the target will be installed -add_library(${TARGET_NAME} STATIC) -target_compile_features(${TARGET_NAME} PUBLIC cxx_std_23) +if(BEMAN_USE_MODULES) + set(CMAKE_CXX_VISIBILITY_PRESET hidden) + set(CMAKE_VISIBILITY_INLINES_HIDDEN TRUE) + + # CMake requires the language standard to be specified as compile feature + # when a target provides C++23 modules and the target will be installed + add_library(${TARGET_NAME} STATIC) + target_compile_features(${TARGET_NAME} PUBLIC cxx_std_${CMAKE_CXX_STANDARD}) + + include(GenerateExportHeader) + + generate_export_header( + ${TARGET_NAME} + BASE_NAME beman.execution + EXPORT_FILE_NAME beman/execution/modules_export.hpp + ) + target_sources( + ${TARGET_NAME} + PUBLIC + FILE_SET HEADERS + BASE_DIRS include ${CMAKE_CURRENT_BINARY_DIR} + FILES + ${CMAKE_CURRENT_BINARY_DIR}/beman/execution/modules_export.hpp + ) +endif() if(BEMAN_USE_MODULES AND CMAKE_CXX_MODULE_STD) target_compile_definitions(${TARGET_NAME} PUBLIC BEMAN_HAS_IMPORT_STD) diff --git a/CMakePresets.json b/CMakePresets.json index b56d96e6..bea60b3d 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -61,7 +61,7 @@ "_debug-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/llvm-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "infra/cmake/llvm-libc++-toolchain.cmake" } }, { @@ -72,7 +72,7 @@ "_release-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/llvm-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "infra/cmake/llvm-libc++-toolchain.cmake" } }, { diff --git a/Makefile b/Makefile index 423c7d2d..c29c8cd5 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ EXAMPLE = beman.execution.examples.stop_token ################################################ ifeq (${hostSystemName},Darwin) - export LLVM_PREFIX:=$(shell brew --prefix llvm) + export LLVM_PREFIX:=$(shell brew --prefix llvm) export LLVM_DIR:=$(shell realpath ${LLVM_PREFIX}) export PATH:=${LLVM_DIR}/bin:${PATH} @@ -55,9 +55,9 @@ ifeq (${hostSystemName},Darwin) export GCC_PREFIX:=$(shell brew --prefix gcc) export GCC_DIR:=$(shell realpath ${GCC_PREFIX}) - export CMAKE_CXX_STDLIB_MODULES_JSON=${GCC_DIR}/lib/gcc/current/libstdc++.modules.json - # export CXX:=g++-15 - # export CXXFLAGS:=-stdlib=libstdc++ + # XXX export CMAKE_CXX_STDLIB_MODULES_JSON=${GCC_DIR}/lib/gcc/current/libstdc++.modules.json + export CXX=g++-15 + export CXXFLAGS=-stdlib=libstdc++ export GCOV="gcov" else ifeq (${hostSystemName},Linux) export LLVM_DIR=/usr/lib/llvm-20 @@ -112,14 +112,15 @@ doc: # $(MAKE) SANITIZER=$@ build: - cmake --fresh -G Ninja -S $(SOURCEDIR) -B $(BUILD) $(TOOLCHAIN) $(SYSROOT) \ + cmake -G Ninja -S $(SOURCEDIR) -B $(BUILD) $(TOOLCHAIN) $(SYSROOT) \ -D CMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -D CMAKE_SKIP_INSTALL_RULES=ON \ + -D CMAKE_SKIP_INSTALL_RULES=OFF \ -D CMAKE_CXX_STANDARD=23 \ -D CMAKE_CXX_EXTENSIONS=ON \ -D CMAKE_CXX_STANDARD_REQUIRED=ON \ -D CMAKE_CXX_SCAN_FOR_MODULES=ON \ - -D CMAKE_CXX_COMPILER=$(CXX) # XXX -D CMAKE_CXX_FLAGS="$(CXX_FLAGS) $(SAN_FLAGS)" + -D CMAKE_BUILD_TYPE=Release \ + -D CMAKE_CXX_COMPILER=$(CXX) # XXX --fresh -D CMAKE_CXX_FLAGS="$(CXX_FLAGS) $(SAN_FLAGS)" cmake --build $(BUILD) # NOTE: without install, see CMAKE_SKIP_INSTALL_RULES! CK @@ -167,6 +168,7 @@ codespell: pre-commit run $@ format: + pre-commit autoupdate pre-commit run --all cmake-format: diff --git a/bin/mk-module.py b/bin/mk-module.py index 19f8832d..e62356af 100755 --- a/bin/mk-module.py +++ b/bin/mk-module.py @@ -26,14 +26,19 @@ def clean_name(file): headers = {} beman_re = re.compile('#include ["<](?P[bB]eman/.*)\.hpp[">]') other_re = re.compile('#include ["<](?P.*)[">]') -included_re = re.compile('.*INCLUDED_BEMAN.*') -file_re = re.compile('// include/beman\S*\s*-.-C..-.-') -spdx_re = re.compile('.*SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception.*') - +included_re = re.compile(".*INCLUDED_BEMAN.*") +file_re = re.compile("// include/beman\S*\s*-.-C..-.-") +spdx_re = re.compile(".*SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception.*") def include_this_line(line): - return not beman_re.match(line) and not other_re.match(line) and not included_re.match(line) and not file_re.match(line) and not spdx_re.match(line) + return ( + not beman_re.match(line) + and not other_re.match(line) + and not included_re.match(line) + and not file_re.match(line) + and not spdx_re.match(line) + ) def get_dependencies(component): @@ -78,6 +83,8 @@ def write_header(to, header): deps = {} + + def build_header(file, to, header): todo = dependencies[header].copy() while 0 < len(todo): @@ -87,6 +94,7 @@ def build_header(file, to, header): todo.append(new) todo = todo[1:] + with open(module_file, "w") as to: to.write("// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception\n\n") to.write("module;\n\n") diff --git a/examples/modules.cpp b/examples/modules.cpp index b3c245c9..580f9d0a 100644 --- a/examples/modules.cpp +++ b/examples/modules.cpp @@ -1,6 +1,10 @@ // examples/modules.cpp -*-C++-*- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// FIXME: does not compile with g++-15 on OSX! CK +#if defined(__APPLE__) && defined(__GNUC__) +#undef BEMAN_HAS_IMPORT_STD +#endif #ifdef BEMAN_HAS_IMPORT_STD import std; #else diff --git a/include/beman/execution/detail/transform_sender.hpp b/include/beman/execution/detail/transform_sender.hpp index 5818037a..10ec17d4 100644 --- a/include/beman/execution/detail/transform_sender.hpp +++ b/include/beman/execution/detail/transform_sender.hpp @@ -100,10 +100,9 @@ BEMAN_EXECUTION_EXPORT template , ::std::remove_cvref_t(), ::std::declval()...))>> -constexpr auto transform_sender(Domain, - Sender&& sender, - const Env&...) noexcept(noexcept(::std::forward(sender))) - -> ::beman::execution::sender decltype(auto) { +constexpr auto + transform_sender(Domain, Sender&& sender, const Env&...) noexcept(noexcept(::std::forward(sender))) + -> ::beman::execution::sender decltype(auto) { return ::std::forward(sender); } diff --git a/src/beman/execution/CMakeLists.txt b/src/beman/execution/CMakeLists.txt index 0a3e3e34..e8fbe2d2 100644 --- a/src/beman/execution/CMakeLists.txt +++ b/src/beman/execution/CMakeLists.txt @@ -223,6 +223,7 @@ install( TARGETS ${TARGET_NAME} EXPORT ${TARGETS_EXPORT_NAME}1 ARCHIVE DESTINATION lib/$ + FILE_SET HEADERS FILE_SET ${TARGET_NAME}_public_headers FILE_SET ${TARGET_NAME}_detail_headers FILE_SET CXX_MODULES DESTINATION ${INSTALL_CONFIGDIR}/module diff --git a/src/beman/execution/execution.cppm b/src/beman/execution/execution.cppm index a7649de0..82899b4f 100644 --- a/src/beman/execution/execution.cppm +++ b/src/beman/execution/execution.cppm @@ -28,14 +28,6 @@ import std; export module beman.execution; - - - - - - - - // ---------------------------------------------------------------------------- #define BEMAN_EXECUTION_EXPORT @@ -94,7 +86,6 @@ namespace detail {} // ---------------------------------------------------------------------------- - // ---------------------------------------------------------------------------- #if defined(__GNUC__) @@ -124,8 +115,6 @@ namespace detail {} #undef BEMAN_EXECUTION_DIAGNOSTIC_PUSHED #endif // #ifdef BEMAN_EXECUTION_DIAGNOSTIC_PUSHED - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -135,9 +124,6 @@ concept queryable = ::std::destructible; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -184,9 +170,6 @@ export inline constexpr forwarding_query_t forwarding_query{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -198,9 +181,6 @@ concept movable_value = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -221,9 +201,6 @@ inline constexpr bool matching_sig = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -246,10 +223,6 @@ decltype(auto) as_except_ptr(Error&& error) { // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -290,11 +263,6 @@ export inline constexpr set_value_t set_value{}; // ---------------------------------------------------------------------------- - - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -337,11 +305,6 @@ export inline constexpr set_error_t set_error{}; // ---------------------------------------------------------------------------- - - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -380,11 +343,6 @@ export inline constexpr set_stopped_t set_stopped{}; // ---------------------------------------------------------------------------- - - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -426,10 +384,6 @@ export inline constexpr start_t start{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -448,9 +402,6 @@ struct beman::execution::detail::non_assignable { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -465,9 +416,6 @@ concept simple_allocator = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -492,9 +440,6 @@ class beman::execution::never_stop_token { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -510,9 +455,6 @@ concept decayed_same_as = ::std::same_as<::std::remove_cvref_t, ::std::remov // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -528,9 +470,6 @@ concept callable = requires(Fun&& fun, Args&&... args) { ::std::forward(fun // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- // std::forward_like() doesn't work on some compilers, yet. This header // provides a work-around. @@ -600,9 +539,6 @@ auto forward_like(U&& u) noexcept -> decltype(auto) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -652,10 +588,6 @@ join_env(Env1&&, Env2&&) -> join_env<::std::remove_cvref_t, ::std::remove_ // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -790,10 +722,6 @@ struct tuple_element { // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -813,9 +741,6 @@ query_with_default(Tag, const Env&, Value&& value) noexcept(noexcept(static_cast // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -830,9 +755,6 @@ using child_type = decltype(::std::declval().template get()); // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -847,9 +769,6 @@ using decayed_tuple = ::std::tuple<::std::decay_t...>; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -870,9 +789,6 @@ make_env(Query&&, Value&& value) -> make_env<::std::remove_cvref_t, ::std // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail::meta::detail { @@ -892,9 +808,6 @@ using prepend = typename ::beman::execution::detail::meta::detail::prepend::type; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -922,9 +832,6 @@ struct type_list {}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -944,9 +851,6 @@ concept stoppable_callback_for = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -961,9 +865,6 @@ using call_result_t = decltype(::std::declval()(std::declval()...)); // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail::meta { @@ -979,9 +880,6 @@ inline constexpr ::std::size_t size_v{::beman::execution::detail::meta::size: // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -996,9 +894,6 @@ on_stop_request(T&) -> on_stop_request; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1013,9 +908,6 @@ struct check_type_alias_exist; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -1028,9 +920,6 @@ export struct scheduler_t {}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1055,9 +944,6 @@ auto get_awaiter(Expr&& expr, Promise& promise) -> decltype(auto) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1134,9 +1020,6 @@ auto get_sender_meta(Sender&& sender) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1160,9 +1043,6 @@ auto suspend_complete(Fun fun, Args&&... args) noexcept { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail::meta { @@ -1172,9 +1052,6 @@ inline constexpr bool contains{(::std::same_as || ...)}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1189,9 +1066,6 @@ concept decays_to = ::std::same_as<::std::decay_t, To>; // ---------------------------------------------------------------------------- - - - namespace beman::execution::detail { template @@ -1229,9 +1103,6 @@ class intrusive_stack { } // namespace beman::execution::detail - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1259,9 +1130,6 @@ struct beman::execution::detail::virtual_immovable { // ---------------------------------------------------------------------------- - - - namespace beman::execution::detail { struct unspecified_promise { auto get_return_object() noexcept -> unspecified_promise; @@ -1273,9 +1141,6 @@ struct unspecified_promise { }; } // namespace beman::execution::detail - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1306,9 +1171,6 @@ concept await_suspend_result = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1318,9 +1180,6 @@ concept valid_specialization = requires { typename T; }; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1333,9 +1192,6 @@ struct indirect_meta_apply { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1345,9 +1201,6 @@ using indices_for = typename ::std::remove_reference_t::indices_for; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1362,9 +1215,6 @@ using decayed_typeof = ::std::decay_t; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -1377,9 +1227,6 @@ export inline constexpr nostopstate_t nostopstate{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1432,10 +1279,6 @@ struct beman::execution::env : ::beman::execution::detail::env_base... { // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -1479,11 +1322,6 @@ export inline constexpr get_allocator_t get_allocator{}; // ---------------------------------------------------------------------------- - - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -1516,10 +1354,6 @@ export inline constexpr get_domain_t get_domain{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -1541,9 +1375,6 @@ export inline constexpr get_scheduler_t get_scheduler{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -1559,9 +1390,6 @@ concept operation_state = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1590,9 +1418,6 @@ concept valid_completion_for = requires(Signature* signature) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1630,9 +1455,6 @@ concept completion_signature = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1672,9 +1494,6 @@ struct beman::execution::prop { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -1689,9 +1508,6 @@ concept stoppable_token = requires(const Token& token) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1708,9 +1524,6 @@ concept completion_tag = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1726,10 +1539,6 @@ using await_result_type = // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -1765,10 +1574,6 @@ fwd_env(Env&&) -> fwd_env; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -1778,9 +1583,6 @@ using tag_of_t = typename decltype(::beman::execution::detail::get_sender_meta(: // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail::meta::detail { @@ -1808,9 +1610,6 @@ using combine = typename ::beman::execution::detail::meta::detail::combine // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail::meta::detail { @@ -1844,9 +1643,6 @@ using unique = typename ::beman::execution::detail::meta::detail::unique::typ // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail::meta::detail { @@ -1894,9 +1690,6 @@ using filter_tag = typename ::beman::execution::detail::meta::detail::filter_tag // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail::meta::detail { @@ -1916,9 +1709,6 @@ using transform = typename ::beman::execution::detail::meta::detail::transform::type; // ---------------------------------------------------------------------------- - - - - namespace beman::execution::detail { template @@ -2022,9 +1808,6 @@ class atomic_intrusive_stack { } // namespace beman::execution::detail - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -2202,9 +1985,6 @@ inline auto beman::execution::inplace_stop_callback::call() -> void // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2214,9 +1994,6 @@ using decayed_type_list = ::beman::execution::detail::type_list<::std::decay_t && ::std::is_ // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2388,9 +2162,6 @@ inline auto beman::execution::detail::counting_scope_base::start_node(node* n) - // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2404,9 +2175,6 @@ concept is_awaiter = requires(Awaiter& awaiter, ::std::coroutine_handle // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2418,9 +2186,6 @@ concept nothrow_callable = ::beman::execution::detail::callable && // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -2664,9 +2429,6 @@ inline auto beman::execution::stop_source::request_stop() noexcept -> bool { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2696,9 +2458,6 @@ export inline constexpr get_stop_token_t get_stop_token{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -2725,9 +2484,6 @@ export inline constexpr get_env_t get_env{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -2746,9 +2502,6 @@ struct completion_signatures {}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2762,9 +2515,6 @@ concept is_awaitable = requires(Promise& promise) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2788,9 +2538,6 @@ emplace_from(Fun&&) -> emplace_from<::std::remove_cvref_t>; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2817,9 +2564,6 @@ using variant_or_empty = typename ::beman::execution::detail::variant_or_empty_h // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2834,9 +2578,6 @@ concept stoppable_source = requires(Source& source, const Source& csource) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -2853,9 +2594,6 @@ concept receiver = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2870,9 +2608,6 @@ concept valid_completion_signatures = valid_completion_signatures_helper())); // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2919,9 +2651,6 @@ auto allocator_aware_move(T&& obj, Context&& context) noexcept -> decltype(auto) // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -2931,9 +2660,6 @@ using stop_token_of_t = ::std::remove_cvref_t && // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2958,9 +2681,6 @@ concept has_as_awaitable = requires(T&& obj, Promise& promise) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -2988,10 +2708,6 @@ concept has_completions = has_completions_aux::value; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3040,9 +2756,6 @@ struct default_impls { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3065,9 +2778,6 @@ struct with_await_transform { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -3078,9 +2788,6 @@ concept receiver_of = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3152,9 +2859,6 @@ using gather_signatures = typename ::beman::execution::detail::gather_signatures // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3177,9 +2881,6 @@ struct env_promise : ::beman::execution::detail::with_await_transform { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3189,9 +2890,6 @@ struct impls_for : ::beman::execution::detail::default_impls {}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3261,9 +2959,6 @@ auto beman::execution::detail::connect_awaitable_promise::get_return_o // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -3290,10 +2985,6 @@ concept sender = ::beman::execution::detail::enable_sender<::std::remove_cvref_t // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3323,9 +3014,9 @@ struct awaiter_set_value { */ template using awaiter_completion_signatures = ::beman::execution::completion_signatures< - typename ::beman::execution::detail::awaiter_set_value< ::beman::execution::detail::await_result_type< + typename ::beman::execution::detail::awaiter_set_value<::beman::execution::detail::await_result_type< Awaiter, - ::beman::execution::detail::connect_awaitable_promise > >::type, + ::beman::execution::detail::connect_awaitable_promise>>::type, ::beman::execution::set_error_t(::std::exception_ptr), ::beman::execution::set_stopped_t()>; @@ -3338,12 +3029,13 @@ template auto connect_awaitable(Awaiter awaiter, Receiver receiver) -> ::beman::execution::detail::operation_state_task requires ::beman::execution:: - receiver_of > + receiver_of> { // NOTE: suspened_complete(...) is co_await to make sure that the // coroutine is suspended at the point when set_*(...) is called. - using result_type = ::beman::execution::detail:: - await_result_type >; + using result_type = + ::beman::execution::detail::await_result_type>; ::std::exception_ptr ep; try { @@ -3364,25 +3056,18 @@ auto connect_awaitable(Awaiter awaiter, Receiver receiver) // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { template -using state_type = ::std::decay_t< ::beman::execution::detail::call_result_t< - decltype(::beman::execution::detail::impls_for< ::beman::execution::tag_of_t >::get_state), +using state_type = ::std::decay_t<::beman::execution::detail::call_result_t< + decltype(::beman::execution::detail::impls_for<::beman::execution::tag_of_t>::get_state), Sender, - Receiver&> >; + Receiver&>>; } // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -3408,10 +3093,6 @@ export inline constexpr ::beman::execution::schedule_t schedule{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail::pipeable { @@ -3447,9 +3128,6 @@ auto operator|(Sender&& sender, Adaptor&& adaptor) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3459,9 +3137,6 @@ concept sender_for = ::beman::execution::sender && ::std::same_as<::bema // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3475,9 +3150,6 @@ concept sender_has_affine_on = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -3550,9 +3222,6 @@ export struct default_domain { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3574,9 +3243,6 @@ auto spawn_get_allocator(const Sndr& sndr, const Ev& ev) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3589,7 +3255,7 @@ template struct basic_state { basic_state(Sender&& sender, Receiver&& rcvr) noexcept(true) : receiver(::std::move(rcvr)), - state(::beman::execution::detail::impls_for< ::beman::execution::tag_of_t >::get_state( + state(::beman::execution::detail::impls_for<::beman::execution::tag_of_t>::get_state( ::std::forward(sender), this->receiver)) {} Receiver receiver; @@ -3601,9 +3267,6 @@ basic_state(Sender&&, Receiver&&) -> basic_state; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3614,7 +3277,7 @@ namespace beman::execution::detail { */ template using env_type = ::beman::execution::detail::call_result_t< - decltype(::beman::execution::detail::impls_for< ::beman::execution::tag_of_t >::get_env), + decltype(::beman::execution::detail::impls_for<::beman::execution::tag_of_t>::get_env), Index, ::beman::execution::detail::state_type&, const Receiver&>; @@ -3622,9 +3285,6 @@ using env_type = ::beman::execution::detail::call_result_t< // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3648,9 +3308,6 @@ concept almost_scheduler = ::std::derived_from, ::std::remove_cvref_t(), ::std::declval()...))>> -constexpr auto transform_sender(Domain, - Sender&& sender, - const Env&...) noexcept(noexcept(::std::forward(sender))) - -> ::beman::execution::sender decltype(auto) { +constexpr auto + transform_sender(Domain, Sender&& sender, const Env&...) noexcept(noexcept(::std::forward(sender))) + -> ::beman::execution::sender decltype(auto) { return ::std::forward(sender); } @@ -3768,9 +3424,6 @@ constexpr auto transform_sender(Domain dom, Sender&& sender, const Env&... env) // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3800,9 +3453,6 @@ sender_adaptor(T&&...) -> sender_adaptor; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3830,9 +3480,6 @@ sched_env(Scheduler&&) -> sched_env<::std::remove_cvref_t>; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -3872,9 +3519,6 @@ constexpr auto apply_sender(Domain, Tag, Sender&& sender, Args&&... args) noexce // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3886,9 +3530,6 @@ concept nested_sender_has_affine_on = requires(Sender&& sndr, const Env& env) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -3899,7 +3540,7 @@ namespace beman::execution::detail { */ template requires ::beman::execution::detail:: - valid_specialization< ::beman::execution::detail::env_type, Index, Sender, Receiver> + valid_specialization<::beman::execution::detail::env_type, Index, Sender, Receiver> struct basic_receiver { friend struct ::beman::execution::get_env_t; friend struct ::beman::execution::set_error_t; @@ -3952,10 +3593,6 @@ template // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -4020,10 +3657,6 @@ inline constexpr get_completion_scheduler_t get_completion_scheduler{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -4038,9 +3671,6 @@ concept scheduler = ::beman::execution::detail::almost_scheduler && r // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -4073,9 +3703,6 @@ sched_attrs(Scheduler&&) -> sched_attrs<::std::remove_cvref_t>; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -4124,15 +3751,12 @@ constexpr auto completion_domain(const Sender& sender) noexcept { typename completion_domain_merge::type, decltype(get(::beman::execution::set_value, sender))>::type; - return ::std::conditional_t< ::std::same_as, Default, type>(); + return ::std::conditional_t<::std::same_as, Default, type>(); } } // namespace beman::execution::detail // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -4152,9 +3776,6 @@ export inline constexpr get_delegation_scheduler_t get_delegation_scheduler{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -4200,9 +3821,6 @@ constexpr auto get_domain_late(const Sender& sender, const Env& env) noexcept { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -4219,9 +3837,6 @@ constexpr auto get_domain_early(const Sender& sender) noexcept { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -4231,10 +3846,6 @@ using schedule_result_t = decltype(::beman::execution::schedule(::std::declval && requires(Token token) { // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -4721,15 +4310,12 @@ template using completion_signatures_for = ::std::conditional_t< ::std::same_as::type>, - typename ::beman::execution::detail::completion_signatures_for_impl< ::std::remove_cvref_t, Env>::type, + typename ::beman::execution::detail::completion_signatures_for_impl<::std::remove_cvref_t, Env>::type, typename ::beman::execution::detail::completion_signatures_for_impl::type>; } // namespace beman::execution::detail // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -4745,12 +4331,8 @@ using completion_signatures_of_t = // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- - namespace beman::execution::detail { /*! * \brief A helper types whose call operator connects all children of a basic_sender @@ -4856,12 +4438,8 @@ struct connect_all_t { inline constexpr connect_all_t connect_all{}; } // namespace beman::execution::detail - // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -4870,21 +4448,18 @@ namespace beman::execution { * \headerfile beman/execution/execution.hpp */ export template , - template class Variant = ::beman::execution::detail::variant_or_empty> + typename Env = ::beman::execution::env<>, + template class Variant = ::beman::execution::detail::variant_or_empty> requires ::beman::execution::sender_in using error_types_of_t = - ::beman::execution::detail::gather_signatures< ::beman::execution::set_error_t, - ::beman::execution::completion_signatures_of_t, - ::std::type_identity_t, - Variant>; + ::beman::execution::detail::gather_signatures<::beman::execution::set_error_t, + ::beman::execution::completion_signatures_of_t, + ::std::type_identity_t, + Variant>; } // namespace beman::execution // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -4900,28 +4475,22 @@ inline constexpr bool sends_stopped{!::std::same_as< // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution { export template , - template class Tuple = ::beman::execution::detail::decayed_tuple, - template class Variant = ::beman::execution::detail::variant_or_empty> + typename Env = ::beman::execution::env<>, + template class Tuple = ::beman::execution::detail::decayed_tuple, + template class Variant = ::beman::execution::detail::variant_or_empty> requires ::beman::execution::sender_in using value_types_of_t = - ::beman::execution::detail::gather_signatures< ::beman::execution::set_value_t, - ::beman::execution::completion_signatures_of_t, - Tuple, - Variant>; + ::beman::execution::detail::gather_signatures<::beman::execution::set_value_t, + ::beman::execution::completion_signatures_of_t, + Tuple, + Variant>; } // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -4935,14 +4504,11 @@ using connect_all_result = ::beman::execution::detail::call_result_t*, Sender, - ::beman::execution::detail::indices_for >; + ::beman::execution::detail::indices_for>; } // namespace beman::execution::detail // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -5081,9 +4647,6 @@ export inline constexpr ::beman::execution::sync_wait_t sync_wait{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -5134,9 +4697,6 @@ basic_operation(Sender&&, Receiver&&) -> basic_operation; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -5181,10 +4741,6 @@ using single_sender_value_type = typename single_sender_value_type_helper && // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -5308,11 +4856,6 @@ constexpr auto make_sender(Tag tag, Data&& data, Child&&... child) { // ---------------------------------------------------------------------------- - - - - - namespace beman::execution::detail { template concept awaitable_sender = @@ -5321,10 +4864,6 @@ concept awaitable_sender = }; } // namespace beman::execution::detail - - - - namespace beman::execution::detail { template class sender_awaitable { @@ -5410,9 +4949,6 @@ class sender_awaitable { }; } // namespace beman::execution::detail - - - namespace beman::execution::detail { struct bulk_t : ::beman::execution::sender_adaptor_closure { @@ -5513,7 +5049,6 @@ struct completion_signatures_for_impl< } // namespace beman::execution::detail - namespace beman::execution { export using bulk_t = ::beman::execution::detail::bulk_t; @@ -5521,10 +5056,6 @@ export inline constexpr ::beman::execution::bulk_t bulk{}; } // namespace beman::execution - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -5598,12 +5129,8 @@ export inline constexpr into_variant_t into_variant{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- - namespace beman::execution::detail { template concept just_size = (!::std::same_as or 1u == sizeof...(T)) && @@ -5640,7 +5167,6 @@ struct impls_for> : ::beman::execution::detail::default_impls }; } // namespace beman::execution::detail - namespace beman::execution { export using just_t = ::beman::execution::detail::just_t<::beman::execution::set_value_t>; export using just_error_t = ::beman::execution::detail::just_t<::beman::execution::set_error_t>; @@ -5812,12 +5338,8 @@ export inline constexpr ::beman::execution::just_stopped_t just_stopped{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- - namespace beman::execution::detail { template struct let_t { @@ -6005,7 +5527,6 @@ struct completion_signatures_for_impl< }; } // namespace beman::execution::detail - namespace beman::execution { export using let_error_t = ::beman::execution::detail::let_t<::beman::execution::set_error_t>; export using let_stopped_t = ::beman::execution::detail::let_t<::beman::execution::set_stopped_t>; @@ -6018,9 +5539,6 @@ export inline constexpr ::beman::execution::let_value_t let_value{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -6064,10 +5582,6 @@ export inline constexpr read_env_t read_env{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -6213,10 +5727,6 @@ export inline constexpr ::beman::execution::schedule_from_t schedule_from{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -6568,12 +6078,8 @@ export using split_t = ::beman::execution::detail::split_t; export inline constexpr ::beman::execution::split_t split{}; } // namespace beman::execution - - - // ---------------------------------------------------------------------------- - namespace beman::execution::detail { template struct then_t : ::beman::execution::sender_adaptor_closure> { @@ -6683,7 +6189,6 @@ struct completion_signatures_for_impl< }; } // namespace beman::execution::detail - namespace beman::execution { /*! * \brief then_t is the type of then. @@ -6861,10 +6366,6 @@ export inline constexpr ::beman::execution::upon_stopped_t upon_stopped{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -7086,9 +6587,6 @@ export inline constexpr ::beman::execution::when_all_t when_all{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -7132,9 +6630,6 @@ export inline constexpr write_env_t write_env{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -7278,10 +6773,6 @@ export inline constexpr associate_t associate{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -7312,10 +6803,6 @@ export inline constexpr ::beman::execution::as_awaitable_t as_awaitable{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -7380,11 +6867,6 @@ struct impls_for<::beman::execution::detail::counting_scope_join_t> : ::beman::e // ---------------------------------------------------------------------------- - - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -7496,14 +6978,8 @@ export inline constexpr affine_on_t affine_on{}; // ---------------------------------------------------------------------------- - - - - - // ---------------------------------------------------------------------------- - namespace beman::execution::detail { // specialize default_domain appropriately /*! @@ -7559,7 +7035,6 @@ auto get_domain_late(Sender&& sender, Env&&) { } } // namespace beman::execution::detail - namespace beman::execution { export using continues_on_t = ::beman::execution::detail::continues_on_t; /*! @@ -7571,9 +7046,6 @@ export inline constexpr continues_on_t continues_on{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -7613,10 +7085,6 @@ export inline constexpr ::beman::execution::detail::starts_on_t starts_on{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -7647,10 +7115,6 @@ export inline constexpr ::beman::execution::when_all_with_variant_t when_all_wit // ---------------------------------------------------------------------------- - - - - namespace beman::execution { export template <::beman::execution::detail::class_type Promise> struct with_awaitable_senders { @@ -7691,9 +7155,6 @@ struct with_awaitable_senders { } // namespace beman::execution - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -7740,9 +7201,6 @@ inline auto beman::execution::counting_scope::get_token() noexcept -> beman::exe return beman::execution::counting_scope::token(this); } - - - // ---------------------------------------------------------------------------- namespace beman::execution { @@ -7785,10 +7243,6 @@ inline auto beman::execution::simple_counting_scope::get_token() noexcept // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -8019,9 +7473,6 @@ export inline constexpr spawn_future_t spawn_future{}; // ---------------------------------------------------------------------------- - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -8096,10 +7547,6 @@ export inline constexpr spawn_t spawn{}; // ---------------------------------------------------------------------------- - - - - // ---------------------------------------------------------------------------- namespace beman::execution::detail { @@ -8214,5 +7661,3 @@ export inline constexpr ::beman::execution::on_t on{}; } // namespace beman::execution // ---------------------------------------------------------------------------- - - diff --git a/tests/beman/execution/CMakeLists.txt b/tests/beman/execution/CMakeLists.txt index b949d18e..465567b7 100644 --- a/tests/beman/execution/CMakeLists.txt +++ b/tests/beman/execution/CMakeLists.txt @@ -11,11 +11,7 @@ endif() list(APPEND todo exec-associate.test) if(BEMAN_USE_MODULES) - list( - APPEND execution_tests - execution-module.test - stop-token-module.test - ) + list(APPEND execution_tests execution-module.test stop-token-module.test) endif() list(