Add Python 3.13 support
Closed this issue · 2 comments
Siryu6 commented
Due to greenlet
version pinned to 3.0.3
, PgSync is not able to run on Python 3.13
.
Python 3.13
support has been added in greenlet:3.1.0
(see CHANGELOG)
Error log :
building 'greenlet._greenlet' extension
17.39 creating build/temp.linux-aarch64-cpython-313/src/greenlet
17.39 g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I//home/pgsync/code/venv/include -I/usr/local/include/python3.13 -c src/greenlet/greenlet.cpp -o build/temp.linux-aarch64-cpython-313/src/greenlet/greenlet.o
17.39 In file included from src/greenlet/greenlet_greenlet.hpp:26,
17.39 from src/greenlet/greenlet_internal.hpp:20,
17.39 from src/greenlet/greenlet.cpp:19:
17.39 /usr/local/include/python3.13/internal/pycore_frame.h:8:4: error: #error "this header requires Py_BUILD_CORE define"
17.39 8 | # error "this header requires Py_BUILD_CORE define"
17.39 | ^~~~~
17.39 In file included from /usr/local/include/python3.13/internal/pycore_frame.h:13:
17.39 /usr/local/include/python3.13/internal/pycore_code.h:8:4: error: #error "this header requires Py_BUILD_CORE define"
17.39 8 | # error "this header requires Py_BUILD_CORE define"
17.39 | ^~~~~
17.39 In file included from /usr/local/include/python3.13/internal/pycore_code.h:11:
17.39 /usr/local/include/python3.13/internal/pycore_lock.h:13:4: error: #error "this header requires Py_BUILD_CORE define"
17.39 13 | # error "this header requires Py_BUILD_CORE define"
17.39 | ^~~~~
17.39 In file included from /usr/local/include/python3.13/internal/pycore_code.h:12:
17.39 /usr/local/include/python3.13/internal/pycore_backoff.h:9:4: error: #error "this header requires Py_BUILD_CORE define"
17.39 9 | # error "this header requires Py_BUILD_CORE define"
17.39 | ^~~~~
17.39 src/greenlet/greenlet_greenlet.hpp:104:9: error: ‘_PyCFrame’ does not name a type; did you mean ‘_frame’?
17.39 104 | _PyCFrame* cframe;
17.39 | ^~~~~~~~~
17.39 | _frame
17.39 src/greenlet/greenlet_greenlet.hpp:147:29: error: ‘_PyCFrame’ has not been declared
17.39 147 | void set_new_cframe(_PyCFrame& frame) noexcept;
17.39 | ^~~~~~~~~
17.39 In file included from src/greenlet/greenlet.cpp:33:
17.39 src/greenlet/TUserGreenlet.cpp: In member function ‘virtual greenlet::Greenlet::switchstack_result_t greenlet::UserGreenlet::g_initialstub(void*)’:
17.39 src/greenlet/TUserGreenlet.cpp:280:5: error: ‘_PyCFrame’ was not declared in this scope; did you mean ‘_frame’?
17.39 280 | _PyCFrame trace_info;
17.39 | ^~~~~~~~~
17.39 | _frame
17.39 src/greenlet/TUserGreenlet.cpp:282:39: error: ‘trace_info’ was not declared in this scope
17.39 282 | this->python_state.set_new_cframe(trace_info);
17.39 | ^~~~~~~~~~
17.39 In file included from src/greenlet/greenlet.cpp:36:
17.39 src/greenlet/TPythonState.cpp: In constructor ‘greenlet::PythonState::PythonState()’:
17.39 src/greenlet/TPythonState.cpp:12:6: error: class ‘greenlet::PythonState’ does not have any field named ‘cframe’
17.39 12 | ,cframe(nullptr)
17.39 | ^~~~~~
17.39 src/greenlet/TPythonState.cpp:79:11: error: ‘class greenlet::PythonState’ has no member named ‘cframe’
17.39 79 | this->cframe = &PyThreadState_GET()->root_cframe;
17.39 | ^~~~~~
17.39 src/greenlet/TPythonState.cpp:79:42: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘root_cframe’
17.39 79 | this->cframe = &PyThreadState_GET()->root_cframe;
17.39 | ^~~~~~~~~~~
17.39 src/greenlet/TPythonState.cpp: In member function ‘void greenlet::PythonState::operator<<(const PyThreadState*)’:
17.39 src/greenlet/TPythonState.cpp:125:11: error: ‘class greenlet::PythonState’ has no member named ‘cframe’
17.39 125 | this->cframe = tstate->cframe;
17.39 | ^~~~~~
17.39 src/greenlet/TPythonState.cpp:125:28: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘cframe’
17.39 125 | this->cframe = tstate->cframe;
17.39 | ^~~~~~
17.39 src/greenlet/TPythonState.cpp:133:31: error: ‘C_RECURSION_LIMIT’ was not declared in this scope; did you mean ‘Py_C_RECURSION_LIMIT’?
17.39 133 | this->c_recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining;
17.39 | ^~~~~~~~~~~~~~~~~
17.39 | Py_C_RECURSION_LIMIT
17.39 src/greenlet/TPythonState.cpp:137:35: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘cframe’
17.39 137 | this->current_frame = tstate->cframe->current_frame;
17.39 | ^~~~~~
17.39 src/greenlet/TPythonState.cpp:147:42: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘trash’
17.39 147 | this->trash_delete_nesting = tstate->trash.delete_nesting;
17.39 | ^~~~~
17.39 src/greenlet/TPythonState.cpp: In member function ‘void greenlet::PythonState::operator>>(PyThreadState*)’:
17.39 src/greenlet/TPythonState.cpp:188:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘cframe’
17.39 188 | tstate->cframe = this->cframe;
17.39 | ^~~~~~
17.39 src/greenlet/TPythonState.cpp:188:28: error: ‘class greenlet::PythonState’ has no member named ‘cframe’
17.39 188 | tstate->cframe = this->cframe;
17.39 | ^~~~~~
17.39 src/greenlet/TPythonState.cpp:202:37: error: ‘C_RECURSION_LIMIT’ was not declared in this scope; did you mean ‘Py_C_RECURSION_LIMIT’?
17.39 202 | tstate->c_recursion_remaining = C_RECURSION_LIMIT - this->c_recursion_depth;
17.39 | ^~~~~~~~~~~~~~~~~
17.39 | Py_C_RECURSION_LIMIT
17.39 src/greenlet/TPythonState.cpp:207:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘cframe’
17.39 207 | tstate->cframe->current_frame = this->current_frame;
17.39 | ^~~~~~
17.39 src/greenlet/TPythonState.cpp:213:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘trash’
17.39 213 | tstate->trash.delete_nesting = this->trash_delete_nesting;
17.39 | ^~~~~
17.39 src/greenlet/TPythonState.cpp: At global scope:
17.39 src/greenlet/TPythonState.cpp:273:6: error: variable or field ‘set_new_cframe’ declared void
17.39 273 | void PythonState::set_new_cframe(_PyCFrame& frame) noexcept
17.39 | ^~~~~~~~~~~
17.39 src/greenlet/TPythonState.cpp:273:34: error: ‘_PyCFrame’ was not declared in this scope; did you mean ‘_frame’?
17.39 273 | void PythonState::set_new_cframe(_PyCFrame& frame) noexcept
17.39 | ^~~~~~~~~
17.39 | _frame
17.39 src/greenlet/TPythonState.cpp:273:45: error: ‘frame’ was not declared in this scope; did you mean ‘_frame’?
17.39 273 | void PythonState::set_new_cframe(_PyCFrame& frame) noexcept
17.39 | ^~~~~
17.39 | _frame
17.39 src/greenlet/greenlet.cpp: In function ‘PyObject* mod_get_tstate_trash_delete_nesting(PyObject*)’:
17.39 src/greenlet/greenlet.cpp:1341:36: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘trash’
17.39 1341 | return PyLong_FromLong(tstate->trash.delete_nesting);
17.39 | ^~~~~
17.39 error: command '/usr/bin/g++' failed with exit code 1
17.39 [end of output]
toluaina commented
should be fixed now. text you please try again
toluaina commented
sorted now