Bug#994248: xtensor: build error on i686 with xsimd: incomplete type xsimd::batch<long int, 8>

Drew Parsons dparsons at debian.org
Tue Sep 14 16:22:15 BST 2021


Source: xtensor
Version: 0.23.10-5
Severity: normal
Control: forwarded -1 https://github.com/xtensor-stack/xtensor/issues/2434

A build of xtensor 0.23.10 is failing on i386 (i686) when xsimd support is activated (xsimd 7.5.0).

An excerpt from the build log is,
https://buildd.debian.org/status/fetch.php?pkg=xtensor&arch=i386&ver=0.23.10-5&stamp=1631562580&raw=0


[  4%] Building CXX object test/CMakeFiles/test_xtensor_lib.dir/test_xadaptor_semantic.cpp.o
cd /<<PKGBUILDDIR>>/obj-i686-linux-gnu/test && /usr/bin/c++ -DXSIMD_ENABLE_XTL_COMPLEX -DXTENSOR_USE_XSIMD -I/<<PKGBUILDDIR>>/include -isystem /<<PKGBUILDDIR>>/obj-i686-linux-gnu/test/googletest-src/googletest/include -isystem /<<PKGBUILDDIR>>/obj-i686-linux-gnu/test/googletest-src/googletest -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -march=native -std=c++14 -Wunused-parameter -Wextra -Wreorder -Wconversion -Wsign-conversion -Wold-style-cast -Wunused-variable -ftemplate-backtrace-limit=0 -DGTEST_HAS_PTHREAD=1 -o CMakeFiles/test_xtensor_lib.dir/test_xadaptor_semantic.cpp.o -c /<<PKGBUILDDIR>>/test/test_xadaptor_semantic.cpp
...
In file included from /<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:16,
                 from /<<PKGBUILDDIR>>/include/xtensor/xstrided_view.hpp:25,
                 from /<<PKGBUILDDIR>>/include/xtensor/xgenerator.hpp:27,
                 from /<<PKGBUILDDIR>>/include/xtensor/xbuilder.hpp:31,
                 from /<<PKGBUILDDIR>>/include/xtensor/xmanipulation.hpp:13,
                 from /<<PKGBUILDDIR>>/include/xtensor/xmath.hpp:28,
                 from /<<PKGBUILDDIR>>/include/xtensor/xcontainer.hpp:25,
                 from /<<PKGBUILDDIR>>/include/xtensor/xarray.hpp:20,
                 from /<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:15:
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp: In instantiation of ‘static void xt::strided_loop_assigner<simd>::run(E1&, const E2&) [with E1 = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; bool simd = true]’:
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:399:60:   required from ‘static void xt::xexpression_assigner_base<xt::xtensor_expression_tag>::assign_data(xt::xexpression<D>&, const xt::xexpression<E2>&, bool) [with E1 = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:413:31:   required from ‘static void xt::xexpression_assigner<Tag>::assign_xexpression(E1&, const E2&) [with E1 = xt::xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >; E2 = xt::xexpression<xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >; Tag = xt::xtensor_expression_tag]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:204:58:   required from ‘xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:65)> [with auto:65 = xtl::identity]’
/usr/include/xtl/xmeta_utils.hpp:597:22:   required from ‘decltype(auto) xtl::mpl::static_if(std::false_type, const TF&, const FF&) [with TF = xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:64)>; FF = xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:65)>; std::false_type = std::integral_constant<bool, false>]’
/usr/include/xtl/xmeta_utils.hpp:603:29:   required from ‘decltype(auto) xtl::mpl::static_if(const TF&, const FF&) [with bool cond = false; TF = xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:64)>; FF = xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:65)>]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:198:58:   required from ‘void xt::assign_xexpression(xt::xexpression<D>&, const xt::xexpression<E2>&) [with E1 = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:623:31:   required from ‘xt::xcontainer_semantic<D>::derived_type& xt::xcontainer_semantic<D>::assign_xexpression(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; xt::xcontainer_semantic<D>::derived_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:489:55:   required from ‘xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::assign(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; xt::xsemantic_base<D>::derived_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xtensor.hpp:550:30:   required from ‘xt::xtensor_container<EC, N, L, Tag>::xtensor_container(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; EC = xt::uvector<long int, std::allocator<long int> >; unsigned int N = 1; xt::layout_type L = xt::layout_type::row_major; Tag = xt::xtensor_expression_tag]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:600:24:   required from ‘xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::operator=(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; xt::xsemantic_base<D>::derived_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:647:36:   required from ‘xt::xcontainer_semantic<D>::derived_type& xt::xcontainer_semantic<D>::operator=(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; xt::xcontainer_semantic<D>::derived_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xtensor.hpp:560:40:   required from ‘xt::xtensor_container<EC, N, L, Tag>::self_type& xt::xtensor_container<EC, N, L, Tag>::operator=(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; EC = xt::uvector<long int, std::allocator<long int> >; unsigned int N = 1; xt::layout_type L = xt::layout_type::row_major; Tag = xt::xtensor_expression_tag; xt::xtensor_container<EC, N, L, Tag>::self_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsort.hpp:480:17:   required from ‘auto xt::partition(const xt::xexpression<D>&, const C&, std::ptrdiff_t) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; C = std::array<unsigned int, 2>; <template-parameter-1-3> = int; std::ptrdiff_t = int]’
/<<PKGBUILDDIR>>/include/xtensor/xsort.hpp:709:40:   required from ‘typename std::decay<_Tp>::type::value_type xt::median(E&&) [with E = xt::xarray_container<xt::uvector<long int, xsimd::aligned_allocator<long int, 32> >, xt::layout_type::row_major, xt::svector<unsigned int, 4, std::allocator<unsigned int>, true>, xt::xtensor_expression_tag>&; typename std::decay<_Tp>::type::value_type = long int]’
/<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:110:9:   required from here
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:957:82: error: invalid use of incomplete type ‘xt::xstepper<const xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::simd_return_type<long int>’ {aka ‘class xsimd::batch<long int, 8>’}
  957 |                 res_stepper.store_simd(fct_stepper.template step_simd<value_type>());
      |                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/xsimd/types/xsimd_base.hpp:26,
                 from /usr/include/xsimd/types/xsimd_traits.hpp:16,
                 from /usr/include/xsimd/xsimd.hpp:16,
                 from /<<PKGBUILDDIR>>/include/xtensor/xtensor_config.hpp:75,
                 from /<<PKGBUILDDIR>>/include/xtensor/xbuffer_adaptor.hpp:21,
                 from /<<PKGBUILDDIR>>/include/xtensor/xarray.hpp:19,
                 from /<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:15:
/usr/include/xsimd/types/xsimd_utils.hpp:26:11: note: declaration of ‘xt::xstepper<const xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::simd_return_type<long int>’ {aka ‘class xsimd::batch<long int, 8>’}
   26 |     class batch;
      |           ^~~~~
In file included from /<<PKGBUILDDIR>>/include/xtensor/xarray.hpp:20,
                 from /<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:15:
/<<PKGBUILDDIR>>/include/xtensor/xcontainer.hpp: In instantiation of ‘xt::container_simd_return_type_t<typename xt::xcontainer_inner_types<D>::storage_type, typename xt::xcontainer_inner_types<D>::storage_type::value_type, requested_type> xt::xcontainer<D>::load_simd(xt::xcontainer<D>::size_type) const [with align = xsimd::unaligned_mode; requested_type = long int; unsigned int N = 8; D = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; xt::container_simd_return_type_t<typename xt::xcontainer_inner_types<D>::storage_type, typename xt::xcontainer_inner_types<D>::storage_type::value_type, requested_type> = xsimd::batch<long int, 8>; typename xt::xcontainer_inner_types<D>::storage_type::value_type = long int; typename xt::xcontainer_inner_types<D>::storage_type = xt::xiterator_adaptor<long int*, const long int*>; xt::xcontainer<D>::size_type = unsigned int]’:
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:671:104:   required from ‘static void xt::linear_assigner<simd_assign>::run(E1&, const E2&) [with E1 = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; bool simd_assign = true]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:390:50:   required from ‘static void xt::xexpression_assigner_base<xt::xtensor_expression_tag>::assign_data(xt::xexpression<D>&, const xt::xexpression<E2>&, bool) [with E1 = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:413:31:   required from ‘static void xt::xexpression_assigner<Tag>::assign_xexpression(E1&, const E2&) [with E1 = xt::xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >; E2 = xt::xexpression<xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >; Tag = xt::xtensor_expression_tag]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:204:58:   required from ‘xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:65)> [with auto:65 = xtl::identity]’
/usr/include/xtl/xmeta_utils.hpp:597:22:   required from ‘decltype(auto) xtl::mpl::static_if(std::false_type, const TF&, const FF&) [with TF = xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:64)>; FF = xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:65)>; std::false_type = std::integral_constant<bool, false>]’
/usr/include/xtl/xmeta_utils.hpp:603:29:   required from ‘decltype(auto) xtl::mpl::static_if(const TF&, const FF&) [with bool cond = false; TF = xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:64)>; FF = xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >::<lambda(auto:65)>]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:198:58:   required from ‘void xt::assign_xexpression(xt::xexpression<D>&, const xt::xexpression<E2>&) [with E1 = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:623:31:   required from ‘xt::xcontainer_semantic<D>::derived_type& xt::xcontainer_semantic<D>::assign_xexpression(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; xt::xcontainer_semantic<D>::derived_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:489:55:   required from ‘xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::assign(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; xt::xsemantic_base<D>::derived_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xtensor.hpp:550:30:   required from ‘xt::xtensor_container<EC, N, L, Tag>::xtensor_container(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; EC = xt::uvector<long int, std::allocator<long int> >; unsigned int N = 1; xt::layout_type L = xt::layout_type::row_major; Tag = xt::xtensor_expression_tag]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:600:24:   required from ‘xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::operator=(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; xt::xsemantic_base<D>::derived_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:647:36:   required from ‘xt::xcontainer_semantic<D>::derived_type& xt::xcontainer_semantic<D>::operator=(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; xt::xcontainer_semantic<D>::derived_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xtensor.hpp:560:40:   required from ‘xt::xtensor_container<EC, N, L, Tag>::self_type& xt::xtensor_container<EC, N, L, Tag>::operator=(const xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; EC = xt::uvector<long int, std::allocator<long int> >; unsigned int N = 1; xt::layout_type L = xt::layout_type::row_major; Tag = xt::xtensor_expression_tag; xt::xtensor_container<EC, N, L, Tag>::self_type = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsort.hpp:480:17:   required from ‘auto xt::partition(const xt::xexpression<D>&, const C&, std::ptrdiff_t) [with E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; C = std::array<unsigned int, 2>; <template-parameter-1-3> = int; std::ptrdiff_t = int]’
/<<PKGBUILDDIR>>/include/xtensor/xsort.hpp:709:40:   required from ‘typename std::decay<_Tp>::type::value_type xt::median(E&&) [with E = xt::xarray_container<xt::uvector<long int, xsimd::aligned_allocator<long int, 32> >, xt::layout_type::row_major, xt::svector<unsigned int, 4, std::allocator<unsigned int>, true>, xt::xtensor_expression_tag>&; typename std::decay<_Tp>::type::value_type = long int]’
/<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:110:9:   required from here
/<<PKGBUILDDIR>>/include/xtensor/xcontainer.hpp:733:17: error: return type ‘xt::container_simd_return_type_t<xt::xiterator_adaptor<long int*, const long int*>, long int, long int>’ {aka ‘class xsimd::batch<long int, 8>’} is incomplete
  733 |     inline auto xcontainer<D>::load_simd(size_type i) const
      |                 ^~~~~~~~~~~~~
/<<PKGBUILDDIR>>/include/xtensor/xcontainer.hpp:738:62: error: invalid use of incomplete type ‘xsimd::simd_return_type<long int, long int, 8>’ {aka ‘class xsimd::batch<long int, 8>’}
  738 |         return xt_simd::load_simd<value_type, requested_type>(std::addressof(storage()[i]), align_mode());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Reported at https://github.com/xtensor-stack/xtensor/issues/2434

xsimd Issue#287 might be related, https://github.com/xtensor-stack/xsimd/issues/287


-- System Information:
Debian Release: bookworm/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-8-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled


More information about the debian-science-maintainers mailing list