- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.9k
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
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.91.0 (2025-10-30)
Language
- Add target_env = "macabi"andtarget_env = "sim"cfgs as replacements for thetarget_abicfgs with the same values.
 📝
- Lower pattern bindings in the order they're written and base drop order on primary bindings' order
 📝
- Stabilize declaration of c-style variadic functions for sysv64, win64, efiapi, and aapcs ABIs.  This brings these ABIs in line with the C ABI: variadic functions can be declared in extern blocks but not defined.
 📝
- Always require coroutine captures to be drop-live
 📝
- Add lint against dangling pointers from local variables
 📝
- Upgrade semicolon_in_expressions_from_macros from warn to deny
 📝
- Stabilize loongarch32 inline asm
 📝
- Add warn-by-default integer_to_ptr_transmuteslint against integer to pointer transmutes
 📝
- Stabilize sse4aandtbmtarget features
 📝
Compiler
Platform Support
- Promote aarch64-pc-windows-gnullvmandx86_64-pc-windows-gnullvmto tier 2 with host tools. Note: llvm-tools and MSI installers are missing but will be added in the future releases
 📝
- Promote aarch64-pc-windows-msvcto Tier 1
 📝
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
- Print thread ID in panic message
 📝
- Fix overly restrictive lifetime in core::panic::Location::filereturn type
 📝
- Guarantee parameter order for _by()variants ofmin/max/minmaxinstd::cmp
 📝
- implement Sum and Product for Saturating(u*)
 📝
- document assumptions about CloneandEqtraits
Stabilized APIs
- Path::file_prefix
 📝
- AtomicPtr::fetch_ptr_add
- AtomicPtr::fetch_ptr_sub
- AtomicPtr::fetch_byte_add
- AtomicPtr::fetch_byte_sub
- AtomicPtr::fetch_or
- AtomicPtr::fetch_and
- AtomicPtr::fetch_xor
 📝
- {integer}::strict_add
- {integer}::strict_sub
- {integer}::strict_mul
- {integer}::strict_div
- {integer}::strict_div_euclid
- {integer}::strict_rem
- {integer}::strict_rem_euclid
- {integer}::strict_neg
- {integer}::strict_shl
- {integer}::strict_shr
- {integer}::strict_pow
- i{N}::strict_add_unsigned
- i{N}::strict_sub_unsigned
- i{N}::strict_abs
- u{N}::strict_add_signed
- u{N}::strict_sub_signed
 📝
- PanicHookInfo::payload_as_str
 📝
- core::iter::chain
 📝
- u{N}::checked_signed_diff
 📝
- array::repeat
 📝
- PathBuf::add_extension
- PathBuf::with_added_extension
 📝
- Duration::from_mins
- Duration::from_hours
 📝
- impl PartialEq<str> for PathBuf
- impl PartialEq<String> for PathBuf
- impl PartialEq<str> for Path
- impl PartialEq<String> for Path
- impl PartialEq<PathBuf> for String
- impl PartialEq<Path> for String
- impl PartialEq<PathBuf> for str
- impl PartialEq<Path> for str
 📝
- Ipv4Addr::from_octets
- Ipv6Addr::from_octets
- Ipv6Addr::from_segments
 📝
- impl<T> Default for Pin<Box<T>> where Box<T>: Default, T: ?Sized
- impl<T> Default for Pin<Rc<T>> where Rc<T>: Default, T: ?Sized
- impl<T> Default for Pin<Arc<T>> where Arc<T>: Default, T: ?Sized
 📝
- Cell::as_array_of_cells
 📝
- u{N}::carrying_add
- u{N}::borrowing_sub
- u{N}::carrying_mul
- u{N}::carrying_mul_add
 📝
- BTreeMap::extract_if
- BTreeSet::extract_if
 📝
These previously stable APIs are now stable in const contexts:
- [T;N]::each_ref
- [T;N]::each_mut
 📝
- OsString::new
- PathBuf::new
 📝
- TypeId::of
 📝
- ptr::with_exposed_provenance
- ptr::with_exposed_provenance_mut
 📝
Cargo
Rustdoc
- In search results, rank doc aliases lower than non-alias items with the same name
 📝
- Raw pointers now work in type-based search like references. This means you can now search for things like *const u8 ->, and additionally functions that take or return raw pointers will now display their signature properly in search results.
 📝
Compatibility Notes
- Apple: Always pass SDK root when linking with cc, and pass it viaSDKROOTenv var. This should fix linking issues withrustcrunning inside Xcode. Libraries in/usr/local/libmay no longer be linked automatically, if you develop or use a crate that relies on this, you should explicitly setcargo::rustc-link-search=/usr/local/libin abuild.rsscript.
 📝
- Relaxed bounds in associated type bound position like in TraitRef<AssocTy: ?Sized>are now correctly forbidden
 📝
- Add unstable #[sanitize(xyz = "on|off")]built-in attribute that shadows procedural macros with the same name
 📝
- Fix the drop checker being more permissive for bindings declared with let-else.
 📝
- Error on invalid #[should_panic]attributes
 📝
- Mark all deprecation lints in name resolution as deny-by-default and report-in-deps
 📝
- The lint semicolon_in_expressions_from_macros, formacro_rules!macros in expression position that expand to end in a semicolon (;), is now deny-by-default. It was already warn-by-default, and a future compatibility warning (FCW) that warned even in dependencies. This lint will become a hard error in the future.
 📝
- Trait impl modifiers (e.g., unsafe,!,default) in inherent impls are no longer syntactically valid
 📝
- Start reporting future breakage for ILL_FORMED_ATTRIBUTE_INPUTin dependencies
 📝
- Be more strict when parsing attributes, erroring on many invalid attributes
 📝
- fix drop scope for super letbindings withinif let
 📝
- Invalid literal suffixes in tuple indexing, tuple struct indexing, and struct field name position are now correctly rejected
 📝
- Closures marked with the keyword staticare now syntactically invalid
 📝
- Shebangs inside --cfgand--check-cfgarguments are no longer allowed
 📝
- Add future compatibility lint for temporary lifetimes shortening in Rust 1.92
 📝
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
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.