Bug#1135592: xsimd: 14.2.0 breaks control of complex number support

Drew Parsons dparsons at debian.org
Sun May 3 10:41:03 BST 2026


Source: xsimd
Version: 14.2.0-1
Severity: normal
Control: forwarded -1 https://github.com/xtensor-stack/xsimd/issues/1338

Previously xsimd set the CXX standard conditionally depending on
whether complex number support (from xtl) was provided or not.
xtl requires a more recent CXX standard than xsimd (currently
cxx_std_14 vs cxx_std_17)

In 14.2.0, upstream PR#1279
https://github.com/xtensor-stack/xsimd/issues/1338
hardcoded the lower CXX standard into its cmake config files
(/usr/share/cmake/xsimd/xsimdTargets.cmake)
while also recording complex number support
(set XSIMD_ENABLE_XTL_COMPLEX=1).

If an application (including xsimd's tests run standalone against the
installed package via debian/tests) is configured with
-DENABLE_XTL_COMPLEX=On then /usr/share/cmake/xsimd/xsimdConfig.cmake
finds xtl, which sets cxx_std_17.

But if the application does not explicitly set -DENABLE_XTL_COMPLEX=On
(i.e. does not want to use complex number support), xsimd gives
cxx_std_14, but also accesses xtl's complex numbers because 
XSIMD_ENABLE_XTL_COMPLEX=1 is set without finding xtl (which would
activate cxx_std_17).  

Failure then occurs due to the standards inconsistency via the
unwanted complex number support,
e.g. debian/tests/xsimd-test
[  3%] Building CXX object CMakeFiles/test_xsimd.dir/test_api.cpp.o
/usr/bin/c++ -DXSIMD_ENABLE_XTL_COMPLEX=1  -Wunused-parameter -Wextra -Wreorder -std=c++14 -g -fPIC -march=native -O3 -DNDEBUG -MD -MT CMakeFiles/test_xsimd.dir/test_api.cpp.o -MF CMakeFiles/test_xsimd.dir/test_api.cpp.o.d -o CMakeFiles/test_xsimd.dir/test_api.cpp.o -c /projects/mathlibs/build/xsimd/test/test_api.cpp
In file included from /usr/include/xtl/xcomplex.hpp:32,
                 from /usr/include/xsimd/arch/xsimd_scalar.hpp:26,
                 from /usr/include/xsimd/xsimd.hpp:18,
                 from /projects/mathlibs/build/xsimd/test/test_api.cpp:12:
/usr/include/xtl/xtype_traits.hpp:306:40: error: ‘conjunction’ is not a member of ‘std’
  306 |     constexpr bool xtl_requires = std::conjunction<C...>::value;
      |                                        ^~~~~~~~~~~
/usr/include/xtl/xtype_traits.hpp:306:40: note: ‘std::conjunction’ is only available from C++17 onwards

debian/tests/xsimd-test-complex, on the other hand, passes since its
-DENABLE_XTL_COMPLEX=On brings in xtl which activates cxx_std_17.

Issue raised  upstream,
https://github.com/xtensor-stack/xsimd/issues/1338

As a workaround I might hard-code xsimd to just require the newer
cxx_std_17 standard that xtl requires.


More information about the debian-science-maintainers mailing list