DedalusProject / dedalus

A flexible framework for solving PDEs with modern spectral methods.
http://dedalus-project.org/
GNU General Public License v3.0
489 stars 115 forks source link

v2 master doesn not compile with cython >=3.0 #268

Closed simonkneer closed 8 months ago

simonkneer commented 1 year ago

I needed to reinstall v2 today but ran into some issues. Turns out that it doesn't compile with cython>= 3.0. I suggest you edit pyproject.toml to:

[build-system] requires = ["cython >= 0.22", "cython < 3.0", "mpi4py >= 2.0.0", "numpy >= 1.20.0", "setuptools", "wheel"]

aproeme commented 10 months ago

Don't know if this is the same issue, but I had to change the cython requirement to specifically be less than 3.0.4:

"cython >= 0.22,<3.0.4"

in order to avoid the following error when Cython compiling:

dedalus/core/transposes.pyx:300:26: Compiler crash in AnalyseExpressionsTransform:
.
.
.
File /Cython/Compiler/ExprNodes.py", line 4968, in analyse_types
  performance_hint(index.pos, "Index should be typed for more efficient access")
  TypeError: performance_hint() missing 1 required positional argument: 'env'

It looks like the 3.0.4 commit introduced the requirement to pass 'env' to performance_hint():

https://github.com/cython/cython/commit/1b2b8a222700401160929f19c96e9d9ecbc43c2d

kburns commented 8 months ago

This should be fixed with newer releases of cython.