MAX Nightly 26.8.0.dev2026110505 (Mojo 1.3.0.dev2026110505) Released

:astronaut: A new nightly version has been released! :astronaut:

See the quickstart guide for installation instructions: Quickstart | MAX

MAX changelog updates:

  • max benchmark renames --warmup-to-steady-state to --warmup-multiturn,
    since it applies only to multi-turn workloads and is unrelated to the
    steady-state measurement window. The old flag, its workload and config
    file keys, and MODULAR_WARMUP_TO_STEADY_STATE still work and log a
    deprecation warning. Result files record the option as warmup_multiturn
    under client_args.

  • Built-in custom ops are now named after their class instead of mo.,
    which is kept for the graph compiler’s own ops. For example,
    mo.launch_host_func and mo.inplace_memcpy are now
    runtime.launch_host_func and runtime.inplace_memcpy, and
    mo.matmul_swiglu is now matmul.swiglu. Update the name passed to
    ops.custom() in graphs that call these ops directly.

  • The legacy Layout and IntTuple types have been removed from the layout
    package, along with the layout.layout and layout.int_tuple modules, the
    to_layout(), LTToTTLayout and print_layout() bridges, and the legacy
    tile_layout_k_major(), tile_layout_mn_major() and
    tile_sf_layout_k_major() constructors. Use the typed layouts in
    layout.tile_layout (Layout, also exported as MixedLayout) for layout
    values, Coord for shapes, strides and indices, and the *_typed tile
    layout constructors in layout.tensor_core_async. wgmma_desc_sbo_lbo()
    and wgmma_canonical_strides() replace tile_to_descriptor(), and print()
    accepts a typed layout directly.

  • The load_fn, compute_fn and compute_finalize_fn callbacks of
    stencil() and stencil_gpu() in max.algorithm now take a Coord
    instead of an IndexList[rank]. map_fn still takes and returns
    IndexList. The coordinate holds the same values as before:

    # was: def load_fn[...](point: IndexList[rank, ...]) -> ...
    def load_fn[simd_width: Int, dtype: DType](point: Coord) -> SIMD[
        dtype, simd_width
    ]:
        return input.load[width=simd_width](point)
    

Mojo changelog updates:

  • [mojo-lang] add elaboration-stats to CompileTimeProfiling.md
  • [stdlib] Add a filter iterator
  • [External] [stdlib] Make ord raise on invalid runtime input (#108755)

Raw MAX diff: https://github.com/modular/modular/compare/7e509d8d281a7fe8354e838a3d19245bbc27d175...03501ff8335d482b476f0d5bd7bd4d8de74d3f62
Current Mojo changelog: https://github.com/modular/modular/blob/main/Mojo/docs/site/nightly-changelog.md