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

Build error of symengine.py when SymEngine's LLVMDoubleVisitor is enabled. #483

Closed
bjodah opened this issue May 31, 2024 · 1 comment · Fixed by #481
Closed

Build error of symengine.py when SymEngine's LLVMDoubleVisitor is enabled. #483

bjodah opened this issue May 31, 2024 · 1 comment · Fixed by #481

Comments

@bjodah
Copy link
Contributor

bjodah commented May 31, 2024

I experienced this error first locally, and I have now reproduced it in our CI:

Relevant part of log https://github.com/bjodah/symengine.py/actions/runs/9315200175/job/25640872589
running build
running build_ext
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at /home/runner/our_usr/lib/cmake/symengine/SymEngineConfig.cmake:34 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
  CMakeLists.txt:16 (find_package)


-- Performing Test HAVE_FFI_CALL
-- Performing Test HAVE_FFI_CALL - Success
-- Found FFI: /home/runner/our_usr/lib/libffi.so
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
                 from /home/runner/our_usr/include/boost/multiprecision/number.hpp:12,
                 from /home/runner/our_usr/include/boost/multiprecision/cpp_int.hpp:19,
                 from /home/runner/our_usr/include/symengine/mp_class.h:12,
                 from /home/runner/work/symengine.py/symengine.py/dist-extract/symengine-0.11.0/symengine/lib/symengine_wrapper.cpp:1275:
/home/runner/our_usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~
In file included from /usr/include/c++/11/vector:66,
                 from /home/runner/work/symengine.py/symengine.py/dist-extract/symengine-0.11.0/symengine/lib/symengine_wrapper.cpp:1271:
/usr/include/c++/11/bits/stl_uninitialized.h: In instantiation of ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<SymEngine::LLVMDoubleVisitor*>; _ForwardIterator = SymEngine::LLVMDoubleVisitor*]’:
/usr/include/c++/11/bits/stl_uninitialized.h:333:37:   required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<SymEngine::LLVMDoubleVisitor*>; _ForwardIterator = SymEngine::LLVMDoubleVisitor*; _Tp = SymEngine::LLVMDoubleVisitor]’
/usr/include/c++/11/bits/stl_uninitialized.h:355:2:   required from ‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = SymEngine::LLVMDoubleVisitor*; _ForwardIterator = SymEngine::LLVMDoubleVisitor*; _Allocator = std::allocator<SymEngine::LLVMDoubleVisitor>]’
/usr/include/c++/11/bits/vector.tcc:659:48:   required from ‘void std::vector<_Tp, _Alloc>::_M_default_append(std::vector<_Tp, _Alloc>::size_type) [with _Tp = SymEngine::LLVMDoubleVisitor; _Alloc = std::allocator<SymEngine::LLVMDoubleVisitor>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]’
/usr/include/c++/11/bits/stl_vector.h:940:4:   required from ‘void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type) [with _Tp = SymEngine::LLVMDoubleVisitor; _Alloc = std::allocator<SymEngine::LLVMDoubleVisitor>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]’
/home/runner/work/symengine.py/symengine.py/dist-extract/symengine-0.11.0/symengine/lib/symengine_wrapper.cpp:185448:39:   required from here
/usr/include/c++/11/bits/stl_uninitialized.h:138:72: error: static assertion failed: result type must be constructible from value type of input range
  138 |       static_assert(is_constructible<_ValueType2, decltype(*__first)>::value,
      |                                                                        ^~~~~
/usr/include/c++/11/bits/stl_uninitialized.h:138:72: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
/usr/include/c++/11/bits/stl_uninitialized.h: In instantiation of ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<SymEngine::LLVMFloatVisitor*>; _ForwardIterator = SymEngine::LLVMFloatVisitor*]’:
/usr/include/c++/11/bits/stl_uninitialized.h:333:37:   required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<SymEngine::LLVMFloatVisitor*>; _ForwardIterator = SymEngine::LLVMFloatVisitor*; _Tp = SymEngine::LLVMFloatVisitor]’
/usr/include/c++/11/bits/stl_uninitialized.h:355:2:   required from ‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = SymEngine::LLVMFloatVisitor*; _ForwardIterator = SymEngine::LLVMFloatVisitor*; _Allocator = std::allocator<SymEngine::LLVMFloatVisitor>]’
/usr/include/c++/11/bits/vector.tcc:659:48:   required from ‘void std::vector<_Tp, _Alloc>::_M_default_append(std::vector<_Tp, _Alloc>::size_type) [with _Tp = SymEngine::LLVMFloatVisitor; _Alloc = std::allocator<SymEngine::LLVMFloatVisitor>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]’
/usr/include/c++/11/bits/stl_vector.h:940:4:   required from ‘void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type) [with _Tp = SymEngine::LLVMFloatVisitor; _Alloc = std::allocator<SymEngine::LLVMFloatVisitor>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]’
/home/runner/work/symengine.py/symengine.py/dist-extract/symengine-0.11.0/symengine/lib/symengine_wrapper.cpp:187586:39:   required from here
/usr/include/c++/11/bits/stl_uninitialized.h:138:72: error: static assertion failed: result type must be constructible from value type of input range
/usr/include/c++/11/bits/stl_uninitialized.h:138:72: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
/usr/include/c++/11/bits/stl_uninitialized.h: In instantiation of ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<SymEngine::LLVMLongDoubleVisitor*>; _ForwardIterator = SymEngine::LLVMLongDoubleVisitor*]’:
/usr/include/c++/11/bits/stl_uninitialized.h:333:37:   required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<SymEngine::LLVMLongDoubleVisitor*>; _ForwardIterator = SymEngine::LLVMLongDoubleVisitor*; _Tp = SymEngine::LLVMLongDoubleVisitor]’
/usr/include/c++/11/bits/stl_uninitialized.h:355:2:   required from ‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = SymEngine::LLVMLongDoubleVisitor*; _ForwardIterator = SymEngine::LLVMLongDoubleVisitor*; _Allocator = std::allocator<SymEngine::LLVMLongDoubleVisitor>]’
/usr/include/c++/11/bits/vector.tcc:659:48:   required from ‘void std::vector<_Tp, _Alloc>::_M_default_append(std::vector<_Tp, _Alloc>::size_type) [with _Tp = SymEngine::LLVMLongDoubleVisitor; _Alloc = std::allocator<SymEngine::LLVMLongDoubleVisitor>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]’
/usr/include/c++/11/bits/stl_vector.h:940:4:   required from ‘void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type) [with _Tp = SymEngine::LLVMLongDoubleVisitor; _Alloc = std::allocator<SymEngine::LLVMLongDoubleVisitor>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]’
/home/runner/work/symengine.py/symengine.py/dist-extract/symengine-0.11.0/symengine/lib/symengine_wrapper.cpp:188783:39:   required from here
/usr/include/c++/11/bits/stl_uninitialized.h:138:72: error: static assertion failed: result type must be constructible from value type of input range
/usr/include/c++/11/bits/stl_uninitialized.h:138:72: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
gmake[2]: *** [symengine/lib/CMakeFiles/symengine_wrapper.dir/build.make:94: symengine/lib/CMakeFiles/symengine_wrapper.dir/symengine_wrapper.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:194: symengine/lib/CMakeFiles/symengine_wrapper.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
error: error building project

I'm trying to narrow down what might have changed, I'm leaning towards cython generating a bad symengine_wrapper.cpp (the above attached full log shows that it uses cython-3.0.10):

log.txt

I'll report back when I've tried different versions of cython.

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

Successfully merging a pull request may close this issue.

1 participant