← Back to all sparks
R

Rust

DEVOPS
Velocity2.5

Systems programming language and toolchain

Rust's six-week train is spending its budget on soundness, not surface area.

compilertoolchainsoundnessplatform-supportcargoabi
Current state
Rust is on its unchanged six-week cadence, with 1.97 current and two point releases (1.96.1, 1.97.1) pushed out for CVEs and codegen miscompilations. The change budget lands in three places: const-context and integer/pointer API stabilizations, Cargo configuration graduating to stable (build.warnings, resolver.lockfile-path), and a steady stream of compatibility tightening around Pin, coercions and enum layout. 1.97.0 also flipped the default symbol mangling scheme to v0.
Where it's heading
Across these six releases the Compatibility Notes section is consistently longer than the Language section, which is the clearest signal of where the project is: closing soundness holes rather than adding syntax. Pin deref coercions, unsize coercions into Pin, const generic argument checking and repr(Int) layout edge cases were all corrections of things the compiler previously allowed by accident. Platform work is moving existing targets up-tier (seven Apple aarch64 targets to Tier 2, RISC-V profile features) instead of adding new tier-3 targets, and Cargo keeps absorbing workflow that used to live in CI shell scripts.
Prediction
Expect the next release to hold the shape: a small batch of newly const-stable APIs, one or two more Cargo config stabilizations, and further coercion and layout corrections shipped with future-compatibility warnings. If v0 mangling breaks debugger or profiler tooling in the field, that surfaces as a point release rather than a revert.

Recent moves

  1. 24d ago

    Point release reverts a known LLVM miscompilation trigger

    An out-of-band patch that bumps the LLVM submodule for a fix and reverts the rustc change known to trigger the bug. Two of the last four Rust releases have been point releases for codegen or CVE issues, which is the cost of the fast train rather than a sign of instability.

    View source ↗
  2. 1mo ago

    v0 symbol mangling becomes the default

    ⚡ SPARK

    The release that changes what Rust binaries look like to everything downstream of the compiler: v0 mangling is now the default, alongside build.warnings and resolver.lockfile-path reaching stable in Cargo. It fits the consolidation arc — a long-planned default finally flipped rather than a new feature added.

    View source ↗
  3. 1mo ago

    Cargo libssh2 CVE patches and a MIR miscompilation fix

    A security-and-codegen point release: three libssh2 CVEs patched in Cargo plus a MIR optimization miscompilation. Reinforces the pattern where the .1 releases in this window carry security content rather than features.

    View source ↗
  4. 2mo ago

    assert_matches! and core::range reach stable

    A representative release for this stretch: assert_matches!, the core::range types and several From impls stabilize, two Cargo CVEs are fixed, and the Compatibility Notes tighten Pin coercions and repr(Int) layout. Incremental in every direction, with the corrective work outweighing the additive work.

    View source ↗
  5. 3mo ago

    if let guards stabilize; Apple aarch64 targets hit Tier 2

    The largest feature batch in the window: if let guards on match arms stabilize, inline assembly lands for PowerPC, and seven aarch64 Apple targets across tvOS, watchOS and visionOS move to Tier 2. The platform promotions are the more consequential half — moving existing targets up-tier is the platform strategy visible across these releases.

    View source ↗
  6. 4mo ago

    wasm thread spawn fix and a tar CVE update in Cargo

    A small patch release fixing thread::spawn on wasm32-wasip1-threads, withdrawing unstable Windows OpenOptionsExt methods that could not be added compatibly, and updating tar for two CVEs. Notable mainly for the withdrawal, which is the same trait-sealing caution visible in the Compatibility Notes of the larger releases.

    View source ↗