All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added support for free-threaded (GIL-disabled) CPython builds: the Cython extension is compiled with
freethreading_compatible=Trueand_ufuncsdeclaresPy_MOD_GIL_NOT_USED, so importingmkl_umathno longer re-enables the GIL gh-255
- Raised the minimum build-time
Cythonrequirement to3.1.0, the first release providing thefreethreading_compatibledirective gh-255 - Pinned Cython in the Coverity Scan workflow so generated code stays stable between scans, and added
coverity/README.mddocumenting the known Cython-boilerplate false positives and the scan review checklist gh-266
- Fixed an over-decref of the borrowed module dictionary reference on the module initialization error path gh-264
- Fixed a leak of the module object when the NumPy C-API import fails during module initialization gh-263
- Removed the
python-gilconstraint from the conda recipes, which pinnedmkl_umathto GIL-enabled Python 3.14 builds gh-255
- Added CLI patch management for NumPy umath with persistent install/status/uninstall and one-shot command patching via
python -m mkl_umath --patch <command>andpython -m mkl_umath --with-numpy-patch <command>gh-216
- Removed
numpy-basedependency andUSE_NUMPY_BASEenvironment variable from conda recipe gh-200 - Migrated the build system from
scikit-buildtomeson-python, removingsetup.pyandCMakeLists.txtin favor ofmeson.buildgh-166 - Renamed the
OPTIMIZATION_REPORTandMKL_THREADINGbuild options toopt_reportandmkl_threading, now passed as meson setup args (e.g.-Csetup-args=-Dopt_report=trueand-Csetup-args=-Dmkl_threading=tbb_thread) gh-166
- Updated
mkl_umathpatching to work with changes to NumPy Cython API present in NumPy 2.5 gh-226
- Added build option to set
MKL_THREADINGin CMake gh-217
- Removed
mklas runtime dependency to avoid possiblepip checkfailures gh-202
- Added
patch_numpy_umathandrestore_numpy_umathfunctions for patching NumPy, and improved the patching implementation gh-170
- Import ufuncs explicitly in
__init__.pyand add__all__to module gh-177 - Made conda recipe dependency on numpy configurable through
USE_NUMPY_BASEenvironment variable gh-181 - Removed
mkl-serviceas a dependency in favor ofmkl, asmkl-serviceis not used inmkl_umathdirectly gh-188
- Build with ICX compiler from 2026.0 release gh-155
mkl_umathnow usesintel_threadfor MKL threading to fix transient crashes during Python teardown when used in an environment with PyPI NumPy gh-171
- Deprecated
use_in_numpyandrestorepatching functions, to be removed in a future version. Usingpatch_numpy_umathandrestore_numpy_umathis recommended instead gh-170
- Dropped support for Python 3.9 gh-125
- Enabled support of Python 3.14 gh-119
- Added mkl implementation for floating point data-types of
exp2,log2,fabs,copysign,nextafter,fmax,fminandremainderfunctions gh-81 - Added mkl implementation for complex data-types of
conjugateandabsolutefunctions gh-86 - Enabled support of Python 3.13 gh-101
- Added mkl implementation for complex data-types of
add,subtract,multiplyanddividefunctions gh-102
- Dropped support for
maximumandminimumgh-104 - Disabled
-fast-mathby default gh-105 - Used a common umath loop for
log2function to match NumPy gh-109 - Dropped support for
remainderfunction gh-110
This release updates mkl_umath to be aligned with both numpy-1.26.x and numpy-2.x.x.
- The definition of
signfunction for complex floating point data types is updated to match numpy-2.x.x gh-65 ldexpfunction is updated to allowint64explicitly similar to numpy-2.x.x behavior gh-73
- Migrated from
setup.pytopyproject tomlgh-63 - Changed to dynamic linking and added interface and threading layers gh-72
- Fixed a bug for
mkl_umath.is_patchedfunction gh-66
- Fixed failures to import
mkl_umathfrom virtual environment on Linux
- Added support for
mkl_umathout-of-the-box in virtual environments on Windows
- Fixed a bug in in-place addition with negative zeros
- Added support for building with NumPy 2.0 and older
- Updated build system from removed NumPy distutils to scikit-build, gain ability to build with Intel LLVM compiler ICX