-
Notifications
You must be signed in to change notification settings - Fork 47
SciPy v1.16.0 #141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
SciPy v1.16.0 #141
Conversation
Package Build ResultsTotal packages built: 33 Package Build Times (click to expand)
Longest build: scipy (9m 34s) |
Hi @rgommers, I experimented a bit with the f2py generator definition code to make Either way, it's not a blocker here, so this PR is ready for review. Thanks! |
packages/scipy/patches/0007-MAINT-linalg-Remove-id_dist-Fortran-files.patch
Show resolved
Hide resolved
All the errors in the test suite are coming from |
suggests that the symbol does exist:
and from the
And from the
So Perhaps I missed patching a |
Thanks for the investigation, @agriyakhetarpal. The error happens while loading the library,
Because of the error during the loading step, the symbols will not be filled out in the GOT table. That's why the
error happens. So I think we'll need to investigate why the library loading fails in the test (It ddidn't fail when I tried to load scipy locally in my browser). To see a more helpful error log, try with a debug build of Pyodide, which is available by passing the following flag |
Thanks, @ryanking13! I wonder if we could also release an |
But I think this error only happens in the |
Sounds good to me. Would you like to update https://github.com/pyodide/pyodide-build-environment-nightly to support that feature? |
Oh, actually, another test in TestBSplines (when I was running the test suite locally) was hanging for the same reason (when I skipped this test to allow the test suite to proceed), so I think it must be related to
Yes, I'll put together a PR! |
Meanwhile, I ran the hanging test locally and was able to reproduce it in my browser:
The
|
Thanks! Yes, there might be a few more broken libraries besides Perhaps we could test individual test modules ( |
With the new debug xbuildenv from https://github.com/pyodide/pyodide-build-environment-nightly/releases/tag/20250703 that we added, I can see this when I try to run a reproducer: Tap to expand logs
When I check the output from
Update: 20250601 has the same issue, unfortunately. |
In the meantime, I pushed a commit to build from 20250703-debug so that we can both have artifacts to examine. |
Also, may I ask how you are testing SciPy in your browser? When I copy the Pyodide runtime using the provided script and copy the OpenBLAS libs and other libs from the |
For If you are using the browser, copying the pyodide runtime to the dist directory containing the packages, and running the server in that directory will work (similar to how we do in our CI) |
Yes, it hangs at |
@ryanking13 thanks for handling the NumPy version conflicts for Pyodide 0.29. I think this was inadvertently closed due to the "fix #141" string in the PR description 😅 Reopening it. |
oops... thanks 😅 |
Just a heads up; PROPACK Fortran77 code is translated to C scipy/scipy#23531 (due SciPy version 1.17) so it might make things easier, hopefully that is. For the remaining F77 crust (ODEPACK, FITPACK and BLAS/LAPACK wrappers), I am really hoping that it will be completed in SciPy version 1.18 so I can get my life back 😅 (but realistically it will be 1.19 I guess). |
🚀 @ilayn 🎉
I'll note that Evgeni and Gagan are making a good dent in FITPACK at the moment, and BLAS/LAPACK wrappers aren't actually in Fortran so shouldn't matter for the purposes of Pyodide - hence I have some hope for the more optimistic timeline 🤞🏼 |
@ilayn That's really good news! Thanks for sharing. Is there a planned timeline for the scipy 1.17 release? |
Description
This PR bumps SciPy to version 1.16.0, released on 22nd June, 2025: https://github.com/scipy/scipy/releases/tag/v1.16.0. Here are a few points:
id_dist
has been dropped, and a patch for ARPACK based on the C port ENH:MAINT: sparse.linalg: rewrite ARPACK in C scipy/scipy#22748 has been introduced.linalg.expm
,id_dist
, and other Fortran codes that are not listed here; please view META: FORTRAN Code inventory scipy/scipy#18566 for more.f2py
entry point directly via Meson generators remains, and we have to resort to usingpython -m numpy.f2py
and custom targets until Stop excluding unisolated packages from build dependencies pyodide-build#21 is resolved.void
s are transformed toint
s in the code for the ARPACK, the_matfuncs
family, FITPACK, SLSQP, NNLS, and the L-BFGS-B extension modules.id_dist
patch,scipy-pytest.js
, but the tests always hang on my macOS machine locally at the ~14-15% stage at various points, despite skipping many of them. I suggest that we leave the extra testing for another PR, as the necessary infrastructure to get those tests up and running is a follow-up task that I'd be happy to assign myself to.Tip
This PR depends on https://github.com/pyodide/pyodide-recipes#140, which, at the time of writing, contains a patch that allows compilation to proceed to completion and succeed. That PR also depends on another PR (pyodide/pyodide-build#168).Please review those PRs first (starting with the latter) before coming back to this one, as this will reduce the diff to the relevant files. Thank you!PR stack
Please review the following PRs in the order listed below:
-headerpad_max_install_names
and-dead_strip_dylibs
forwasm-ld
pyodide-build#168__Pyx_IsSameCFunction
pyodide-build#213pyodide-build
repository as a submodule #140Additional context
SciPy was previously updated in pyodide/pyodide#5031 to version 1.14.1.
Follow-up tasks after this PR:
numpy-tests
(backport of pyodide/pyodide-recipes#86) pyodide#5715unvendor-tests: true
and use-Cinstall-args=--tags=runtime,python-runtime,devel
Tagging the recipe maintainers and our previous collaborators here, like I've done in the past: @lesteve, @steppi, and @rgommers
Thank you for your time!