# What changed in mlx

> 82 changes in mlx 0.29 to 0.32 from its official release notes, upgrade guides and advisories: 13 breaking, 3 security, 19 new APIs and options. Each one cited. Sources checked 2026-10-28. HTML: https://unstale.sh/pypi/mlx/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## mlx 0.32

### Breaking changes

- Rejects non-aligned pointers when converting to mx.array. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Evaluation errors are raised in the buffer protocol. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- NaN values are propagated in arg reductions. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Calling iter() on a 0-dim array now throws TypeError. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Out-of-bounds axes now raise IndexError. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- The axis argument now defaults to -1. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Python unstack now returns a tuple instead of a list. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Adam validates eps when constructed. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Errors from CPU streams are raised by synchronize. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Protocol members are declared as methods rather than settable attributes. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Median no longer drops NaN values. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Normalization layers now reject a negative eps value. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Optimizer betas are validated when the optimizer is constructed. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)

### Security

- Metadata string and array values are bounded against the file mapping. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)

### New APIs and options

- Adds 1-bit affine quantization support on Metal. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Exports CommandEncoder for CUDA. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Exports Device for CUDA. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds a primitive for integer floor division. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds a minmax method to follow the NumPy and JAX APIs. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds a switch to disable Winograd for conv2d. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds istft to mlx.core.fft. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds stft to mlx.core.fft. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds VJP support for scaled dot product attention. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds a fixed-size unique operation. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds explicit index and bytes support in Python. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Adds an API to query the buffer size for arrays. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Adds support for matrix transpose. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- The axis argument is now optional. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Adds a correction parameter to std. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Adds a correction parameter to var. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Adds support for the __array_namespace_info__ protocol. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Relocatable CUDA DLLs are supported on Windows. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Adds a force_fused option to scaled_dot_product_attention. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)

### Performance

- Adds fused Metal kernels for fast.cross_entropy. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Adds a fused full-attention path for head_dim 256 on NAX devices. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- The decode attention path reads each K/V byte once. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)

### Behavior and default changes

- Adds JVP support and promotes integer inputs. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Scan operations can now be compiled without shapes. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Assignment through a bare Ellipsis index is now supported. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- The axis parameter now defaults to None. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)

### Tooling

- Adds support for building Metal extensions. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)

### Fixes and other changes

- Adds support for scalar inputs; radians and degrees gain the same support. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes bare ellipsis assignment by squeezing leading singleton dimensions and clamps slice bounds when combined with an array index. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds Python unary plus support to array. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes float16 overflow. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes conversion of complex values to bool. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes conjugation in complex VJPs for inverse trigonometric operations, cos, sqrt, and rsqrt. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes cumsum for non-contiguous boolean arrays. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes FFT with size one and vmap of inverse real FFT to an odd length. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds VJP support for gated delta net. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes grouped convolution initialization to use in_channels // groups. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Prevents a crash when an optimizer's group is empty. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes narrowing during Python dtype-to-MLX conversion. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes incorrect output mask computation. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes misaligned offsets, last-axis strides, and contiguous flags in views. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes normalization of single-element slices with negative stride. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes col_reduce_longcolumn for negative-stride views. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Adds support for Python 3.15 and 3.15t. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes view behavior inside vmap and batch-axis placement for scatter updates. (0.32.4) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.4)
- Fixes weight decay mutating caller arrays. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Fixes bytes() on non-contiguous arrays. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Fixes a crash when ellipsis indexing has too many trailing indices. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Fixes floor_divide for integers. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- GGUF tensor dimensions are validated. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Fixes an integer division-by-zero crash in CPU sort, scan, and binary operations. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Fixes integer pow zeroing a whole SIMD vector on a negative exponent. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Fixes save corrupting a lazily loaded source file. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Fixes save_safetensors corrupting a lazily loaded source file. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Fixes weight decay mutating caller arrays. (0.32.3) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.3)
- Casting subnormal float values to bool now preserves them. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Avoids zero work in stride-2 ConvTranspose3d. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Fixes scanning over a size-one axis with a padded stride. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- A failed CUDA graph commit no longer poisons the encoder. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Floating-point divmod no longer truncates the quotient. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Fixes einsum dropping a trailing empty subscript. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Fixes vmap and jvp for transforms over a subset of axes. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Block scales are rounded up to avoid saturation. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Fixes quantized kernels in JIT builds. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Fixes quantization of sliced arrays. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)
- Negative axes are normalized in sort and argsort. (0.32.2) — [release notes](https://github.com/ml-explore/mlx/releases/tag/v0.32.2)

## mlx 0.29

### Security

- MLX has heap-buffer-overflow in load() (0.29.4) — [security advisory](https://github.com/advisories/GHSA-W6VG-JG77-2QG6)
- MLX has Wild Pointer Dereference in load_gguf() (0.29.4) — [security advisory](https://github.com/advisories/GHSA-J842-XGM4-WF88)
