Примечания к выпуску NumPy 1.26.1#

NumPy 1.26.1 — это релиз технического обслуживания, который исправляет ошибки и регрессии, обнаруженные после релиза 1.26.0. Кроме того, он добавляет новую функциональность для обнаружения BLAS и LAPACK при сборке из исходного кода. Основные моменты:

  • Улучшенное обнаружение библиотек BLAS и LAPACK для сборок meson

  • Совместимость pickle с предстоящим NumPy 2.0.

Серия выпусков 1.26 — это последняя запланированная минорная серия выпусков перед NumPy 2.0. Версии Python, поддерживаемые этим выпуском: 3.9-3.12.

Изменения в системе сборки#

Улучшенное обнаружение и управление BLAS/LAPACK#

Автоматическое обнаружение ряда BLAS и LAPACK теперь реализовано для Meson. По умолчанию система сборки будет пытаться обнаружить MKL, Accelerate (на macOS >=13.3), OpenBLAS, FlexiBLAS, BLIS и эталонные BLAS/LAPACK. Поддержка MKL была значительно улучшена, а поддержка FlexiBLAS была добавлена.

Доступны новые флаги командной строки для дальнейшего контроля выбора библиотек BLAS и LAPACK для сборки.

Для выбора конкретной библиотеки используйте интерфейс config-settings через pip или pypa/build. Например, чтобы выбрать libblas/liblapack, используйте:

$ pip install numpy -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack
$ # OR
$ python -m build . -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack

Это работает не только для библиотек, указанных выше, но и для любой библиотеки, которую Meson может обнаружить с заданным именем через pkg-config или CMake.

Кроме того -Dblas и -Dlapack, доступен ряд других новых флагов для управления выбором и поведением BLAS/LAPACK:

  • -Dblas-order и -Dlapack-order: список имён библиотек для поиска в порядке, переопределяющем порядок поиска по умолчанию.

  • -Duse-ilp64: если установлено в true, используйте ILP64 (64-битное целое) BLAS и LAPACK. Обратите внимание, что в этом выпуске поддержка ILP64 была расширена для включения MKL и FlexiBLAS. OpenBLAS и Accelerate поддерживались в предыдущих выпусках.

  • -Dallow-noblas: если установлено в true, позволяет NumPy собираться с внутренними (очень медленными) резервными процедурами вместо линковки с внешней библиотекой BLAS/LAPACK. Значение по умолчанию для этого флага может быть изменено на ``true`` в будущем релизе 1.26.x, однако для 1.26.1 мы предпочитаем оставить его как ``false``, потому что если возникают сбои в обнаружении установленной библиотеки, мы хотим получить отчёт об ошибке для этого, чтобы быстро оценить, нужны ли дальнейшие улучшения нового механизма автоопределения.

  • -Dmkl-threading: для выбора слоя потоков для MKL. Есть четыре варианта: seq, iomp, gomp и tbb. По умолчанию auto, который выбирает из этих четырех в зависимости от версии MKL.

  • -Dblas-symbol-suffix: вручную выберите суффикс символа для использования в библиотеке - должно потребоваться только для линковки с библиотеками, собранными нестандартным способом.

Новые возможности#

numpy._core заглушки подмодулей#

numpy._core заглушки подмодулей были добавлены для обеспечения совместимости с сериализованными массивами, созданными с использованием NumPy 2.0, при запуске NumPy 1.26.

Участники#

Всего 13 человек внесли вклад в этот выпуск. Люди со знаком «+» рядом с их именами внесли патч впервые.

  • Andrew Nelson

  • Anton Prosekin +

  • Чарльз Харрис

  • Chongyun Lee +

  • Ivan A. Melnikov +

  • Jake Lishman +

  • Mahder Gebremedhin +

  • Mateusz Sokół

  • Matti Picus

  • Munira Alduraibi +

  • Ralf Gommers

  • Rohit Goswami

  • Sayed Adel

Объединенные pull request'ы#

Всего 20 pull request'ов были объединены для этого релиза.

  • #24742: MAINT: Обновление версии cibuildwheel

  • #24748: MAINT: исправить строку версии в колесах, собранных с помощью setup.py

  • #24771: BLD, BUG: Исправлена ошибка сборки для флагов хоста, например -march=native

  • #24773: DOC: Обновлена документация f2py для удаления примечания о -fimplicit-none

  • #24776: BUG: Исправление теста SIMD f32 trunc на s390x при отсутствии базовой линии

  • #24785: BLD: добавление libquadmath в лицензии и другие исправления (#24753)

  • #24786: MAINT: Активировать use-compute-credits для Cirrus.

  • #24803: BLD: обновлен vendored-meson/meson для исправления mips64

  • #24804: MAINT: исправление пути лицензии в Windows

  • #24813: BUG: Исправлен порядок макросов обнаружения ОС Windows.

  • #24831: BUG, SIMD: использовать скалярное cmul на плохом Apple clang x86_64 (#24828)

  • #24840: BUG: Исправление операторов DATA для f2py

  • #24870: API: Добавить NumpyUnpickler для обратного портирования

  • #24872: MAINT: Xfail тест, который не проходит на PyPy.

  • #24879: BLD: исправление проверок функций математики, исправление сборки FreeBSD, добавление CI…

  • #24899: ENH: meson: реализация автоматического обнаружения BLAS/LAPACK и множество CI…

  • #24902: DOC: добавлен раздел заметок о выпуске 1.26.1 для сборки BLAS/LAPACK…

  • #24906: MAINT: Обратный порт numpy._core заглушки. Удалить NumpyUnpickler

  • #24911: MAINT: Bump pypa/cibuildwheel from 2.16.1 to 2.16.2

  • #24912: BUG: loongarch не использует REAL(10)