Skip to content

continue PR #202#282

Merged
Cra3z merged 73 commits into
bemanproject:issue-200from
Cra3z:issue-200
Jun 18, 2026
Merged

continue PR #202#282
Cra3z merged 73 commits into
bemanproject:issue-200from
Cra3z:issue-200

Conversation

@Cra3z

@Cra3z Cra3z commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

continue PR #202

dietmarkuehl and others added 30 commits January 31, 2026 23:13
* normalized headers and started to create a script to create a module file

* added macroized export declaration

* changed the tests to prefer module use

* actually use the module definitions

Co-authored-by: Claus Klein <claus.klein@arcormail.de>
- Update infra-workflows from 1.2.1 to 1.3.0, which makes us use the
  packaged beman-submodule and updated CMake/Ninja in MSVC builds
- Update the vendored copy of infra to the latest commit
- Update the pre-commit workflows
* Implement P3815 - scope_association

* Try to fix CI errors

* Remove unnecessary counting scope dtor tests and add a workaround for GCC ICE

* Module support
* Refactory install module

Add support to install multiple targets

Add support named FILE_SET

Add support for dependencies

Only BEMAN_USE_MODULES AND BEMAN_USE_STD_MODULE should control
if modules are used, even if the toolchain supports it!

Add cmake/README.md file

Reduce usage of CMAKE_EXPERIMENTAL_CXX_IMPORT_STD

Use clang++ -print-file-name=c++/libc++.modules.json only on OSX

Fix: Not all CI workflow use newest cmake version

Fix: find-package-test is only useful for Release build

Fix clang-tidy warnings readability-use-concise-preprocessor-directives

* Update inline cmake module docu and README

* Add support to install multible FILE_SET HEADERS

* Apply beman-submodule update

* Revert my CI changes

* Install semantic versioned target names
Co-authored-by: dietmarkuehl <1319703+dietmarkuehl@users.noreply.github.com>
* change all tests to use modules via a module exposition details

* fixed the module use for the examples

* restructured everything [optionally] use modules per component

* saving intermediate state

* storing another progression

* added a lot of missing dependencies

* some fixes for gcc

* moving the definition of completion signature definition

* saving some work on moving the completion signatures implementation

* moved the completion signature calculation into the tag types

* restructured the sender implementation to work with modules on all three compilers

* fixed the remaining components to deal with modules

* addressed some issues discovered by CI

* fixed more issues discovered by CI

* address review comments, fixing a few issues

* clang format

* bring the implementation up to date with recent changes

* fixed formatting issues found by CI
* Add component install filter

* Set BEMAN_USE_STD_MODULE=true and test shared libs too

* Disable BEMAN_USE_STD_MODULE for llvm

Quickfix for win32 dll linker error: set WINDOWS_EXPORT_ALL_SYMBOLS=true

* Quickfix: build only a STATIC lib for now again
* execution: complete sender_adaptor_closure conformance and adaptor migration

- Refactor sender-adaptor closure infrastructure around sender_adaptor_closure, adaptor_closure, and composed closure piping.
- Migrate adaptor implementations (then, bulk, let, continues_on, associate, on, affine_on) to the closure-based path.
- Enforce [exec.adapt.obj] constraints and behavior: pipe equivalence, composition semantics, construction well-formedness, and noexcept propagation.
- Expand sender_adaptor_closure tests for uniqueness detection, composition associativity, composed call pattern, partial application well-formedness, and pipe parity.
- Deprecate direct detail::sender_adaptor alias in favor of make_sender_adaptor(...) factories and document the direct-use layout break (Adaptor moved into adaptor_closure_binding with [[no_unique_address]] for EBO, pending product_type support).
- Apply quality cleanup in sender_adaptor_closure module/header exports and comments.
- Add docs in headers.

* remove duplicate import and legacy sender_adaptor.hpp includes on affine_on.hpp

* rename is_sender_adaptor_closure_base to get_sender_adaptor_closure_base

* isolate operator| in detail::pipeable for ADL hygiene

Move the pipe operator overloads from beman::execution into
detail::pipeable so they are found only via ADL through the
closure_t base class. This prevents the operators from
participating in overload resolution for unrelated types in
beman::execution.

- Reintroduce beman::execution::detail::pipeable namespace.
- Add closure_t tag type as ADL anchor for sender_adaptor_closure
- Remove export using of operator| from execution.cppm
- Document detail::pipeable namespace in common.hpp

* explicit use sender_adapter_closure on execution-syn.test

* reexport operator| in execution.cppm to fix compilation issues with gcc/llvm presets
* Prepare use of cmake v4.3

* Fix typos

