max/v26.3.0
Breaking Changes📦 mojo-languageView on GitHub →
⚠ 2 breaking✨ 10 features🐛 1 fixes⚡ 1 deprecations🔧 9 symbols
Summary
The Modular 26.3 release introduces video generation and advanced multi-GPU sharding to MAX, while Mojo 1.0 beta 1 brings significant compile-time type refinement and removes negative indexing.
⚠️ Breaking Changes
- Negative indexing on standard collections has been removed; use bounds-checked indexing instead.
- The `fn` keyword now emits a deprecation warning and will become a hard error in the next release.
Migration Steps
- Replace negative indexing on standard collections with appropriate bounds-checked indexing.
- If using the `fn` keyword in Mojo, prepare to update code as it will be removed in the next release.
✨ New Features
- Video generation support added to MAX using Wan 2.1 / 2.2 diffusion models (image-to-video and video-to-video).
- New multi-GPU Python API via `max.experimental.sharding` supporting DeviceMesh distribution with Replicated, Sharded, and Partial placement primitives.
- NVFP4 grouped matmul kernels now outperform FlashInfer on B200 for Kimi K2.5.
- New model support for Gemma 4 (with multimodal vision), Qwen3 and Qwen3-VL (including MoE variants), MiniMax-M2 (with 4×H100 multi-GPU serving), and FLUX.2 (with TaylorSeer and TeaCache denoising caches).
- Mojo 1.0 beta 1 introduces type refinement from compile-time assumptions: `conforms_to(T, Trait)`, `comptime if`, and `comptime assert` now narrow types automatically.
- Stateless Mojo closures auto-lift to function pointers.
- Mojo supports the `ref` capture convention for closures.
- Mojo introduces the new thin function effect to distinguish function pointer types from closure traits.
- Mojo now has cheap CPU bounds checks enabled by default for indexing.
- Mojo `UnsafePointer` is non-null by design; nullability must now be expressed using `Optional[UnsafePointer[...]]`.
🐛 Bug Fixes
- Manual `trait_downcast` calls are no longer necessary in the standard library due to automatic type narrowing from compile-time assumptions.
Affected Symbols
⚡ Deprecations
- The `fn` keyword is deprecated and will be removed in a future release.