From 9cd5cfc73da9616a292a6a60294896d70056e982 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 21:50:20 +0100 Subject: [PATCH 1/7] 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 0e917a5c2bea9b4eb09ae7f9c3a1da70ac2ed19f Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 22:01:12 +0100 Subject: [PATCH 2/7] 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 30ccaf8e9ae562316a324b6ea61eb55335d6f7ad Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 22:07:46 +0100 Subject: [PATCH 3/7] 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 adda2ab608f459a02bebb10b2855394e47319516 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 22:49:59 +0100 Subject: [PATCH 4/7] CI: run 1/3 From e4b1fe3ed09279e4330cd550d2ee78fe66e38054 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 22:49:59 +0100 Subject: [PATCH 5/7] CI: run 2/3 From ba346aa422c6190fdb43d75c876d5cdfae85ffc7 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 22:49:59 +0100 Subject: [PATCH 6/7] CI: run 3/3 From 1f268d81a7e18061f978c23a4a03899e4a318151 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 18 Mar 2026 23:40:02 +0100 Subject: [PATCH 7/7] Simplify fix --- .github/workflows/emulated.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/emulated.yml b/.github/workflows/emulated.yml index 86fb9dfdc..dc0fcc45b 100644 --- a/.github/workflows/emulated.yml +++ b/.github/workflows/emulated.yml @@ -27,13 +27,9 @@ 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: | + EMULATED_FLAGS='-DXSIMD_DEFAULT_ARCH=emulated<${{ matrix.sys.size }}> -DXSIMD_WITH_EMULATED=1' cmake -B_build \ -DBUILD_TESTS=ON \ -DBUILD_BENCHMARK=ON \ @@ -41,8 +37,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_COMPILER=${{ matrix.sys.compiler }} \ -DXSIMD_ENABLE_WERROR=ON \ - -DCMAKE_PROJECT_INCLUDE=/tmp/emulated.cmake \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_CXX_FLAGS="$EMULATED_FLAGS $CXXFLAGS" \ -GNinja - name: Build run: ninja -C _build