Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error compiling xtensor tests with latest xsimd on MSVC 2019 v16.11.5 #625

Open
emmenlau opened this issue Nov 1, 2021 · 10 comments
Open

Comments

@emmenlau
Copy link
Contributor

emmenlau commented Nov 1, 2021

I get a number of errors when building latest xtensor tests against xsimd 8.0.3 on MSVC with latest Visual Studio v16.11.5. The problem is here reported for test_xdatesupport, but appears in other sources too.

The error is

FAILED: test/CMakeFiles/test_xdatesupport.dir/test_xdatesupport.cpp.obj
C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe   /TP -DDISABLE_VS2017 -DXSIMD_ENABLE_XTL_COMPLEX -DXTENSOR_ENABLE_ASSERT -DXTENSOR_USE_XSIMD -D_CRT_SECURE_NO_WARNINGS -D_ITERATOR_DEBUG_LEVEL=0 -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -IC:\data\xtensor\include -IC:\data\Debug\include /MDd /Zi /arch:AVX2  /D_ITERATOR_DEBUG_LEVEL=0 /DWINVER=0x0603 /D_WIN32_WINNT=0x0603 /DDEBUG     /D_CRT_SECURE_NO_DEPRECATE /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS     /wd4127 /wd4324    /DWIN32 /D_WINDOWS /W3 /GR /EHsc -DXSIMD_ENABLE_XTL_COMPLEX=1 /std:c++17 /MP /bigobj /EHsc /MDd /Zi /Ob0 /Od /RTC1 -std:c++17 /showIncludes /Fotest\CMakeFiles\test_xdatesupport.dir\test_xdatesupport.cpp.obj /Fdtest\CMakeFiles\test_xdatesupport.dir\ /FS -c C:\data\xtensor\test\test_xdatesupport.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 19.29.30136 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.
C:\data\Debug\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): error C2504: 'xsimd::types::simd_register<T,xsimd::avx>': base class undefined
        with
        [
            T=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>
        ]
C:\data\Debug\include\xsimd\types\./xsimd_batch.hpp(36): note: see reference to class template instantiation 'xsimd::types::simd_register<T,A>' being compiled
        with
        [
            T=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>,
            A=xsimd::default_arch
        ]
C:\data\xtensor\include\xtensor\xtensor_simd.hpp(254): note: see reference to class template instantiation 'xsimd::batch<T2,A>' being compiled
        with
        [
            T2=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>,
            A=xsimd::default_arch
        ]
C:\data\xtensor\include\xtensor\xtensor_simd.hpp(265): note: see reference to class template instantiation 'xt::detail::has_simd_interface_impl<E,T,true>' being compiled
        with
        [
            E=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            T=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>
        ]
C:\data\xtensor\include\xtensor\xassign.hpp(346): note: see reference to class template instantiation 'xt::has_simd_interface<E1,std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>>' being compiled
        with
        [
            E1=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>
        ]
C:\data\xtensor\include\xtensor\xassign.hpp(346): note: while compiling class template member function 'bool xt::xassign_traits<E1,E2>::simd_interface(void)'
        with
        [
            E1=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            E2=xt::xfunction<xt::detail::plus,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>
        ]
C:\data\xtensor\include\xtensor\xassign.hpp(354): note: see reference to function template instantiation 'bool xt::xassign_traits<E1,E2>::simd_interface(void)' being compiled
        with
        [
            E1=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            E2=xt::xfunction<xt::detail::plus,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>
        ]
C:\data\xtensor\include\xtensor\xassign.hpp(378): note: see reference to class template instantiation 'xt::xassign_traits<E1,E2>' being compiled
        with
        [
            E1=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            E2=xt::xfunction<xt::detail::plus,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>
        ]
C:\data\xtensor\include\xtensor\xassign.hpp(414): note: see reference to function template instantiation 'void xt::xexpression_assigner_base<xt::xtensor_expression_tag>::assign_data<D,xt::xfunction<F,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>>(xt::xexpression<D> &,const xt::xexpression<xt::xfunction<F,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>> &,bool)' being compiled
        with
        [
            D=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            F=xt::detail::plus,
            T=xt::tp
        ]
