-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Draft release notes for 1.92 #149161
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.
Milestone
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).
See #149652 for final changes.
Version 1.92.0 (2025-12-11)
Language
MaybeUninitrepresentation and validity📝
&raw [mut | const]for union field in safe code📝
Sized📝
Xin[X; 0]whenXis unsizing a const📝
#[track_caller]and#[no_mangle](requires every declaration specifying#[track_caller]as well)📝
never_type_fallback_flowing_into_unsafeanddependency_on_unit_never_type_fallbackdeny-by-default📝
📝
📝
unused_must_uselint no longer warns onResult<(), Uninhabited>(for instance,Result<(), !>), orControlFlow<Uninhabited, ()>. This avoids having to check for an error that can never happen.📝
Compiler
mips64el-unknown-linux-muslabi64link dynamically📝
Command-line information is typically not needed by debugging tools, and the removed code
was causing problems for incremental builds even on targets that don't use PDB debuginfo.
📝
Platform Support
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
Iterator::eq{_by}forTrustedLeniterators📝
Extendfor tuples📝
DebugforEncodeWide.📝
iter::Repeat::lastandcountwill now panic, rather than looping infinitely.📝
Stabilized APIs
NonZero<u{N}>::div_ceil📝
Location::file_as_c_str📝
RwLockWriteGuard::downgrade📝
Box::new_zeroedBox::new_zeroed_sliceRc::new_zeroedRc::new_zeroed_sliceArc::new_zeroedArc::new_zeroed_slice📝
btree_map::Entry::insert_entrybtree_map::VacantEntry::insert_entry📝
impl Extend<proc_macro::Group> for proc_macro::TokenStreamimpl Extend<proc_macro::Literal> for proc_macro::TokenStreamimpl Extend<proc_macro::Punct> for proc_macro::TokenStreamimpl Extend<proc_macro::Ident> for proc_macro::TokenStream📝
These previously stable APIs are now stable in const contexts:
<[_]>::rotate_left<[_]>::rotate_right📝
Cargo
Rustdoc
Iterator::lastas well as impl methods likestd::vec::IntoIter::last. Now these impl methods will be hidden, freeing up space for inherent methods likeBTreeSet::last.📝
📝
Compatibility Notes
-C panic=aborton Linux by generating unwind tables by default. Build with-C force-unwind-tables=noto keep omitting unwind tables.📝
invalid_macro_export_argumentsis upgraded to deny-by-default and will be reported in dependencies too.📝
📝
impl DerefMut for Pin<LocalType>📝
pin!and formatting macros📝
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