aesara-devs / aesara

Aesara is a Python library for defining, optimizing, and efficiently evaluating mathematical expressions involving multi-dimensional arrays.

Home Page:https://aesara.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cython-generated `Scan` code is invalid for Python 3.11

brandonwillard opened this issue · comments

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.