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

#994248#5
Date:
2021-09-14 15:22:15 UTC
From:
To:
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

#994248#22
Date:
2022-06-25 10:49:26 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
xtensor, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 994248@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Drew Parsons <dparsons@debian.org> (supplier of updated xtensor package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sat, 25 Jun 2022 11:23:11 +0200
Source: xtensor
Architecture: source
Version: 0.24.2-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Changed-By: Drew Parsons <dparsons@debian.org>
Closes: 994246 994248 1013625
Changes:
 xtensor (0.24.2-2) unstable; urgency=medium
 .
   * debian patch docs_mathjax.patch configures docs to use local
     mathjax files. Build-Depends-Indep: libjs-mathjax
   * xsimd/complex/batch errors are resolved by xtensor 0.24 with
     xsimd 8.1.0-3. Closes: #994246, #994248, #1013625.
Checksums-Sha1:
 3fb365827af8362ebcbffb7532c2259ace160794 2510 xtensor_0.24.2-2.dsc
 7b66b4524f80873dea13f50582dfe446fecbf50f 8588 xtensor_0.24.2-2.debian.tar.xz
Checksums-Sha256:
 2997bec97e5be53962f3d5e6173adefe0fddce639a1b28474d859f9e28c4eb87 2510 xtensor_0.24.2-2.dsc
 f1736afbabe8a3c4550f67695743f15cd4dc27112255025f62fcfa7a7558f3bf 8588 xtensor_0.24.2-2.debian.tar.xz
Files:
 d0f54145e0de344e0450c29b42068c90 2510 libs optional xtensor_0.24.2-2.dsc
 d17b503b0472eb2071dbef8dec4a5f49 8588 libs optional xtensor_0.24.2-2.debian.tar.xz
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEI8mpPlhYGekSbQo2Vz7x5L1aAfoFAmK25C8ACgkQVz7x5L1a
AfqrRA/9FH6RGGKcdTaDOao0zsXJOHRVitW2iEBEZh2zVdV85rDMewWKstCeiiZW
NDd3hGL5DT9ISXI47wqxsYA2CsQ5teHbU1cFi1XQ92qV/cZef/cj0LklD04vdzXW
NZOViz+HVftqnLuhnlslo1SFfz9Pf8fjZVn74TB/n0RGDI31eYR6u8x5dq7FHgy7
2zEyXZF3oN7yHcBc3DH8MH5122BlZDo8d8j4+NGGjF5xY28aF4+Z5Dxu2eVV/aR8
sX7jgcA8b/2XwuhsD7B9y9wBo5iip/hag0Gt6WFni+HwFMryEb1KWxku9YlVtPXK
iKLvxh7Be4ZbfKAL8bRL4tEqw6r4Hbw9dRd7mwnXrwUjQQwaUF3F3z9DoGZtZRFJ
hL6Am5ESYSA7WS3fizoWGuwOca4hSUucYm6436373mSOBBbpHFa0kaIiX6S8GXtE
8V0mELcWW71kKXjk4QmlZDBHh/ol/nq9hASt8Nnv98Xz7sZaeHuroldMoe2eFEFb
Ab1/T2D/gF9J53i0mkc7PjuHp0BFcZm6esbb+D4ppcNSLS8nwtVmmYZqbz6MDZNJ
Qw1IKfkEUne5ncPBKXYKQD4tkUVrSSs72jQ2Rdy+UtXlGsRg0z/JQ8FeIzPOAKob
K13biuzkOnTJZp7bZggj0s3BgyQDvk/x4s3+2orKTpPJBhr2qdY=
=AmzB
-----END PGP SIGNATURE-----