-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
Draft release notes for 1.95 #154711
Copy link
Copy link
Open
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.
Description
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
- Stabilize
if letguards on match arms)
📝 irrefutable_let_patternslint no longer lints on let chains
📝- Support importing path-segment keywords with renaming
📝 - Stabilize ppc inline assembly
📝 - const-eval: be more consistent in the behavior of padding during typed copies
📝 - Const blocks are no longer evaluated to determine if expressions involving fallible operations can implicitly be constant-promoted.. Expressions whose ability to implicitly be promoted would depend on the result of a const block are no longer implicitly promoted.
📝 - Make operational semantics of pattern matching independent of crate and module
📝
Compiler
- Stabilize
--remap-path-scopefor controling the scoping of how paths get remapped in the resulting binary
📝
Platform Support
- Promote
powerpc64-unknown-linux-muslto tier 2 with host tools
📝 - Promote
aarch64-apple-tvosto Tier 2 - Promote
aarch64-apple-tvos-simto Tier 2 - Promote
aarch64-apple-watchosto Tier 2 - Promote
aarch64-apple-watchos-simto Tier 2 - Promote
aarch64-apple-visionosto Tier 2 - Promote
aarch64-apple-visionos-simto Tier 2
📝
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
- thread::scope: document how join interacts with TLS destructors
📝 - Stabilize new
RangeInclusiveandRangeInclusiveItertypes
📝 - Speed up
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:
Cargo
Rustdoc
Compatibility Notes
- Array coercions may now result in less inference constraints than before
📝 - FCW Lint when using an ambiguously glob imported trait
📝 - Check lifetime bounds of types mentioning only type parameters
📝 - Report more visibility-related ambiguous import errors
📝 - Remove performance optimization used in coherence checking
📝 - deprecate
Eq::assert_receiver_is_total_eqand emit future compatibility warnings on manual impls
📝 - powerpc64: Use the ELF ABI version set in target spec instead of guessing (fixes the ELF ABI used by the OpenBSD target)
📝 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.
📝- Add FCW for derive helper attributes which conflict with built-in attributes
📝 - JSON target specs have been destabilized and now require
-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.
📝 - The arguments of
#[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
Reactions are currently unavailable
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.