Mysterious issue to build pyFFTW with Numpy 2.0 on Windows

Hi, We have a strange issue with building pyFFTW with Numpy 2.0 on Windows. I observed it before when a build in the CI tried to use Numpy 2.0. The solution was to pin the Numpy version used for the build to <2.0. However, now I'm trying in this PR (https://github.com/pyFFTW/pyFFTW/pull/383) to make pyFFTW compatible with Numpy 2.0. With few simple changes, it works well on Linux and Macosx but not on Windows. The meaningful part of the log seems to be: INFO:root:"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DPYFFTW_HAVE_DOUBLE=1 -DPYFFTW_HAVE_DOUBLE_OMP=0 -DPYFFTW_HAVE_DOUBLE_THREADS=1 -DPYFFTW_HAVE_DOUBLE_MULTITHREADING=1 -DPYFFTW_HAVE_DOUBLE_MPI=0 -DPYFFTW_HAVE_SINGLE=1 -DPYFFTW_HAVE_SINGLE_OMP=0 -DPYFFTW_HAVE_SINGLE_THREADS=1 -DPYFFTW_HAVE_SINGLE_MULTITHREADING=1 -DPYFFTW_HAVE_SINGLE_MPI=0 -DPYFFTW_HAVE_LONG=1 -DPYFFTW_HAVE_LONG_OMP=0 -DPYFFTW_HAVE_LONG_THREADS=1 -DPYFFTW_HAVE_LONG_MULTITHREADING=1 -DPYFFTW_HAVE_LONG_MPI=0 -DPYFFTW_HAVE_MPI=0 -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -ID:\a\pyFFTW\pyFFTW\include -ID:\a\pyFFTW\pyFFTW\pyfftw -IC:\Users\runneradmin\AppData\Local\Temp\pip-build-env-zhyzy1bf\overlay\Lib\site-packages\numpy\_core\include -IC:\Users\runneradmin\AppData\Local\Temp\cibw-run-g1feworz\cp310-win_amd64\build\venv\include -ID:\a\pyFFTW\pyFFTW\include\win -IC:\Users\runneradmin\AppData\Local\Temp\cibw-run-g1feworz\cp310-win_amd64\build\venv\include -IC:\Users\runneradmin\AppData\Local\pypa\cibuildwheel\Cache\nuget-cpython\python.3.10.11\tools\include -IC:\Users\runneradmin\AppData\Local\pypa\cibuildwheel\Cache\nuget-cpython\python.3.10.11\tools\Include -IC:\Users\runneradmin\AppData\Local\Temp\cibw-run-g1feworz\cp310-win_amd64\build\venv\include -IC:\Users\runneradmin\AppData\Local\pypa\cibuildwheel\Cache\nuget-cpython\python.3.10.11\tools\include -IC:\Users\runneradmin\AppData\Local\pypa\cibuildwheel\Cache\nuget-cpython\python.3.10.11\tools\Include "-IC:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\ATLMFC\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\ATLMFC\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /Tcpyfftw\pyfftw.c /Fobuild\temp.win-amd64-cpython-310\Release\pyfftw\pyfftw.obj pyfftw.c D:\a\pyFFTW\pyFFTW\pyfftw\fftw3.h(358): error C2061: syntax error: identifier 'fftw_complex' D:\a\pyFFTW\pyFFTW\pyfftw\fftw3.h(358): error C2059: syntax error: ';' D:\a\pyFFTW\pyFFTW\pyfftw\fftw3.h(358): error C2143: syntax error: missing ')' before '*' D:\a\pyFFTW\pyFFTW\pyfftw\fftw3.h(358): error C2081: 'fftw_complex': name in formal parameter list illegal D:\a\pyFFTW\pyFFTW\pyfftw\fftw3.h(358): error C2143: syntax error: missing '{' before '*' D:\a\pyFFTW\pyFFTW\pyfftw\fftw3.h(358): error C2143: syntax error: missing ';' before '*' D:\a\pyFFTW\pyFFTW\pyfftw\fftw3.h(358): error C2059: syntax error: 'type' D:\a\pyFFTW\pyFFTW\pyfftw\fftw3.h(358): error C2059: syntax error: ')' D:\a\pyFFTW\pyFFTW\pyfftw\fftw3.h(358): fatal error C1003: error count exceeds 100; stopping compilation error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.40.33807\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2 I don't understand how Numpy 2.0 can lead to such error. But people in this list might be able to give good explanations and advice (?) Pierre -- Pierre Augier - CR CNRS http://www.legi.grenoble-inp.fr LEGI (UMR 5519) Laboratoire des Ecoulements Geophysiques et Industriels BP53, 38041 Grenoble Cedex, France tel:+33.4.56.52.86.16
participants (2)
-
PIERRE AUGIER
-
Sebastian Berg