Skip to content

Feature/test with linux clang 23 - #304

Merged
dietmarkuehl merged 25 commits into
mainfrom
feature/test-with-linux-clang-23
Jul 29, 2026
Merged

Feature/test with linux clang 23#304
dietmarkuehl merged 25 commits into
mainfrom
feature/test-with-linux-clang-23

Conversation

@dietmarkuehl

Copy link
Copy Markdown
Member

No description provided.

ClausKlein and others added 25 commits July 17, 2026 23:50
This seems to force linker errors with import std;
(and documenting the workaround) until LLVM fixes the underlying problem.
(for Clang only needed)

Prevent Clang -Werror or fixed them too
* Fix typo in GNUmakefile

* Fix ThreadSanitizer Error: data race

* update requirements.txt

* Disable BEMAN_BUILDSYS_SANITIZER in preset

This seems to force linker errors with import std;

* Bump workflows to 1.7.4

* Clang++ and CXX_MODULES can not work with libstdc++
Copilot AI review requested due to automatic review settings July 29, 2026 17:33
@dietmarkuehl
dietmarkuehl requested a review from camio as a code owner July 29, 2026 17:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Updates build tooling and CI configuration to validate this project with newer Linux Clang (v23) and expanded module/import std experimentation, while cleaning up warnings in tests/examples and adjusting infra/toolchain integration.

Changes:

  • Expand CI matrix and workflow versions to test newer compiler/toolchain combinations (including module-enabled presets).
  • Adjust CMake toolchain/modules support for import std; and libc++ (including experimental CMake UUID handling).
  • Silence newly-triggered warnings in tests/examples and add developer build conveniences (GNUmakefile, ignore .init).

Reviewed changes

Copilot reviewed 22 out of 24 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/beman/execution/non_assignable.test.cpp Silence unused-variable warnings via [[maybe_unused]] to keep tests warning-clean.
tests/beman/execution/exec-dependent-sender.test.cpp Silence unused lambda parameter warnings in compile-time assertions.
tests/beman/execution/exec-continues-on.test.cpp Mark unused local variable to avoid warnings.
tests/beman/execution/exec-affine.test.cpp Warning suppression tweaks and a TODO related to Clang warnings.
tests/beman/execution/CMakeLists.txt Disable TSan for a specific Clang test target.
requirements.txt Update tooling versions and adjust installation hint; tweak internal tooling entries.
Makefile Bump local toolchain hints/paths to newer LLVM/GCC versions.
infra/cmake/llvm-libc++-toolchain.cmake Adjust libc++ toolchain flags (including fortify defines).
infra/cmake/enable-experimental-import-std.cmake Add experimental import std UUID for newer CMake versions.
infra/.beman_submodule Bump infra submodule commit hash.
include/beman/execution/detail/task_scheduler.hpp Add virtual destructor to polymorphic base.
include/beman/execution/detail/counting_scope_join.hpp Add TODO comment near sender creation.
GNUmakefile Add new GNU Make-based developer workflow wrapper around CMake presets/ninja.
examples/stopping.cpp Add mutex + guarded output to reduce interleaved output/data-race issues.
CMakePresets.json Adjust sanitizer and module preset defaults.
CMakeLists.txt Simplify module build configuration by removing some shared/DLL quickfix logic.
cmake/README.md Remove CMake helper documentation file.
cmake/prelude.cmake Adjust experimental import std gating and libc++/modules-json probing logic.
cmake/cxx-modules-rules.cmake Change extensions default and add warning-suppression flags for Clang modules builds.
.gitignore Ignore .init marker file created by GNUmakefile workflow.
.github/workflows/pre-commit-update.yml Bump reusable workflow version.
.github/workflows/pre-commit-check.yml Bump reusable workflow version and add explicit permissions.
.github/workflows/ci_tests.yml Bump reusable workflow versions, adjust schedule/concurrency, expand test matrices.
.beman-tidy.yaml Ignore .cache/ in tidy configuration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +68 to 73
add_compile_options(
$ENV{CXXFLAGS}
-Wno-missing-braces
-Wno-unneeded-internal-declaration
)
add_link_options($ENV{CXXFLAGS})
Comment thread GNUmakefile
Comment on lines +34 to +37
compile_commands.json: $(_build_path)/compile_commands.json
if [ "X$(shell readlink compile_commands.json)" != "X$(_build_path)/compile_commands.json" ] ; then \
ln -fs $< $@; \
fi
Comment thread cmake/prelude.cmake
Comment on lines 90 to +94
elseif(LINUX)
set(ENV{CXXFLAGS}
"-stdlib=libc++ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
)
message(STATUS "CXXFLAGS=$ENV{CXXFLAGS}")
Comment on lines 18 to +22
if(NOT CMAKE_CXX_FLAGS MATCHES "-stdlib=libc\\+\\+")
string(APPEND CMAKE_CXX_FLAGS " -stdlib=libc++")
string(
APPEND CMAKE_CXX_FLAGS
" -stdlib=libc++ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
)
@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 93.518%. remained the same — feature/test-with-linux-clang-23 into main

@dietmarkuehl
dietmarkuehl merged commit 6536492 into main Jul 29, 2026
43 checks passed
@dietmarkuehl
dietmarkuehl deleted the feature/test-with-linux-clang-23 branch July 29, 2026 18:21
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.

4 participants