-
Notifications
You must be signed in to change notification settings - Fork 264
Closed
Description
Hello all! I found a few issues from last year that seem to have been fixed and closed (#473, #458) , but I'm still experiencing this compilation issue on 3.14 python. My python interpreter is installed by uv and is not free-threaded.
✗ uv run python -VV
Python 3.14.2 (main, Jan 27 2026, 23:32:07) [Clang 21.1.4 ]
Compilation Error
``` ➜ : ✗ uv sync Resolved 76 packages in 21ms × Failed to build `greenlet==3.1.1` ├─▶ The build backend returned an error ╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1) [stdout]
running bdist_wheel
running build
running build_py
copying src/greenlet/__init__.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/platform/__init__.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/tests/test_version.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_weakref.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/fail_slp_switch.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_gc.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/leakcheck.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/fail_switch_two_greenlets.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_generator.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_greenlet_trash.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_throw.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_tracing.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/fail_cpp_exception.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/fail_switch_three_greenlets.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_cpp.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_contextvars.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_greenlet.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_extension_interface.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/fail_clearing_run_switches.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/__init__.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/fail_switch_three_greenlets2.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/fail_initialstub_already_started.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_generator_nested.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_stack_saved.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/test_leaks.py -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
running egg_info
writing src/greenlet.egg-info/PKG-INFO
writing dependency_links to src/greenlet.egg-info/dependency_links.txt
writing requirements to src/greenlet.egg-info/requires.txt
writing top-level names to src/greenlet.egg-info/top_level.txt
reading manifest file 'src/greenlet.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
adding license file 'LICENSE.PSF'
adding license file 'AUTHORS'
writing manifest file 'src/greenlet.egg-info/SOURCES.txt'
copying src/greenlet/CObjects.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/PyGreenlet.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/PyGreenlet.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/PyGreenletUnswitchable.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/PyModule.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TBrokenGreenlet.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TExceptionState.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TGreenlet.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TGreenlet.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TGreenletGlobals.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TMainGreenlet.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TPythonState.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TStackState.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TThreadState.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TThreadStateCreator.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TThreadStateDestroy.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/TUserGreenlet.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet_allocator.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet_compiler_compat.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet_cpython_add_pending.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet_cpython_compat.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet_exceptions.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet_internal.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet_refs.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet_slp_switch.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/greenlet_thread_support.hpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/slp_platformselect.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet
copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.asm -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.obj -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_arm64_msvc.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_loongarch64_linux.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_mips_unix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_s390_unix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_sh_gcc.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_x32_unix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/platform/switch_x86_unix.h -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/platform
copying src/greenlet/tests/_test_extension.c -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.macosx-11.0-arm64-cpython-314/greenlet/tests
running build_ext
building 'greenlet._greenlet' extension
c++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -g -O3 -Wall -O3 -arch arm64
-mmacosx-version-min=11.0 -Wno-nullability-completeness -Wno-expansion-to-defined -Wno-undef-prefix
-fPIC -I/Users/me/code/.cache/uv/builds-v0/.tmpAU7ftf/include
-I/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14 -c
src/greenlet/greenlet.cpp -o build/temp.macosx-11.0-arm64-cpython-314/src/greenlet/greenlet.o --std=c++11
[stderr]
/Users/me/code/.cache/uv/builds-v0/.tmpAU7ftf/lib/python3.14/site-packages/setuptools/dist.py:765:
SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: MIT License
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
self._finalize_license_expression()
warning: no previously-included files found matching 'benchmarks/*.json'
no previously-included directories found matching 'docs/_build'
warning: no files found matching '*.py' under directory 'appveyor'
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*.pyd' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
warning: no previously-included files matching '.coverage' found anywhere in distribution
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:626:29: error: variable has incomplete type '_PyInterpreterFrame'
626 | _PyInterpreterFrame iframe_copy;
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:627:71: error: invalid application of 'sizeof' to an incomplete type '_PyInterpreterFrame'
627 | this->stack_state.copy_from_stack(&iframe_copy, iframe, sizeof(*iframe));
| ^~~~~~~~~
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:654:24: error: member access into incomplete type '_PyInterpreterFrame'
654 | if (!iframe->frame_obj) {
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:656:37: error: variable has incomplete type '_PyInterpreterFrame'
656 | _PyInterpreterFrame dummy_iframe;
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:661:38: error: use of undeclared identifier 'FRAME_OWNED_BY_GENERATOR'
661 | dummy_iframe.owner = FRAME_OWNED_BY_GENERATOR;
| ^
src/greenlet/TGreenlet.cpp:686:45: error: member access into incomplete type '_PyInterpreterFrame'
686 | memcpy(&last_complete_iframe->frame_obj->_f_frame_data[0],
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:687:45: error: member access into incomplete type '_PyInterpreterFrame'
687 | &last_complete_iframe->previous, sizeof(void *));
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:688:37: error: member access into incomplete type '_PyInterpreterFrame'
688 | last_complete_iframe->previous = iframe;
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:705:37: error: member access into incomplete type '_PyInterpreterFrame'
705 | memcpy(&last_complete_iframe->frame_obj->_f_frame_data[0],
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:706:37: error: member access into incomplete type '_PyInterpreterFrame'
706 | &last_complete_iframe->previous, sizeof(void *));
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:31:
src/greenlet/TGreenlet.cpp:707:29: error: member access into incomplete type '_PyInterpreterFrame'
707 | last_complete_iframe->previous = nullptr;
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:36:
src/greenlet/TPythonState.cpp:137:31: error: use of undeclared identifier 'Py_C_RECURSION_LIMIT'
137 | this->c_recursion_depth = Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining;
| ^
src/greenlet/TPythonState.cpp:137:62: error: no member named 'c_recursion_remaining' in '_ts'
137 | this->c_recursion_depth = Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining;
| ~~~~~~ ^
src/greenlet/TPythonState.cpp:179:51: error: member access into incomplete type '_PyInterpreterFrame'
179 | _PyInterpreterFrame *prev_exposed = iframe->previous;
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:36:
src/greenlet/TPythonState.cpp:181:23: error: member access into incomplete type '_PyInterpreterFrame'
181 | memcpy(&iframe->previous, &iframe->frame_obj->_f_frame_data[0],
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:36:
src/greenlet/TPythonState.cpp:181:42: error: member access into incomplete type '_PyInterpreterFrame'
181 | memcpy(&iframe->previous, &iframe->frame_obj->_f_frame_data[0],
| ^
/Users/me/.local/share/uv/python/cpython-3.14.2-macos-aarch64-none/include/python3.14/cpython/pyframe.h:25:8:
note: forward declaration of '_PyInterpreterFrame'
25 | struct _PyInterpreterFrame;
| ^
In file included from src/greenlet/greenlet.cpp:36:
src/greenlet/TPythonState.cpp:212:13: error: no member named 'c_recursion_remaining' in '_ts'
212 | tstate->c_recursion_remaining = Py_C_RECURSION_LIMIT - this->c_recursion_depth;
| ~~~~~~ ^
src/greenlet/TPythonState.cpp:212:37: error: use of undeclared identifier 'Py_C_RECURSION_LIMIT'
212 | tstate->c_recursion_remaining = Py_C_RECURSION_LIMIT - this->c_recursion_depth;
| ^
18 errors generated.
error: command '/usr/bin/c++' failed with exit code 1
hint: This usually indicates a problem with the package or the build environment.
help: greenlet (v3.1.1) was included because dev depends on playwright (v1.58.0) which depends on greenlet
</details>
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels