@ai-ecoverse/py-numpy
NumPy 2.5.4 for slicc WASIX CPython 3.15 (cp315-wasix_wasm32 side modules). Since the Python 3.15 flip (homescoop#761) this is latest; the cp314 builds stay on npm by exact version (release notes).
- Build: in homescoop's CI from the PyPI sdist, with Cython 3.3.0 and numpy's vendored meson, using wasixcc PIC side modules (
sysroot-ehpic, wasix-sysroot 2025.9.30-38). The C++ headers are the sysroot's. - OpenBLAS:
@ai-ecoverse/wasix-openblas0.3.34-1, linked statically into_multiarray_umath,_umath_linalgandlapack_lite(OpenBLAS with its C LAPACK, single-threaded). Since 2.5.4-3; before, a 0.3.28 build inside this package. - Python range:
>=3.15.0-1 <3.15.1. numpy.linalg: raisesLinAlgErrorfor a failed factorisation (homescoop#1082).- Commands:
numpy-config(--version,--cflags) andf2pyare on PATH, as launchers for numpy's console scripts (homescoop#1405). f2py can't build an extension in slicc, since there is no Fortran compiler. - Notices:
THIRD-PARTY-NOTICES.mdcarries OpenBLAS's, LAPACK's and GotoBLAS2's licences and those of the code numpy vendors (libdivide, pocketfft, Highway, thenumpy.randomgenerators).
On wasm32
- The default integer is int32 (homescoop#1093). wasm32 is a 32-bit platform, so
np.intpis 4 bytes andnp.arange(3)ornp.array([1])areint32(desktop:int64). Their sums wrap at 2**31, and a CSV round trip in pandas comes back asint64. Passdtype=np.int64where it matters. - No floating-point error reporting (homescoop#1081). WebAssembly has no FP status flags, so
1.0/0,np.sqrt(-1)and overflows give the rightinf/nanbut noRuntimeWarning, andnp.errstate(all="raise")doesn't raiseFloatingPointError.np.linalgstill raisesLinAlgError.