Skip to content

Latest commit

 

History

History
123 lines (96 loc) · 5.81 KB

1.26.1-notes.rst

File metadata and controls

123 lines (96 loc) · 5.81 KB

numpy

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 to true, 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 to true, 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 and tbb. The default is auto, 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. Remove NumpyUnpickler
  • #24911: MAINT: Bump pypa/cibuildwheel from 2.16.1 to 2.16.2
  • #24912: BUG: loongarch doesn't use REAL(10)