Conversation
|
The problem seems to be that it expects LAPACK to have a function called |
|
Okay the problem here is related to incompatibilities between LAPACK versions. It is a bit hard to tell but it seems like |
|
To find exports from wasm-objdump clapack_all.so -d | sed -n 's/.*func.*<\(.*\)>:/\1/p' | sort -u > clapack_exports.txtTo find what scipy tries to import from clapack: ~/wabt-1.0.24/bin/wasm-objdump _flapack.so -d | sed -E -n 's/.*global.get [0-9]* <([a-z]*_?)>/\1/p' | sort -u > symbols.txtthere are two unrelated symbols in this second list. Anyways, I take the difference of these two sets and find the missing LAPACK functions: These can be copied from the LAPACK tree into our source tree and then I append them to the end of |
|
Build succeeded and tests pass: but |
|
Okay, all tests pass now! |
Perfect, thanks again for working on this! +1 for merging once CI pass. It's strange that it was only failing in Chrome. |
Yeah it's very strange. And only in chrome in CI. By rerunning with ssh, I was able to replicate it and read the selenium logs which gave clear diagnostic information. I was able to replicate the bug in Firefox on the CI server via ssh with just the right setup, but it was generally very sensitive to tiny changes. |
|
Also, it would be great if we could run the full test suite for scipy once in a while. |
|
There's a pretty significant number of fatal errors and test failures in the test suite. Currently it makes it about 20% through the test suite before hitting a fatal error. I'm running it with the following code: pyodide._module.packages["scipy-tests"] = {"name":"scipy-tests","version":"0.17.1","depends":["scipy"],"imports":[]}
await pyodide.loadPackage(["scipy-tests", "nose","pytest"]);
pyodide.runPython(`
from scipy import test
test(extra_argv=["--continue-on-collection-errors", "-k", "not multithreading and not TestNQuad", '-vv'])
`);Currently I am running into trouble that Perhaps it would be a good idea to merge this and fix more of these problems in followup PRs. |
That's already better than on main, where I think there is a fatal error after 3% of the test suite. So what I had to do back in 2018 to work around it was to run submodules one by one, e.g. though it's very time-consuming to exclude the few tests that produce a fatal error. An ideal situation would have been to have something like pytest-xdist that runs tests in a webworker pytest-dev/pytest-xdist#336 so that if there is a fatal error in a worker, it can mark the test as crashed, spawn a new worker and continue on. But well, that's another side project ) Something like this would be necessary to reliably run the test suite in CI until the end as well. #69
What was the test success rate roughly for those 20% ?
That's worrisome. Do you have the pytest logs -- in which submodules does this happen?
I agree there are already many things in this PR and it would be better to work on the test suite in a follow-up PR. The question is should we include it in the 0.19 release or not. If we do, at least the release notes should mention that scipy still has a number of known issues. |
So far I fixed the fatal errors in
|
I think it's good to include in the 0.19 release, especially if the old test suite had a similar number of failures. We could release fixes in 0.19.1 for instance. |
| - {{ Enhancement }} Upgraded scikit-learn to version 1.0.2 | ||
| {pr}`2065` | ||
|
|
||
| - {{ Enhancement }} Added threadpoolctl (a dependency of scikit-learn) |
There was a problem hiding this comment.
There is a "New packages" list below where this could be added.
|
Merging, as I would like to see if we can update scikit-image with this #2005. For the changelog, we would need to review it in any case before the release. Thanks. |
Resolves #549.