1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
.. 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 <https://github.com/numpy/numpy/pull/24742>`__: MAINT: Update cibuildwheel version
* `#24748 <https://github.com/numpy/numpy/pull/24748>`__: MAINT: fix version string in wheels built with setup.py
* `#24771 <https://github.com/numpy/numpy/pull/24771>`__: BLD, BUG: Fix build failure for host flags e.g. ``-march=native``...
* `#24773 <https://github.com/numpy/numpy/pull/24773>`__: DOC: Updated the f2py docs to remove a note on -fimplicit-none
* `#24776 <https://github.com/numpy/numpy/pull/24776>`__: BUG: Fix SIMD f32 trunc test on s390x when baseline is none
* `#24785 <https://github.com/numpy/numpy/pull/24785>`__: BLD: add libquadmath to licences and other tweaks (#24753)
* `#24786 <https://github.com/numpy/numpy/pull/24786>`__: MAINT: Activate ``use-compute-credits`` for Cirrus.
* `#24803 <https://github.com/numpy/numpy/pull/24803>`__: BLD: updated vendored-meson/meson for mips64 fix
* `#24804 <https://github.com/numpy/numpy/pull/24804>`__: MAINT: fix licence path win
* `#24813 <https://github.com/numpy/numpy/pull/24813>`__: BUG: Fix order of Windows OS detection macros.
* `#24831 <https://github.com/numpy/numpy/pull/24831>`__: BUG, SIMD: use scalar cmul on bad Apple clang x86_64 (#24828)
* `#24840 <https://github.com/numpy/numpy/pull/24840>`__: BUG: Fix DATA statements for f2py
* `#24870 <https://github.com/numpy/numpy/pull/24870>`__: API: Add ``NumpyUnpickler`` for backporting
* `#24872 <https://github.com/numpy/numpy/pull/24872>`__: MAINT: Xfail test failing on PyPy.
* `#24879 <https://github.com/numpy/numpy/pull/24879>`__: BLD: fix math func feature checks, fix FreeBSD build, add CI...
* `#24899 <https://github.com/numpy/numpy/pull/24899>`__: ENH: meson: implement BLAS/LAPACK auto-detection and many CI...
* `#24902 <https://github.com/numpy/numpy/pull/24902>`__: DOC: add a 1.26.1 release notes section for BLAS/LAPACK build...
* `#24906 <https://github.com/numpy/numpy/pull/24906>`__: MAINT: Backport ``numpy._core`` stubs. Remove ``NumpyUnpickler``
* `#24911 <https://github.com/numpy/numpy/pull/24911>`__: MAINT: Bump pypa/cibuildwheel from 2.16.1 to 2.16.2
* `#24912 <https://github.com/numpy/numpy/pull/24912>`__: BUG: loongarch doesn't use REAL(10)
|