-
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.
📝 - 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
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
📝 - Promote
aarch64-pc-windows-msvc
to 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::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
📝 - implement Sum and Product for Saturating(u*)
📝 - document assumptions about
Clone
andEq
traits
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
{unsigned}::strict_add_unsigned
{unsigned}::strict_sub_unsigned
{unsigned}::strict_abs
{signed}::strict_add_signed
📝PanicHookInfo::payload_as_str
📝core::iter::chain
📝u{N}::unsigned_signed_diff
📝array::repeat
📝PathBuf::add_extension
PathBuf::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
📝uN::carrying_add
uN::borrowing_sub
uN::carrying_mul
uN::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 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
📝 - 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_INPUT
in dependencies
📝 - Be more strict when parsing attributes, erroring on many invalid attributes
📝 - 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.
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.