numpy
NumPy 1.26.1 is a maintenance release that fixes bugs and regressions discovered after the 1.26.0 release. In addition, it adds new functionality for detecting BLAS and LAPACK when building from source. Highlights are:
- Improved detection of BLAS and LAPACK libraries for meson builds
- Pickle compatibility with the upcoming NumPy 2.0.
The 1.26.release series is the last planned minor release series before NumPy 2.0. The Python versions supported by this release are 3.9-3.12.
Auto-detection for a number of BLAS and LAPACK is now implemented for Meson. By default, the build system will try to detect MKL, Accelerate (on macOS >=13.3), OpenBLAS, FlexiBLAS, BLIS and reference BLAS/LAPACK. Support for MKL was significantly improved, and support for FlexiBLAS was added.
New command-line flags are available to further control the selection of the BLAS and LAPACK libraries to build against.
To select a specific library, use the config-settings interface via pip
or pypa/build
. E.g., to select libblas
/liblapack
, use:
$ pip install numpy -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack
$ # OR
$ python -m build . -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack
This works not only for the libraries named above, but for any library that Meson is able to detect with the given name through pkg-config
or CMake.
Besides -Dblas
and -Dlapack
, a number of other new flags are available to control BLAS/LAPACK selection and behavior:
-Dblas-order
and-Dlapack-order
: a list of library names to search for in order, overriding the default search order.-Duse-ilp64
: if set totrue
, use ILP64 (64-bit integer) BLAS and LAPACK. Note that with this release, ILP64 support has been extended to include MKL and FlexiBLAS. OpenBLAS and Accelerate were supported in previous releases.-Dallow-noblas
: if set totrue
, allow NumPy to build with its internal (very slow) fallback routines instead of linking against an external BLAS/LAPACK library. The default for this flag may be changed to ``true`` in a future 1.26.x release, however for 1.26.1 we'd prefer to keep it as ``false`` because if failures to detect an installed library are happening, we'd like a bug report for that, so we can quickly assess whether the new auto-detection machinery needs further improvements.-Dmkl-threading
: to select the threading layer for MKL. There are four options:seq
,iomp
,gomp
andtbb
. The default isauto
, which selects from those four as appropriate given the version of MKL selected.-Dblas-symbol-suffix
: manually select the symbol suffix to use for the library - should only be needed for linking against libraries built in a non-standard way.
numpy._core
submodule stubs were added to provide compatibility with pickled arrays created using NumPy 2.0 when running Numpy 1.26.
A total of 13 people contributed to this release. People with a "+" by their names contributed a patch for the first time.
- Andrew Nelson
- Anton Prosekin +
- Charles Harris
- Chongyun Lee +
- Ivan A. Melnikov +
- Jake Lishman +
- Mahder Gebremedhin +
- Mateusz Sokół
- Matti Picus
- Munira Alduraibi +
- Ralf Gommers
- Rohit Goswami
- Sayed Adel
A total of 20 pull requests were merged for this release.
- #24742: MAINT: Update cibuildwheel version
- #24748: MAINT: fix version string in wheels built with setup.py
- #24771: BLD, BUG: Fix build failure for host flags e.g.
-march=native
... - #24773: DOC: Updated the f2py docs to remove a note on -fimplicit-none
- #24776: BUG: Fix SIMD f32 trunc test on s390x when baseline is none
- #24785: BLD: add libquadmath to licences and other tweaks (#24753)
- #24786: MAINT: Activate
use-compute-credits
for Cirrus. - #24803: BLD: updated vendored-meson/meson for mips64 fix
- #24804: MAINT: fix licence path win
- #24813: BUG: Fix order of Windows OS detection macros.
- #24831: BUG, SIMD: use scalar cmul on bad Apple clang x86_64 (#24828)
- #24840: BUG: Fix DATA statements for f2py
- #24870: API: Add
NumpyUnpickler
for backporting - #24872: MAINT: Xfail test failing on PyPy.
- #24879: BLD: fix math func feature checks, fix FreeBSD build, add CI...
- #24899: ENH: meson: implement BLAS/LAPACK auto-detection and many CI...
- #24902: DOC: add a 1.26.1 release notes section for BLAS/LAPACK build...
- #24906: MAINT: Backport
numpy._core
stubs. RemoveNumpyUnpickler
- #24911: MAINT: Bump pypa/cibuildwheel from 2.16.1 to 2.16.2
- #24912: BUG: loongarch doesn't use REAL(10)