.. currentmodule:: 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)