-
-
Notifications
You must be signed in to change notification settings - Fork 776
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
Update to emscripten 3.1.6 #2672
Conversation
Frequently when updating Python or Emscripten, a handlful of packages stop working. Because of the way that the CI works, these prevent other packages from being built or tested. However, packages with many dependents are currently annoying to disable. This adds a key to meta.yaml "disable: true" that turns off a package. I also fixed the "!package" and no-numpy-dependents to be transitive. We use graphlib to sort the packages topologically, then we traverse the packages once in build order to locate all the packages which transitively depend on disabled packages. Then we traverse in reverse build order to locate all packages that are dependencies of non-disabled requested packages.
@bmaranville I'm getting the following errors from HDF5 at import time. Any idea what it means? Details
|
I've been told that the 1.13.x branches of libhdf5 are experimental and probably shouldn't be used for production builds. Try building the 1.12.1 version instead - the only reason we didn't use that version originally was (ironically) because it didn't properly compile with the old emscripten version being used before (2.0.17 or something). It compiles just fine with the newer emscripten versions. diff --git a/packages/h5py/meta.yaml b/packages/h5py/meta.yaml
index c113b082..d761b4d7 100644
--- a/packages/h5py/meta.yaml
+++ b/packages/h5py/meta.yaml
@@ -23,4 +23,4 @@ build:
script: |
export HDF5_MPI=OFF
export H5PY_SETUP_REQUIRES="0"
- export HDF5_VERSION=1.13.1
+ export HDF5_VERSION=1.12.1
diff --git a/packages/h5py/patches/configure.patch b/packages/h5py/patches/configure.patch
index 7afbadc0..fce2e142 100644
--- a/packages/h5py/patches/configure.patch
+++ b/packages/h5py/patches/configure.patch
@@ -32,7 +32,7 @@ index 16c355b..85a4f90 100644
- raise
- return int(major.value), int(minor.value), int(release.value)
-+ return (1, 13, 1)
++ return (1, 12, 1)
def load_function(self, func_name):
try:
diff --git a/packages/libhdf5/meta.yaml b/packages/libhdf5/meta.yaml
index 2eab0bf2..c21be265 100644
--- a/packages/libhdf5/meta.yaml
+++ b/packages/libhdf5/meta.yaml
@@ -1,10 +1,10 @@
package:
name: libhdf5
- version: 1.13.1
+ version: 1.12.1
source:
- sha256: 92552458f35c7e58128ce1bfc2831abf901cc142ea0fdd2b056311e4452db7bf
- url: https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5-1_13_1.tar.gz
+ sha256: e6dde173c2d243551922d23a0387a79961205b018502e6a742acb30b61bc2d5f
+ url: https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5-1_12_1.tar.gz |
"I've been told that the 1.13.x branches of libhdf5 are experimental and probably shouldn't be used for production builds. Try building the 1.12.1 version instead - the only reason we didn't use that version originally was (ironically) because it didn't properly compile with the old emscripten version being used before (2.0.17 or something). It compiles just fine with the newer emscripten versions."
Thanks! |
Well v1.12.1 currently fails on import with a stack overflow. |
That's not good - I tried to build locally to see what was going on but something that changed in pyodide-build is making my local build environment not work anymore...
|
I think you need to |
I don't have symbols for h5py but the stack trace is: RangeError: Maximum call stack size exceeded
at __memcpy (emscripten_memcpy.c:29)
at __fwritex (fwrite.c:23)
at out (vfprintf.c:179)
at printf_core (vfprintf.c:513)
at __vfprintf_internal (vfprintf.c:739)
at vfprintf (vfprintf.c:756)
at vsnprintf (vsnprintf.c:54)
at vasprintf (vasprintf.c:10)
at 00cc9e02:0xc362a
at 00cc9e02:0x84c68 Most likely |
I can't build with the version in this PR and a virtualenv in Ubuntu...
EDIT: in a clean miniconda environment, I seem to be able to build it. I will use that. |
That's a weird error message. For some reason sysconfig is trying to import the file it is in the process of generating. |
So I can build in miniconda, but when I load up dist/console.html in my browser to test, it just spins forever. loadPyodide never seems to return. How are you loading pyodide for manual testing? |
Sounds like you are doing the right thing and your build is still screwed up for some reason. Have you tried building in the docker image? |
The result of
|
You need |
@rth @ryanking13 I think this is ready for review. We can reenable h5py in a subsequent pr after merging this and #2679. |
Yeah, I would say having the latest emscripten is more impactful for other PRs than having the rust build. So +1 to revert #2378 for now and merge your emscripten update PRs first. |
Will do that once this is approved. |
Actually rather than reverting I'll just disable cryptography here. I think this will lead to a more helpful git history. The rust-crypto pr was already a bit fat. And I think I know how to fix it in a follow up pr. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you can make the CI pass without reverting that works.
Code wise LGTM. Thanks again for doing this maintanance work!
Issues:
_Py_DumpTraceback
went missing