What's Changed
Major Changes 🛠
- Drop support for Python 3.11 by @ricardoV94 in #2211
- Rewrite ShapeFeature to not hold live variables by @ricardoV94 in #2056
- Remove symbolic axis from join/split by @jessegrabowski in #2144
- Deprecate implicit shared-variable capture in OpFromGraph by @alessandrogentili001 in #2047
- Make inner graph Ops immutable by @ricardoV94 in #2243
New Features 🎉
- Add asumption for unique indices by @ricardoV94 in #2225
Bugfixes 🐛
- Fix
untilscan gradient step count with recurring outputs by @jessegrabowski in #2217 - Fix assumption bug with (1,1) eye by @jessegrabowski in #2224
- Fix ScanMerge cycle by @ricardoV94 in #2226
- Fix numba blockwise layout inference by @ricardoV94 in #2234
- Fix MLX variadic Elemwise crash on broadcast-shaped inputs by @cetagostini in #2235
- Make exp/log rewrites dtype-safe under cast_policy="numpy+floatX" by @maresb in #2247
- Fix MLX IncSubtensor with slice index by @cetagostini in #2240
- Keep
_make_scalar_loopupdates dtype-stable by @maresb in #2249 - Accumulate duplicate indices in MLX AdvancedIncSubtensor by @cetagostini in #2242
- Numba scan: fix invalid cross alias and inplace by @ricardoV94 in #2263
Documentation 📖
- Expand documentation on broadcasting limitations by @ricardoV94 in #2084
- Tiny transformer LLM example by @cetagostini in #2163
Maintenance 🔧
- Numba: Cache cython-special functions by @jessegrabowski in #2212
- Add MLX GEMV dispatch by @drbenvincent in #2214
- Add MLX GER dispatch by @drbenvincent in #2216
- Numba: Speedup RV eval by casting float parameters to float64 by @ricardoV94 in #2223
- Do not recompile identical OFG in same graph by @ricardoV94 in #2209
- Exclude general fusion from JAX and MLX modes by @ricardoV94 in #2236
- Fix local_log_div float64 precision loss for integer-literal operands by @maresb in #2245
- Fix MLX Shape_i output type by @gaoflow in #2230
- Refactor BLAS code by @jessegrabowski in #2049
- Generalize local_sum_prod_alloc by @ricardoV94 in #2198
- Fold variadic Add/Mul in JAX and PyTorch backends instead of stacking by @cetagostini in #2238
- Add gradient (pullback) to Min Op by @hermesdt in #2253
- Fix MLX Metal codegen crash on NaN scalar constants by @cetagostini in #2239
- Enforce AdvancedIncSubtensor1 runtime-broadcast check on MLX backend by @cetagostini in #2241
- Numba scan: Allow inplacing on discarded mit-mot by @ricardoV94 in #2266
New Contributors
- @drbenvincent made their first contribution in #2214
- @gaoflow made their first contribution in #2230
- @hermesdt made their first contribution in #2253
Full Changelog: rel-3.0.5...rel-3.1.0