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. -- debian-science-maintainers mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-science-maintainers
