python-greenlet / greenlet

Lightweight in-process concurrent programming
Other
1.63k stars 247 forks source link

Failure install greenlet==2.0.1 with python3.8 and macos Sonoma14 (m2) #384

Closed tosha4encko closed 10 months ago

tosha4encko commented 10 months ago
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -I/opt/homebrew/include -I/opt/homebrew/opt/openssl@3/include -I/opt/homebrew/opt/sqlite/include -I/opt/homebrew/opt/tcl-tk/include/tcl-tk -I/Users/user/venv3.8/include -I/opt/homebrew/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/include/python3.8 -c src/greenlet/greenlet.cpp -o build/temp.macosx-14-arm64-3.8/src/greenlet/greenlet.o --std=gnu++11
      In file included from src/greenlet/greenlet.cpp:21:
      In file included from src/greenlet/greenlet_slp_switch.hpp:82:
      In file included from src/greenlet/slp_platformselect.h:53:
      src/greenlet/platform/switch_aarch64_gcc.h:29:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
              register long *stackref, stsizediff;
              ^~~~~~~~~
      src/greenlet/platform/switch_aarch64_gcc.h:29:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
              register long *stackref, stsizediff;
              ^~~~~~~~~
      src/greenlet/platform/switch_aarch64_gcc.h:62:51: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
                 __asm__ volatile ("mov %0, #0" : "=r" (err));
                                                        ^
      src/greenlet/platform/switch_aarch64_gcc.h:62:35: note: use constraint modifier "w"
                 __asm__ volatile ("mov %0, #0" : "=r" (err));
                                        ^~
                                        %w0
      In file included from src/greenlet/greenlet.cpp:10:
      In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/string:576:
      In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/string_view:1027:
      In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/functional:515:
      In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/__functional/boyer_moore_searcher.h:26:
      /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/vector:372:5: error: static assertion failed due to requirement 'is_same<greenlet::PythonAllocator<_greenlet *>, std::allocator<_greenlet *>>::value': [allocator.requirements] states that rebinding an allocator to the same type should result in the original allocator
          static_assert(is_same<allocator_type, __rebind_alloc<__alloc_traits, value_type> >::value,
          ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      src/greenlet/greenlet_thread_state.hpp:115:16: note: in instantiation of template class 'std::vector<_greenlet *, greenlet::PythonAllocator<_greenlet *>>' requested here
          deleteme_t deleteme;
                     ^
      src/greenlet/greenlet_thread_state.hpp:267:48: error: no member named 'begin' in 'std::vector<_greenlet *, greenlet::PythonAllocator<_greenlet *>>'
                  for(deleteme_t::iterator it = copy.begin(), end = copy.end();
                                                ~~~~ ^
      src/greenlet/greenlet_thread_state.hpp:267:68: error: no member named 'end' in 'std::vector<_greenlet *, greenlet::PythonAllocator<_greenlet *>>'
                  for(deleteme_t::iterator it = copy.begin(), end = copy.end();
                                                                    ~~~~ ^
      src/greenlet/greenlet_thread_state.hpp:115:16: warning: private field 'deleteme' is not used [-Wunused-private-field]
          deleteme_t deleteme;
                     ^
      4 warnings and 3 errors generated.
      error: command 'clang' failed with exit status 1
      [end of output]
jamadden commented 10 months ago

Please use greenlet 3 for compatibility with newer compilers.