Cython-generated `Scan` code is invalid for Python 3.11
brandonwillard opened this issue · comments
Brandon T. Willard commented
Discussed in #1445
Originally posted by mgorny February 20, 2023
Is Python 3.11 supported by aesara? It seems to be listed in its trove classifier list but when I run the test suite against 3.11, I get 139 test failures. Looking at a few of them, they seem to be caused by some C-level incompatibility, e.g.:
E /tmp/portage/dev-python/aesara-2.8.11/homedir/.aesara/compiledir_140467563507264/scan_perform/mod.cpp: In function ‘void __Pyx_AddTraceback(const char*, int, int, const char*)’:
E /tmp/portage/dev-python/aesara-2.8.11/homedir/.aesara/compiledir_140467563507264/scan_perform/mod.cpp:438:62: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
E 438 | #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno)
E | ^~
E /tmp/portage/dev-python/aesara-2.8.11/homedir/.aesara/compiledir_140467563507264/scan_perform/mod.cpp:26021:5: note: in expansion of macro ‘__Pyx_PyFrame_SetLineNumber’
E 26021 | __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
E | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
E In file included from /usr/include/python3.11/Python.h:42:
E /usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’}
E 22 | typedef struct _frame PyFrameObject;
E | ^~~~~~
I could try providing more details but the build log is 1.1G of size.