-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
Draft release notes for 1.95 #154711
Copy link
Copy link
Closed
Labels
T-releaseRelevant to the release subteam, which will review and decide on the PR/issue.Relevant to the release subteam, which will review and decide on the PR/issue.relnotes-tracking-issueMarks issues tracking what text to put in release notes.Marks issues tracking what text to put in release notes.
Metadata
Metadata
Assignees
Labels
T-releaseRelevant to the release subteam, which will review and decide on the PR/issue.Relevant to the release subteam, which will review and decide on the PR/issue.relnotes-tracking-issueMarks issues tracking what text to put in release notes.Marks issues tracking what text to put in release notes.
Type
Fields
Give feedbackNo fields configured for issues without a type.
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.95 (2026-04-16)
Language
if letguards on match arms)📝
irrefutable_let_patternslint no longer lints on let chains📝
📝
📝
📝
📝
📝
Compiler
--remap-path-scopefor controling the scoping of how paths get remapped in the resulting binary📝
Platform Support
powerpc64-unknown-linux-muslto tier 2 with host tools📝
aarch64-apple-tvosto Tier 2aarch64-apple-tvos-simto Tier 2aarch64-apple-watchosto Tier 2aarch64-apple-watchos-simto Tier 2aarch64-apple-visionosto Tier 2aarch64-apple-visionos-simto Tier 2📝
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
📝
RangeInclusiveandRangeInclusiveItertypes📝
str::containson aarch64 targets withneontarget feature enabled by default📝
Stabilized APIs
assert_matches!debug_assert_matches!📝
MaybeUninit<[T; N]>: From<[MaybeUninit<T>; N]>MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>; N]>MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>]>MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>; N]>MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>]>[MaybeUninit<T>; N]: From<MaybeUninit<[T; N]>>Cell<[T; N]>: AsRef<[Cell<T>; N]>Cell<[T; N]>: AsRef<[Cell<T>]>Cell<[T]>: AsRef<[Cell<T>]>📝
bool: TryFrom<{integer}📝
AtomicPtr::updateAtomicPtr::try_updateAtomicBool::updateAtomicBool::try_updateAtomicIn::updateAtomicIn::try_updateAtomicUn::updateAtomicUn::try_update📝
cfg_select!📝
core::hint::cold_path📝
<*const T>::as_ref_unchecked<*mut T>::as_ref_unchecked<*mut T>::as_mut_unchecked📝
These previously stable APIs are now stable in const contexts:
fmt::from_fn📝
ControlFlow::is_breakControlFlow::is_continue📝
Cargo
cargo report *Rustdoc
📝
📝
Compatibility Notes
📝
📝
📝
📝
📝
Eq::assert_receiver_is_total_eqand emit future compatibility warnings on manual impls📝
📝
mut refandmut ref mutpatterns, part of the unstable Match Ergonomics 2024 RFC, were accidentally allowed on stable within struct pattern field shorthand. These patterns are now correctly feature-gated as unstable in this position.📝
📝
-Z unstable-optionsto use. Previously, these could not be used without the standard library, which has no stable build mechanism. In preparation for thebuild-stdproject adding that support, JSON target specs are being proactively gated to ensure they remain unstable even ifbuild-stdis stabilized. Cargo now includes the-Z json-target-specCLI flag to automatically pass-Z unstable-optionsto the compiler when needed. See #150151, #151534, and rust-lang/cargo#16557.📝
#[feature]attributes on invalid targets are now checked📝
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.
Other