'src/greenlet/greenlet.h:42:5: error: unknown type name ‘CFrame’
What does this mean? How do I fix it?
gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/home/jm/pycharm_projects/circus/venv_3_11_dev/include -I/home/jm/.pyenv/versions/3.11-dev/include/python3.11 -c src/greenlet/greenlet.c -o build/temp.linux-x86_64-3.11/src/greenlet/greenlet.o
In file included from src/greenlet/greenlet.c:11:
src/greenlet/greenlet.h:42:5: error: unknown type name ‘CFrame’
42 | CFrame* cframe;
| ^~~~~~
src/greenlet/greenlet.c: In function ‘green_clear_exc’:
src/greenlet/greenlet.c:173:17: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
173 | g->exc_state.exc_type = NULL;
| ^
src/greenlet/greenlet.c:175:17: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
175 | g->exc_state.exc_traceback = NULL;
| ^
src/greenlet/greenlet.c: In function ‘g_switchstack’:
src/greenlet/greenlet.c:528:44: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘recursion_depth’; did you mean ‘recursion_limit’?
528 | current->recursion_depth = tstate->recursion_depth;
| ^~~~~~~~~~~~~~~
| recursion_limit
src/greenlet/greenlet.c:529:38: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘frame’; did you mean ‘cframe’?
529 | current->top_frame = tstate->frame;
| ^~~~~
| cframe
src/greenlet/greenlet.c:552:25: warning: assignment to ‘int *’ from incompatible pointer type ‘_PyCFrame *’ {aka ‘struct _PyCFrame *’} [-Wincompatible-pointer-types]
552 | current->cframe = tstate->cframe;
| ^
src/greenlet/greenlet.c:577:17: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘recursion_depth’; did you mean ‘recursion_limit’?
577 | tstate->recursion_depth = target->recursion_depth;
| ^~~~~~~~~~~~~~~
| recursion_limit
src/greenlet/greenlet.c:578:17: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘frame’; did you mean ‘cframe’?
578 | tstate->frame = target->top_frame;
| ^~~~~
| cframe
src/greenlet/greenlet.c:601:24: warning: assignment to ‘_PyCFrame *’ {aka ‘struct _PyCFrame *’} from incompatible pointer type ‘int *’ [-Wincompatible-pointer-types]
601 | tstate->cframe = target->cframe;
| ^
src/greenlet/greenlet.c: In function ‘g_initialstub’:
src/greenlet/greenlet.c:813:5: error: unknown type name ‘CFrame’
813 | CFrame trace_info;
| ^~~~~~
src/greenlet/greenlet.c:857:18: error: incompatible types when assigning to type ‘int’ from type ‘_PyCFrame’ {aka ‘struct _PyCFrame’}
857 | trace_info = *PyThreadState_GET()->cframe;
| ^
src/greenlet/greenlet.c:864:17: error: request for member ‘previous’ in something not a structure or union
864 | self->cframe->previous = &PyThreadState_GET()->root_cframe;
| ^~
src/greenlet/greenlet.c:878:50: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘recursion_depth’; did you mean ‘recursion_limit’?
878 | self->recursion_depth = PyThreadState_GET()->recursion_depth;
| ^~~~~~~~~~~~~~~
| recursion_limit
src/greenlet/greenlet.c: In function ‘green_new’:
src/greenlet/greenlet.c:1018:34: warning: assignment to ‘int *’ from incompatible pointer type ‘_PyCFrame *’ {aka ‘struct _PyCFrame *’} [-Wincompatible-pointer-types]
1018 | ((PyGreenlet*)o)->cframe = &PyThreadState_GET()->root_cframe;
| ^
In file included from /home/jm/.pyenv/versions/3.11-dev/include/python3.11/Python.h:45,
from src/greenlet/greenlet.h:8,
from src/greenlet/greenlet.c:11:
src/greenlet/greenlet.c: In function ‘green_traverse’:
src/greenlet/greenlet.c:1124:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
1124 | Py_VISIT(self->exc_state.exc_type);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/objimpl.h:199:13: note: in definition of macro ‘Py_VISIT’
199 | if (op) { \
| ^~
In file included from /home/jm/.pyenv/versions/3.11-dev/include/python3.11/Python.h:44,
from src/greenlet/greenlet.h:8,
from src/greenlet/greenlet.c:11:
src/greenlet/greenlet.c:1124:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
1124 | Py_VISIT(self->exc_state.exc_type);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:107:41: note: in definition of macro ‘_PyObject_CAST’
107 | #define _PyObject_CAST(op) ((PyObject*)(op))
| ^~
src/greenlet/greenlet.c:1124:5: note: in expansion of macro ‘Py_VISIT’
1124 | Py_VISIT(self->exc_state.exc_type);
| ^~~~~~~~
In file included from /home/jm/.pyenv/versions/3.11-dev/include/python3.11/Python.h:45,
from src/greenlet/greenlet.h:8,
from src/greenlet/greenlet.c:11:
src/greenlet/greenlet.c:1126:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
1126 | Py_VISIT(self->exc_state.exc_traceback);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/objimpl.h:199:13: note: in definition of macro ‘Py_VISIT’
199 | if (op) { \
| ^~
In file included from /home/jm/.pyenv/versions/3.11-dev/include/python3.11/Python.h:44,
from src/greenlet/greenlet.h:8,
from src/greenlet/greenlet.c:11:
src/greenlet/greenlet.c:1126:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
1126 | Py_VISIT(self->exc_state.exc_traceback);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:107:41: note: in definition of macro ‘_PyObject_CAST’
107 | #define _PyObject_CAST(op) ((PyObject*)(op))
| ^~
src/greenlet/greenlet.c:1126:5: note: in expansion of macro ‘Py_VISIT’
1126 | Py_VISIT(self->exc_state.exc_traceback);
| ^~~~~~~~
src/greenlet/greenlet.c: In function ‘green_clear’:
src/greenlet/greenlet.c:1162:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
1162 | Py_CLEAR(self->exc_state.exc_type);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:107:41: note: in definition of macro ‘_PyObject_CAST’
107 | #define _PyObject_CAST(op) ((PyObject*)(op))
| ^~
src/greenlet/greenlet.c:1162:5: note: in expansion of macro ‘Py_CLEAR’
1162 | Py_CLEAR(self->exc_state.exc_type);
| ^~~~~~~~
src/greenlet/greenlet.c:1162:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
1162 | Py_CLEAR(self->exc_state.exc_type);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:561:14: note: in definition of macro ‘Py_CLEAR’
561 | (op) = NULL; \
| ^~
src/greenlet/greenlet.c:1164:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
1164 | Py_CLEAR(self->exc_state.exc_traceback);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:107:41: note: in definition of macro ‘_PyObject_CAST’
107 | #define _PyObject_CAST(op) ((PyObject*)(op))
| ^~
src/greenlet/greenlet.c:1164:5: note: in expansion of macro ‘Py_CLEAR’
1164 | Py_CLEAR(self->exc_state.exc_traceback);
| ^~~~~~~~
src/greenlet/greenlet.c:1164:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
1164 | Py_CLEAR(self->exc_state.exc_traceback);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:561:14: note: in definition of macro ‘Py_CLEAR’
561 | (op) = NULL; \
| ^~
src/greenlet/greenlet.c: In function ‘green_dealloc’:
src/greenlet/greenlet.c:1256:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
1256 | Py_CLEAR(self->exc_state.exc_type);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:107:41: note: in definition of macro ‘_PyObject_CAST’
107 | #define _PyObject_CAST(op) ((PyObject*)(op))
| ^~
src/greenlet/greenlet.c:1256:5: note: in expansion of macro ‘Py_CLEAR’
1256 | Py_CLEAR(self->exc_state.exc_type);
| ^~~~~~~~
src/greenlet/greenlet.c:1256:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
1256 | Py_CLEAR(self->exc_state.exc_type);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:561:14: note: in definition of macro ‘Py_CLEAR’
561 | (op) = NULL; \
| ^~
src/greenlet/greenlet.c:1258:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
1258 | Py_CLEAR(self->exc_state.exc_traceback);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:107:41: note: in definition of macro ‘_PyObject_CAST’
107 | #define _PyObject_CAST(op) ((PyObject*)(op))
| ^~
src/greenlet/greenlet.c:1258:5: note: in expansion of macro ‘Py_CLEAR’
1258 | Py_CLEAR(self->exc_state.exc_traceback);
| ^~~~~~~~
src/greenlet/greenlet.c:1258:29: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
1258 | Py_CLEAR(self->exc_state.exc_traceback);
| ^
/home/jm/.pyenv/versions/3.11-dev/include/python3.11/object.h:561:14: note: in definition of macro ‘Py_CLEAR’
561 | (op) = NULL; \
| ^~
src/greenlet/greenlet.c: In function ‘PyGreenlet_New’:
src/greenlet/greenlet.c:1777:15: warning: assignment to ‘int *’ from incompatible pointer type ‘_PyCFrame *’ {aka ‘struct _PyCFrame *’} [-Wincompatible-pointer-types]
1777 | g->cframe = &PyThreadState_GET()->root_cframe;
| ^
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
Version info:
- ubuntu 20.04
- python 3.11-dev
Looks related:
Solution 1:[1]
Looks like there was an issue between versions:
Versions of greenlet prior to 2.0a2 (released yesterday) do not work with Python 3.11a6.
However it also appears that 2.0.a2 of greenlet was released the day after surfacing the issue.
Thanks @jamadden
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | jmunsch |
