MAX 26.8 / Mojo 1.3 Nightly Updates

:astronaut: Nightly Release: MAX 26.8.0.dev2026111216 / Mojo 1.3.0.dev2026111216

See the quickstart guide for installation instructions: Quickstart | MAX

MAX changelog updates:

  • PipelineArgs sub-config flags are now flat, matching max serve’s
    spellings everywhere the class is bound with cyclopts. The benchmark
    engine’s --pipeline.runtime.max-batch-size becomes
    --pipeline.max-batch-size, --pipeline.kv-cache.enable-prefix-caching
    becomes --pipeline.enable-prefix-caching, and
    --pipeline.profiling.gpu-profiling becomes --pipeline.gpu-profiling;
    the MODULAR_PIPELINE_* environment variable names change with them
    (MODULAR_PIPELINE_MAX_BATCH_SIZE, not
    MODULAR_PIPELINE_RUNTIME_MAX_BATCH_SIZE). The experimental cascade
    serve CLI (//mach:cascade) now accepts the full max serve flag
    surface, including --config-file recipes and the --model,
    --devices, and --use-dummy-weights aliases.

    package, along with the original 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 the new
    layout.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()

Mojo changelog updates:

  • [stdlib] Make c_pid_t a 32-bit c_int
  • [mojo-lang] feat: Refine and convert conditional types inside comptime if branches
  • [Mojo] Preserve Metal address spaces when reloading spilled pointers

Raw MAX diff: https://github.com/modular/modular/compare/c0bfec57fa8aca77ff5ba47dbdc1940d5ce0ad47...f690d9555f62b94b9915b6513ebef04a6e0ec70a
Current Mojo changelog: https://github.com/modular/modular/blob/main/Mojo/docs/site/nightly-changelog.md