-
Notifications
You must be signed in to change notification settings - Fork 13.8k
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.
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).
cc @rust-lang/release
Version 1.91.0 (2025-10-30)
Language
- Add
target_env = "macabi"
andtarget_env = "sim"
cfgs as replacements for thetarget_abi
cfgs with the same values.
📝 - Remove the
#[no_sanitize]
attribute in favor of#[sanitize(xyz = "on|off")]
📝 - 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_transmutes
lint against integer to pointer transmutes
📝 - Stabilize
sse4a
andtbm
target features
📝
Compiler
- emit
StorageLive
and scheduleStorageDead
forlet
-else
's bindings after matching
📝 - Port
#[link]
to the new attribute parsing infrastructure
📝 - Don't warn on never to any
as
casts as unreachable
📝 - Promote
aarch64-pc-windows-msvc
to Tier 1
📝
Platform Support
- Promote
aarch64-pc-windows-gnullvm
andx86_64-pc-windows-gnullvm
to tier 2 with host tools. Note: llvm-tools and MSI installers are missing but will be added in the future releases
📝
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
- Tracking Issue for arithmetic and certain bitwise ops on
AtomicPtr
📝 - Print thread ID in panic message
📝 - Tracking Issue for PanicHookInfo::payload_as_str()
📝 - Tracking Issue for
unsigned_signed_diff
- Fix overly restrictive lifetime in
core::panic::Location::file
return type
📝 - Guarantee parameter order for
_by()
variants ofmin
/max
/minmax
instd::cmp
📝 - lower pattern bindings in the order they're written and base drop order on primary bindings' order
📝 - Port
#[should_panic]
to the new attribute parsing infrastructure
📝 - implement Sum and Product for Saturating(u*)
📝 - document assumptions about
Clone
andEq
traits - Stabilize BTree{Map,Set}::extract_if
📝
Stabilized APIs
Path::file_prefix
📝{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
{unsigned}::strict_add_unsigned
{unsigned}::strict_sub_unsigned
{unsigned}::strict_abs
{signed}::strict_add_signed
📝core::iter::chain
📝array::repeat
📝- Stabilize PathBuf::add_extension and Path::with_added_extension
📝 Duration::from_mins
Duration::from_hours
📝impl PartialEq<{str,String}> for {Path,PathBuf}
📝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
📝 - Partial-stabilize the basics from
bigint_helper_methods
📝
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
- Changed the expansion of the
assert!
macro: The macro now expands to amatch
expression instead of anif !cond { .. }
, which provides better error output when misused, but breaksassert!
invocations which rely on a customNot
trait implementation.
📝 - Apple: Always pass SDK root when linking with
cc
, and pass it viaSDKROOT
env var. This should fix linking issues withrustc
running inside Xcode. Libraries in/usr/local/lib
may 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/lib
in abuild.rs
script.
📝 - Relaxed bounds in associated type bound position like in
TraitRef<AssocTy: ?Sized>
are now correctly forbidden
📝 - 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_INPUT
in dependencies
📝 - fix drop scope for
super let
bindings 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
static
are now syntactically invalid
📝 - Shebangs inside
--cfg
and--check-cfg
arguments are no longer allowed
📝
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.
- Update to LLVM 21
📝 - std: thread: Return error if setting thread stack size fails
📝 - Rewrite the new attribute argument parser
📝
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.