unstale

pypi / mlx

mlx

What changed in mlx 0.29 to 0.32, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.

13 breaking3 security19 new APIs and options3 performance4 behavior and defaults1 tooling39 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

mlx 0.3280 changes

Breaking changes 13

  • Rejects non-aligned pointers when converting to mx.array.

    0.32.4release notes

  • Evaluation errors are raised in the buffer protocol.

    0.32.4release notes

  • NaN values are propagated in arg reductions.

    0.32.3release notes

  • Calling iter() on a 0-dim array now throws TypeError.

    0.32.3release notes

  • Out-of-bounds axes now raise IndexError.

    0.32.3release notes

  • The axis argument now defaults to -1.

    0.32.3release notes

  • Python unstack now returns a tuple instead of a list.

    0.32.3release notes

  • Adam validates eps when constructed.

    0.32.2release notes

  • Errors from CPU streams are raised by synchronize.

    0.32.2release notes

  • Protocol members are declared as methods rather than settable attributes.

    0.32.2release notes

  • Median no longer drops NaN values.

    0.32.2release notes

  • Normalization layers now reject a negative eps value.

    0.32.2release notes

  • Optimizer betas are validated when the optimizer is constructed.

    0.32.2release notes

Security 1

  • Metadata string and array values are bounded against the file mapping.

    0.32.2release notes

New APIs and options 19

Performance 3

  • Adds fused Metal kernels for fast.cross_entropy.

    0.32.3release notes

  • Adds a fused full-attention path for head_dim 256 on NAX devices.

    0.32.2release notes

  • The decode attention path reads each K/V byte once.

    0.32.2release notes

Behavior and default changes 4

  • Adds JVP support and promotes integer inputs.

    0.32.4release notes

  • Scan operations can now be compiled without shapes.

    0.32.3release notes

  • Assignment through a bare Ellipsis index is now supported.

    0.32.2release notes

  • The axis parameter now defaults to None.

    0.32.2release notes

Tooling 1

Fixes and other changes 39

  • Adds support for scalar inputs; radians and degrees gain the same support.

    0.32.4release notes

  • Fixes bare ellipsis assignment by squeezing leading singleton dimensions and clamps slice bounds when combined with an array index.

    0.32.4release notes

  • Adds Python unary plus support to array.

    0.32.4release notes

  • Fixes float16 overflow.

    0.32.4release notes

  • Fixes conversion of complex values to bool.

    0.32.4release notes

  • Fixes conjugation in complex VJPs for inverse trigonometric operations, cos, sqrt, and rsqrt.

    0.32.4release notes

  • Fixes cumsum for non-contiguous boolean arrays.

    0.32.4release notes

  • Fixes FFT with size one and vmap of inverse real FFT to an odd length.

    0.32.4release notes

  • Adds VJP support for gated delta net.

    0.32.4release notes

  • Fixes grouped convolution initialization to use in_channels // groups.

    0.32.4release notes

  • Prevents a crash when an optimizer's group is empty.

    0.32.4release notes

  • Fixes narrowing during Python dtype-to-MLX conversion.

    0.32.4release notes

  • Fixes incorrect output mask computation.

    0.32.4release notes

  • Fixes misaligned offsets, last-axis strides, and contiguous flags in views.

    0.32.4release notes

  • Fixes normalization of single-element slices with negative stride.

    0.32.4release notes

  • Fixes col_reduce_longcolumn for negative-stride views.

    0.32.4release notes

  • Adds support for Python 3.15 and 3.15t.

    0.32.4release notes

  • Fixes view behavior inside vmap and batch-axis placement for scatter updates.

    0.32.4release notes

  • Fixes weight decay mutating caller arrays.

    0.32.3release notes

  • Fixes bytes() on non-contiguous arrays.

    0.32.3release notes

  • Fixes a crash when ellipsis indexing has too many trailing indices.

    0.32.3release notes

  • Fixes floor_divide for integers.

    0.32.3release notes

  • GGUF tensor dimensions are validated.

    0.32.3release notes

  • Fixes an integer division-by-zero crash in CPU sort, scan, and binary operations.

    0.32.3release notes

  • Fixes integer pow zeroing a whole SIMD vector on a negative exponent.

    0.32.3release notes

  • Fixes save corrupting a lazily loaded source file.

    0.32.3release notes

  • Fixes save_safetensors corrupting a lazily loaded source file.

    0.32.3release notes

  • Fixes weight decay mutating caller arrays.

    0.32.3release notes

  • Casting subnormal float values to bool now preserves them.

    0.32.2release notes

  • Avoids zero work in stride-2 ConvTranspose3d.

    0.32.2release notes

  • Fixes scanning over a size-one axis with a padded stride.

    0.32.2release notes

  • A failed CUDA graph commit no longer poisons the encoder.

    0.32.2release notes

  • Floating-point divmod no longer truncates the quotient.

    0.32.2release notes

  • Fixes einsum dropping a trailing empty subscript.

    0.32.2release notes

  • Fixes vmap and jvp for transforms over a subset of axes.

    0.32.2release notes

  • Block scales are rounded up to avoid saturation.

    0.32.2release notes

  • Fixes quantized kernels in JIT builds.

    0.32.2release notes

  • Fixes quantization of sliced arrays.

    0.32.2release notes

  • Negative axes are normalized in sort and argsort.

    0.32.2release notes

mlx 0.292 changes

Security 2