C:\data\xtensor\include\xtensor\xassign.hpp(205): note: see reference to function template instantiation 'void xt::xexpression_assigner<tag>::assign_xexpression<xt::xexpression<D>,xt::xexpression<xt::xfunction<F,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>>>(E1 &,const E2 &)' being compiled
        with
        [
            D=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            F=xt::detail::plus,
            T=xt::tp,
            E1=xt::xexpression<xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>>,
            E2=xt::xexpression<xt::xfunction<xt::detail::plus,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>>
        ]
C:\data\xtensor\include\xtensor\xassign.hpp(205): note: see reference to function template instantiation 'void xt::xexpression_assigner<tag>::assign_xexpression<xt::xexpression<D>,xt::xexpression<xt::xfunction<F,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>>>(E1 &,const E2 &)' being compiled
        with
        [
            D=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            F=xt::detail::plus,
            T=xt::tp,
            E1=xt::xexpression<xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>>,
            E2=xt::xexpression<xt::xfunction<xt::detail::plus,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>>
        ]
C:\data\Debug\include\xtl/xmeta_utils.hpp(597): note: see reference to function template instantiation 'void xt::assign_xexpression::<lambda_f923507e095d7947555df898b327287b>::operator ()<xtl::identity>(xtl::identity) const' being compiled
C:\data\Debug\include\xtl/xmeta_utils.hpp(603): note: see reference to function template instantiation 'void xtl::mpl::static_if<TF,FF>(std::false_type,const TF &,const FF &)' being compiled
        with
        [
            TF=xt::assign_xexpression::<lambda_9fdc0c7f61ae999a5b2a9d69ab4f54e1>,
            FF=xt::assign_xexpression::<lambda_f923507e095d7947555df898b327287b>
        ]
C:\data\xtensor\include\xtensor\xassign.hpp(206): note: see reference to function template instantiation 'void xtl::mpl::static_if<false,xt::assign_xexpression::<lambda_9fdc0c7f61ae999a5b2a9d69ab4f54e1>,xt::assign_xexpression::<lambda_f923507e095d7947555df898b327287b>>(const TF &,const FF &)' being compiled
        with
        [
            TF=xt::assign_xexpression::<lambda_9fdc0c7f61ae999a5b2a9d69ab4f54e1>,
            FF=xt::assign_xexpression::<lambda_f923507e095d7947555df898b327287b>
        ]
C:\data\xtensor\include\xtensor\xsemantic.hpp(623): note: see reference to function template instantiation 'void xt::assign_xexpression<D,xt::xfunction<F,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>>(xt::xexpression<D> &,const xt::xexpression<xt::xfunction<F,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>> &)' being compiled
        with
        [
            D=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            F=xt::detail::plus,
            T=xt::tp
        ]
C:\data\xtensor\include\xtensor\xsemantic.hpp(489): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &xt::xcontainer_semantic<xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag>>::assign_xexpression<D>(const xt::xexpression<D> &)' being compiled
        with
        [
            T=xt::tp,
            D=xt::xfunction<xt::detail::plus,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>
        ]
C:\data\xtensor\include\xtensor\xsemantic.hpp(489): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &xt::xcontainer_semantic<xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag>>::assign_xexpression<D>(const xt::xexpression<D> &)' being compiled
        with
        [
            T=xt::tp,
            D=xt::xfunction<xt::detail::plus,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>
        ]
C:\data\xtensor\include\xtensor/xarray.hpp(482): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &xt::xsemantic_base<D>::assign<xt::xfunction<F,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>>(const xt::xexpression<xt::xfunction<F,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>> &)' being compiled
        with
        [
            T=xt::tp,
            D=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            F=xt::detail::plus
        ]
C:\data\xtensor\include\xtensor/xarray.hpp(482): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &xt::xsemantic_base<D>::assign<xt::xfunction<F,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>>(const xt::xexpression<xt::xfunction<F,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>> &)' being compiled
        with
        [
            T=xt::tp,
            D=xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
            F=xt::detail::plus
        ]
C:\data\xtensor\test\test_xdatesupport.cpp(79): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag>::xarray_container<D>(const xt::xexpression<D> &)' being compiled
        with
        [
            T=xt::tp,
            D=xt::xfunction<xt::detail::plus,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>
        ]
