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)
Checksums
MD5
bda38de1a047dd9fdddae16c0d9fb358 numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl
196d2e39047da64ab28e177760c95461 numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl
9d25010a7bf50e624d2fed742790afbd numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
9b22fa3d030807f0708007d9c0659f65 numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
eea626b8b930acb4b32302a9e95714f5 numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl
3c40ef068f50d2ac2913c5b9fa1233fa numpy-1.26.1-cp310-cp310-win32.whl
315c251d2f284af25761a37ce6dd4d10 numpy-1.26.1-cp310-cp310-win_amd64.whl
ebdd5046937df50e9f54a6d38c5775dd numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl
682f9beebe8547f205d6cdc8ff96a984 numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl
e86da9b6040ea88b3835c4d8f8578658 numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
ebcb6cf7f64454215e29d8a89829c8e1 numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
a8c89e13dc9a63712104e2fb06fb63a6 numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl
339795930404988dbc664ff4cc72b399 numpy-1.26.1-cp311-cp311-win32.whl
4ef5e1bdd7726c19615843f5ac72e618 numpy-1.26.1-cp311-cp311-win_amd64.whl
3aad6bc72db50e9cc88aa5813e8f35bd numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl
fd62f65ae7798dbda9a3f7af7aa5c8db numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl
104d939e080f1baf0a56aed1de0e79e3 numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
c44b56c96097f910bbec1420abcf3db5 numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1dce230368ae5fc47dd0fe8de8ff771d numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl
d93338e7d60e1d294ca326450e99806b numpy-1.26.1-cp312-cp312-win32.whl
a1832f46521335c1ee4c56dbf12e600b numpy-1.26.1-cp312-cp312-win_amd64.whl
946fbb0b6caca9258985495532d3f9ab numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl
78c2ab13d395d67d90bcd6583a6f61a8 numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl
0a9d80d8b646abf4ffe51fff3e075d10 numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
0229ba8145d4f58500873b540a55d60e numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9179fc57c03260374c86e18867c24463 numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl
246a3103fdbe5d891d7a8aee28875a26 numpy-1.26.1-cp39-cp39-win32.whl
4589dcb7f754fade6ea3946416bee638 numpy-1.26.1-cp39-cp39-win_amd64.whl
3af340d5487a6c045f00fe5eb889957c numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
28aece4f1ceb92ec463aa353d4a91c8b numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
bbd0461a1e31017b05509e9971b3478e numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl
2d770f4c281d405b690c4bcb3dbe99e2 numpy-1.26.1.tar.gz
SHA256
82e871307a6331b5f09efda3c22e03c095d957f04bf6bc1804f30048d0e5e7af numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl
cdd9ec98f0063d93baeb01aad472a1a0840dee302842a2746a7a8e92968f9575 numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl
d78f269e0c4fd365fc2992c00353e4530d274ba68f15e968d8bc3c69ce5f5244 numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
8ab9163ca8aeb7fd32fe93866490654d2f7dda4e61bc6297bf72ce07fdc02f67 numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
78ca54b2f9daffa5f323f34cdf21e1d9779a54073f0018a3094ab907938331a2 numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl
d1cfc92db6af1fd37a7bb58e55c8383b4aa1ba23d012bdbba26b4bcca45ac297 numpy-1.26.1-cp310-cp310-win32.whl
d2984cb6caaf05294b8466966627e80bf6c7afd273279077679cb010acb0e5ab numpy-1.26.1-cp310-cp310-win_amd64.whl
cd7837b2b734ca72959a1caf3309457a318c934abef7a43a14bb984e574bbb9a numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl
1c59c046c31a43310ad0199d6299e59f57a289e22f0f36951ced1c9eac3665b9 numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl
d58e8c51a7cf43090d124d5073bc29ab2755822181fcad978b12e144e5e5a4b3 numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6081aed64714a18c72b168a9276095ef9155dd7888b9e74b5987808f0dd0a974 numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
97e5d6a9f0702c2863aaabf19f0d1b6c2628fbe476438ce0b5ce06e83085064c numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl
b9d45d1dbb9de84894cc50efece5b09939752a2d75aab3a8b0cef6f3a35ecd6b numpy-1.26.1-cp311-cp311-win32.whl
3649d566e2fc067597125428db15d60eb42a4e0897fc48d28cb75dc2e0454e53 numpy-1.26.1-cp311-cp311-win_amd64.whl
1d1bd82d539607951cac963388534da3b7ea0e18b149a53cf883d8f699178c0f numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl
afd5ced4e5a96dac6725daeb5242a35494243f2239244fad10a90ce58b071d24 numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl
a03fb25610ef560a6201ff06df4f8105292ba56e7cdd196ea350d123fc32e24e numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
dcfaf015b79d1f9f9c9fd0731a907407dc3e45769262d657d754c3a028586124 numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e509cbc488c735b43b5ffea175235cec24bbc57b227ef1acc691725beb230d1c numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl
af22f3d8e228d84d1c0c44c1fbdeb80f97a15a0abe4f080960393a00db733b66 numpy-1.26.1-cp312-cp312-win32.whl
9f42284ebf91bdf32fafac29d29d4c07e5e9d1af862ea73686581773ef9e73a7 numpy-1.26.1-cp312-cp312-win_amd64.whl
bb894accfd16b867d8643fc2ba6c8617c78ba2828051e9a69511644ce86ce83e numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl
e44ccb93f30c75dfc0c3aa3ce38f33486a75ec9abadabd4e59f114994a9c4617 numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl
9696aa2e35cc41e398a6d42d147cf326f8f9d81befcb399bc1ed7ffea339b64e numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
a5b411040beead47a228bde3b2241100454a6abde9df139ed087bd73fc0a4908 numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1e11668d6f756ca5ef534b5be8653d16c5352cbb210a5c2a79ff288e937010d5 numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl
d1d2c6b7dd618c41e202c59c1413ef9b2c8e8a15f5039e344af64195459e3104 numpy-1.26.1-cp39-cp39-win32.whl
59227c981d43425ca5e5c01094d59eb14e8772ce6975d4b2fc1e106a833d5ae2 numpy-1.26.1-cp39-cp39-win_amd64.whl
06934e1a22c54636a059215d6da99e23286424f316fddd979f5071093b648668 numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
76ff661a867d9272cd2a99eed002470f46dbe0943a5ffd140f49be84f68ffc42 numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
6965888d65d2848e8768824ca8288db0a81263c1efccec881cb35a0d805fcd2f numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl
c8c6c72d4a9f831f328efb1312642a1cafafaa88981d9ab76368d50d07d93cbe numpy-1.26.1.tar.gz