From b18e3f4a4e6058f74a80db842268349d2dc5b90f Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 21:50:20 +0100 Subject: [PATCH 1/4] Try fix emulated CI --- .github/workflows/emulated.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/emulated.yml b/.github/workflows/emulated.yml index e2f4b9b9f..119ecf2b5 100644 --- a/.github/workflows/emulated.yml +++ b/.github/workflows/emulated.yml @@ -27,6 +27,8 @@ jobs: if: ${{ matrix.sys.compiler == 'g++' }} run: | echo "CXXFLAGS=-Wno-noexcept-type -Wno-stringop-overflow -Wno-maybe-uninitialized" >> $GITHUB_ENV + - name: Set emulated arch + run: echo "XSIMD_ARCH=emulated<${{ matrix.sys.size }}>" >> $GITHUB_ENV - name: Configure build run: | cmake -B_build \ @@ -36,7 +38,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_COMPILER=${{ matrix.sys.compiler }} \ -DXSIMD_ENABLE_WERROR=ON \ - -DCMAKE_CXX_FLAGS="-DXSIMD_DEFAULT_ARCH=emulated\<${{ matrix.sys.size }}\> -DXSIMD_WITH_EMULATED=1 $CXXFLAGS" \ + -DCMAKE_CXX_FLAGS="-DXSIMD_DEFAULT_ARCH=$XSIMD_ARCH -DXSIMD_WITH_EMULATED=1 $CXXFLAGS" \ -GNinja - name: Build run: ninja -C _build From ca05c226a50cb17d2733026f8efdab9e700f0aee Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 22:01:12 +0100 Subject: [PATCH 2/4] Fix emulated arch CI: avoid shell redirection of angle brackets Pass the emulated register size as a plain integer CMake variable (XSIMD_EMULATED_SIZE) instead of constructing emulated in the shell. CMakeLists.txt assembles the define via add_compile_definitions, which handles escaping for the compiler invocation. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/emulated.yml | 5 ++--- CMakeLists.txt | 6 ++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/emulated.yml b/.github/workflows/emulated.yml index 119ecf2b5..2516bea53 100644 --- a/.github/workflows/emulated.yml +++ b/.github/workflows/emulated.yml @@ -27,8 +27,6 @@ jobs: if: ${{ matrix.sys.compiler == 'g++' }} run: | echo "CXXFLAGS=-Wno-noexcept-type -Wno-stringop-overflow -Wno-maybe-uninitialized" >> $GITHUB_ENV - - name: Set emulated arch - run: echo "XSIMD_ARCH=emulated<${{ matrix.sys.size }}>" >> $GITHUB_ENV - name: Configure build run: | cmake -B_build \ @@ -38,7 +36,8 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_COMPILER=${{ matrix.sys.compiler }} \ -DXSIMD_ENABLE_WERROR=ON \ - -DCMAKE_CXX_FLAGS="-DXSIMD_DEFAULT_ARCH=$XSIMD_ARCH -DXSIMD_WITH_EMULATED=1 $CXXFLAGS" \ + -DXSIMD_EMULATED_SIZE=${{ matrix.sys.size }} \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -GNinja - name: Build run: ninja -C _build diff --git a/CMakeLists.txt b/CMakeLists.txt index f817b6b51..f08e536d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,6 +93,12 @@ target_include_directories(xsimd INTERFACE OPTION(ENABLE_XTL_COMPLEX "enables support for xcomplex defined in xtl" OFF) OPTION(BUILD_TESTS "xsimd test suite" OFF) +set(XSIMD_EMULATED_SIZE "" CACHE STRING "If set, compile with emulated as the default arch (N = register size in bits)") +if(XSIMD_EMULATED_SIZE) + add_compile_definitions("XSIMD_DEFAULT_ARCH=emulated<${XSIMD_EMULATED_SIZE}>") + add_compile_definitions(XSIMD_WITH_EMULATED=1) +endif() + if(ENABLE_XTL_COMPLEX) find_package(xtl 0.8.0 REQUIRED) target_compile_features(xsimd INTERFACE cxx_std_14) From babdf4bf2f76f02ee7e266d5613431e8efe952c0 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 22:07:46 +0100 Subject: [PATCH 3/4] Fix emulated arch CI: use CMAKE_PROJECT_INCLUDE to pass arch define Use a temporary .cmake file with add_compile_definitions to pass XSIMD_DEFAULT_ARCH=emulated without shell angle-bracket redirection. Revert CMakeLists.txt to its original state (no XSIMD_EMULATED_SIZE option). Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/emulated.yml | 7 ++++++- CMakeLists.txt | 6 ------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/emulated.yml b/.github/workflows/emulated.yml index 2516bea53..86fb9dfdc 100644 --- a/.github/workflows/emulated.yml +++ b/.github/workflows/emulated.yml @@ -27,6 +27,11 @@ jobs: if: ${{ matrix.sys.compiler == 'g++' }} run: | echo "CXXFLAGS=-Wno-noexcept-type -Wno-stringop-overflow -Wno-maybe-uninitialized" >> $GITHUB_ENV + - name: Set emulated arch + run: | + SIZE="${{ matrix.sys.size }}" + echo "add_compile_definitions(\"XSIMD_DEFAULT_ARCH=emulated<${SIZE}>\")" > /tmp/emulated.cmake + echo "add_compile_definitions(XSIMD_WITH_EMULATED=1)" >> /tmp/emulated.cmake - name: Configure build run: | cmake -B_build \ @@ -36,7 +41,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_COMPILER=${{ matrix.sys.compiler }} \ -DXSIMD_ENABLE_WERROR=ON \ - -DXSIMD_EMULATED_SIZE=${{ matrix.sys.size }} \ + -DCMAKE_PROJECT_INCLUDE=/tmp/emulated.cmake \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -GNinja - name: Build diff --git a/CMakeLists.txt b/CMakeLists.txt index f08e536d8..f817b6b51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,12 +93,6 @@ target_include_directories(xsimd INTERFACE OPTION(ENABLE_XTL_COMPLEX "enables support for xcomplex defined in xtl" OFF) OPTION(BUILD_TESTS "xsimd test suite" OFF) -set(XSIMD_EMULATED_SIZE "" CACHE STRING "If set, compile with emulated as the default arch (N = register size in bits)") -if(XSIMD_EMULATED_SIZE) - add_compile_definitions("XSIMD_DEFAULT_ARCH=emulated<${XSIMD_EMULATED_SIZE}>") - add_compile_definitions(XSIMD_WITH_EMULATED=1) -endif() - if(ENABLE_XTL_COMPLEX) find_package(xtl 0.8.0 REQUIRED) target_compile_features(xsimd INTERFACE cxx_std_14) From c3594888b195072004903bea7c50c39133f181be Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Mon, 23 Mar 2026 12:14:26 +0100 Subject: [PATCH 4/4] Run CI 1