* Quickfix: PROJECT_NAME as prefix for cmake variable names
Co-authored-by: dietmarkuehl <1319703+dietmarkuehl@users.noreply.github.com>
* draft of using the thread ID for the stack overflow management

* use thread::id for stackoverflow management
* Fix Clang C++20 modules AST serialization bug with lambdas

Clang fails to deserialize the unevaluated generic lambda used in the
`has_completions` concept when building as a C++20 module. Extracted the
lambda into a namespace-scope `constexpr` variable template to bypass
the AST serialization crash.

Extracting it to a constexpr variable caused another set of bugs
with MSVC. therefore, lambda completely replaced with SFINAE style
'struct has_completions_impl'

* Relax template template parameter matching for Clang 22

Clang 22 rejects passing the constrained template `wrap` to an
unconstrained template template parameter (related to LLVM #182671).
Relaxed `wrap` and `bad` to use `template <typename S>` in
`exec-scope-concepts.test.cpp` to resolve the constraint violation.
* Implement `get_await_completion_adaptor`

* Fix CI error

* Add a workaround about `has_completions` for clang 22

---------

Co-authored-by: Dietmar Kühl <dietmar.kuehl@me.com>
Co-authored-by: dietmarkuehl <1319703+dietmarkuehl@users.noreply.github.com>
)

* Implement `stopped_as_error` and `stopped_as_optional`
This is a problem for our codespell configuration. We should figure
out how to fix this in the general case.
- Promote Clang 22 to primary CI version (full test suite)
- Demote Clang 21 to secondary tier alongside 20 and 19 (Release.Default only)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Delete not longer needed etc subdirectory

beman-submodule update ...

* Quickfix: disable import std; for llmv Release build
neatudarius and others added 26 commits April 25, 2026 15:13
…-status

Fix readme status section to match beman standards.
Fix for readme.badges to match beman standard requirement
…emanproject#265)

* added tests for completions being called and fixed an issue with let

* action AI review feedback

* added a missing header
* fix a problem with starts_on noexcept specification

* more missing/wrong noexcept specifications

* fix some minor issues detected by CI/AI

* clang format
* Implement P4154

* Format code
* sub_visit.hpp added

* fix new line
* sub_visit.hpp added

* fix new line

* added poly.hpp from beamn.task

* added with_error.hpp from beman.task

* added allocator_of.hpp from beman.task

* added find_allocator.hpp from beman.task

* added completion.hpp from beman.task

* added error_types_of.hpp

* added stop_source_of.hpp

* update CMakeLists

* added handle.hpp

* updated CMakeLists

* added state_rep.hpp

* added promise_env.hpp

* added logger.hpp

* add end of line

* newline added
* started to implement the changes for P3826

* some progress on get_completion_domain

* Refactor transform_sender and sender-algorithms

* Fix some errors

* Remove `get_domain_early` and `get_domain_late`

* Refactor sender-algorithms

* Fix affine_on

* Add missing `set_value` import in multiple headers

* Rename `completion_domain` to `compl_domain`

* Update tests

* Add missing modules

* Fix continues_on

* GCC/MSVC module bug workaround

* Try fix GCC CI error

* Format code

* Refactor `transform_sender`

* Fix transform_sender

---------

Co-authored-by: Dietmar Kühl <dietmar.kuehl@me.com>
* Disable apple clang presets

* Prevent LLVM release build errors on LINUX

* Disable beman-tidy for now
* Implement `P3941 - Scheduler Affinity` and `P4151 - Rename affine_on`

* Format code

* Improve readability

* Refactor includes and update comments for clarity in affine.hpp
Co-authored-by: dietmarkuehl <1319703+dietmarkuehl@users.noreply.github.com>
* Fix get-attrs in continues_on, starts_on and when_all

* Format code

* Format code

* Add missing `get_completion_signatures` of `starts_on`

* Refactor continues_on sender attrs

* Refactor get_completion_scheduler

* Fix `associate` get_completion_signatures
…nues_on` sender (bemanproject#280)

* Unnecessary `set_error(exception_ptr)` for the receiver of the `continues_on` sender

* Remove unnecessary std::tuple_size/std::tuple_element workaround for MSVC 19.51

* Fix typo

* Fix use-after-free in when_all-cancel.cpp

* Fix CI error
# Conflicts:
#	include/beman/execution/detail/stop_callback_for_t.hpp
#	include/beman/execution/detail/stoppable_token.hpp
#	tests/beman/execution/CMakeLists.txt
@Cra3z Cra3z merged commit 5a69841 into bemanproject:issue-200 Jun 18, 2026
37 checks passed
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.

8 participants