C:\data\xtensor\test\test_xdatesupport.cpp(79): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag>::xarray_container<D>(const xt::xexpression<D> &)' being compiled
        with
        [
            T=xt::tp,
            D=xt::xfunction<xt::detail::plus,const xt::xarray_container<xt::uvector<xt::tp,xsimd::aligned_allocator<xt::tp,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &,xt::xscalar<const std::chrono::duration<int,std::ratio<3600,1>> &>>
        ]
C:\data\Debug\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): error C2027: use of undefined type 'xsimd::types::simd_register<T,xsimd::avx>'
        with
        [
            T=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>
        ]
C:\data\Debug\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): note: see declaration of 'xsimd::types::simd_register<T,xsimd::avx>'
        with
        [
            T=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>
        ]
C:\data\Debug\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): error C2061: syntax error: identifier 'register_type'
C:\data\Debug\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): error C2061: syntax error: identifier 'register_type'
C:\data\Debug\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): error C2535: 'xsimd::types::simd_register<T,A>::simd_register(void)': member function already defined or declared
        with
        [
            T=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>,
            A=xsimd::default_arch
        ]
C:\data\Debug\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): note: see declaration of 'xsimd::types::simd_register<T,A>::simd_register'
        with
        [
            T=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>,
            A=xsimd::default_arch
        ]
C:\data\Debug\include\xsimd\types\./xsimd_batch.hpp(43): error C2039: 'register_type': is not a member of 'xsimd::types::simd_register<T,A>'
        with
        [
            T=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>,
            A=xsimd::default_arch
        ]
C:\data\Debug\include\xsimd\types\./xsimd_batch.hpp(35): note: see declaration of 'xsimd::types::simd_register<T,A>'
        with
        [
            T=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>,
            A=xsimd::default_arch
        ]
C:\data\Debug\include\xsimd\types\./xsimd_batch.hpp(43): error C2061: syntax error: identifier 'register_type'
C:\data\Debug\include\xsimd\types\./xsimd_batch.hpp(51): error C2061: syntax error: identifier 'register_type'
C:\data\Debug\include\xsimd\types\./xsimd_batch.hpp(51): error C2535: 'xsimd::batch<T2,A>::batch(void)': member function already defined or declared
        with
        [
            T2=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>,
            A=xsimd::default_arch
        ]
C:\data\Debug\include\xsimd\types\./xsimd_batch.hpp(47): note: see declaration of 'xsimd::batch<T2,A>::batch'
        with
        [
            T2=std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<std::chrono::system_clock::rep,std::chrono::system_clock::period>>,
            A=xsimd::default_arch
        ]
@nunupeke
Copy link

nunupeke commented Nov 3, 2021

Same here. Does this only happen for the latest vs2019 version (v16.11.5)?

@emmenlau
Copy link
Contributor Author

emmenlau commented Nov 4, 2021

I did not try older Visual Studio with latest xsimd. I can only say that older xsimd (<= 7.x) used to work.

@emmenlau
Copy link
Contributor Author

Kindly pinging on this issue again. This is currently blocking us from moving to xsimd 8.x series (and in turn blocking the latest xtensor and xtensor-python, oh my).

@serge-sans-paille
Copy link
Contributor

I have a small reproducer here:

https://godbolt.org/z/fdeGnzWEa

basically the type parameter of the batch doesn't look like a supported scalar type (It's a chrono time_point). I can improve the error message, but that's probably not what you expect. My understanding is that this comes from xtensor, @JohanMabille any hint?

@serge-sans-paille
Copy link
Contributor

@emmenlau can you confirm that with #665 you at least get a decent error message?

@emmenlau
Copy link
Contributor Author

Thanks a lot for the PR, I think it looks good. But I can not test it easily right now because our Windows build is currently being upgraded to VS2022. It may take a few days before I get back to this, is it ok?

@JohanMabille
Copy link
Member

I can reproduce the bug on a local Windows machine, now investigating it, but that looks like a compiler bug that will require some cargo kulting workaround :/

@emmenlau
Copy link
Contributor Author

I see, very annoying... if its really a compiler bug then maybe I can try with Visual Studio 2022. If its fixed there then I'm fine, we can always flee forward...

@JohanMabille
Copy link
Member

I tried in the CI with VS 2022, same issue.

@hxhc
Copy link

hxhc commented Aug 28, 2023

same here with VS2022. I have to remove xtensor::use_simd to compile successfully.
Wondering how the performance will degrade without xsimd.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants