NumPy 1.26.1 Release Notes#
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.
Build system changes#
Improved BLAS/LAPACK detection and control#
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.
New features#
numpy._core
submodule stubs#
numpy._core
submodule stubs were added to provide compatibility with
pickled arrays created using NumPy 2.0 when running Numpy 1.26.
Contributors#
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
Pull requests merged#
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)