Version 0.68.1 (26 October 2026)
This is a patch release of Numba that fixes two performance regressions
(np.sum and fancy indexing), aligns the accumulator dtypes of
reductions with NumPy, and fixes caching of functions
imported from a zip archive on Windows.
Performance Improvements and Changes
np.sum performance regression from ArrayIterator
np.sum performance was regressed when ArrayIterator was adopted. The
innermost loop now uses a static stride constant, which restores vectorization,
and order='K' iteration over Fortran-layout arrays proceeds in reverse so
the innermost loop does less work.
Remove the per-element integer division from advanced indexing
Advanced (fancy) array indexing is now implemented more efficiently, reversing a 2x performance regression for large arrays introduced in Numba v0.66.0.
Bug Fixes
Fix the accumulator dtypes of reductions to match NumPy
The accumulator dtypes of np.sum, np.prod, np.cumsum,
np.cumprod, np.nansum and np.nanprod now match NumPy: booleans
and integers narrower than NumPy’s default integer accumulate into that
integer (intp/uintp, or int32/uint32 on 64-bit Windows with
NumPy < 2.0). In particular np.nansum and
np.nanprod no longer convert unsigned integer inputs to signed intp.
Fix caching of functions imported from a zip archive on Windows
Importing a module that defines a cache=True function from a zip archive
no longer raises KeyError on Windows. The path of the module inside the
archive is now built with / separators, as zip member names require.
Pull-Requests:
PR #10850: Fix performance regressions introduced by ArrayIterator (kc611)
PR #10852: Fix fancy indexing performance regression (cliffckerr esc)
PR #10866: Add NumPy parity for sum and cumsum accumulators (kc611)
PR #10896: Fix ZipCacheLocator to handle Windows-style paths in _split_zip_path (guilhermeleobas)
PR #10906: doc: update 0.68 release notes, remove incorrect attribution (swap357)
PR #10916: CI: fix osx-arm64 gha - pin free threaded python to matrix version (swap357)
Authors: