NOTE: Use the 📝 links to edit those that have a relnotes-tracking-issue,
and they will be updated when we regenerate the notes periodically (manually).
Version 1.94.0 (2026-03-05)
Language
Compiler
Platform Support
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
- Relax
T: Ord bound for some BinaryHeap<T> methods.
📝
Stabilized APIs
These previously stable APIs are now stable in const contexts:
Cargo
Compatibility Notes
Internal Changes
These changes do not affect any public interfaces of Rust, but they represent
significant improvements to the performance or internals of rustc and related
tools.
NOTE: Use the 📝 links to edit those that have a
relnotes-tracking-issue,and they will be updated when we regenerate the notes periodically (manually).
Version 1.94.0 (2026-03-05)
Language
dead_codelint level of the corresponding traits and trait items📝
📝
const _declarations📝
📝
📝
Compiler
outline-atomicsby default on more AArch64 platforms📝
Platform Support
riscv64im-unknown-none-elfas a tier 3 target📝
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
T: Ordbound for someBinaryHeap<T>methods.📝
Stabilized APIs
[T]::array_windows📝
LazyCell::getLazyCell::get_mutLazyCell::force_mutLazyLock::getLazyLock::get_mutLazyLock::force_mut📝
impl TryFrom<char> for usize📝
std::iter::Peekable::next_if_mapstd::iter::Peekable::next_if_map_mut📝
avx512fp16intrinsicsThis excludes those that depend directly on the unstable
f16type.This excludes those that depend directly on the unstable
f16type.📝
<[T]>::element_offset📝
f32::consts::EULER_GAMMAf64::consts::EULER_GAMMAf32::consts::GOLDEN_RATIOf64::consts::GOLDEN_RATIO📝
These previously stable APIs are now stable in const contexts:
f32::mul_addf64::mul_add📝
Cargo
-Zconfig-include--timings=<FMT>optional format valuesCompatibility Notes
dyn-types📝
Some finer details of how precise closure captures get affected by pattern matching have been changed. In some cases, this can cause a non-move closure that was previously capturing an entire variable by move, to now capture only part of that variable by move, and other parts by borrow. This can cause the borrow checker to complain where it previously didn't.
📝
#[macro_use]This may raise a new warning (
ambiguous_panic_imports) on#![no_std]code glob importing the std crate.Both
core::panic!andstd::panic!are then in scope and which is used is ambiguous.📝
include!(…)shebang in expression contextThis can cause previously working includes to no longer compile if they included files which started with a shebang.
📝
This unifies behavior between local and cross-crate errors on these exports, which may introduce new ambiguity errors.
📝
📝
These attributes have no effect in this position today.
📝
std::time::SystemTime::checked_sub_durationwill returnNonefor times before the Windows epoch (1/1/1601)📝
'aare now NFC normalized.📝
Any paths emitted by compiler now always respect the relative-ness of the paths and
--remap-path-prefixgiven originally.One side-effect of this change is that paths emitted for local crates in Cargo (path dependencies and workspace members) are no longer absolute but relative when emitted as part of a diagnostic in a downstream crate.
📝
Internal Changes
These changes do not affect any public interfaces of Rust, but they represent
significant improvements to the performance or internals of rustc and related
tools.
annotate-snippetsfor error emissionThis should preserve mostly the same outputs in rustc error messages.
📝