Repository navigation
Draft release notes for 1.99.0聽#162306
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.
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.99.0 (2026-10-01)
Language
- Add allow-by-default
raw_borrows_via_referenceslint that checks for references that decay immediately into raw borrows
馃摑 - Extend
unconditional_paniclint to function calls that panics when the chunks/windows size is zero
馃摑 - Stabilize C-variadic function definitions
馃摑 - Trait method are now resolved on an adjusted never type (producing a FCW)
馃摑 - Coerce from inference variables to trait objects if a subtype or supertype of the inference variable is known to be
Sized
馃摑 - Stabilize
#[my_macro] mod foo;. This allows outlined modules (mod foo;) anywhere in the body of a custom attribute or derive macro.
馃摑 - Fix the
overflowing_literalslint with repeated negation. For instance, it will now now longer lint on--128_i8, which is already detected by thearithmetic_overflowlint.
馃摑 - Add POSIX symbols to the
invalid_runtime_symbol_definitionsandsuspicious_runtime_symbol_definitionslints
馃摑 - Lint unused
#[path]attributes on inline modules
馃摑 - Enable
unreachable_cfg_select_predicateslint as part ofunusedlint group
馃摑 - Stabilize passing 128-bit integers via vector registers with
asm!on x86
馃摑 - Macros that expand to a semicolon now produce a warning lint (
semicolon_in_expressions_from_non_local_macros) even when the macro comes from another crate. Previously, such warnings only appeared for macros from the same crate, to avoid showing warnings that can't be fixed locally; however, this masked problems, as integration tests from the crate providing the macro get compiled as a separate crate, so tests often wouldn't reveal this issue. If you encounter a lint like this, please make sure to report it to the crate providing the macro so they can fix it; don't just silence it in your own crate. - Explicitly document that some allocations are allowed to grow in-place (but none are allowed to shrink)
馃摑 - The contents of an
UnsafeCellcan now be accessed without going throughget - Stabilize the ability to use
#[unsafe(naked)]functions to define C-variadic functions (#![feature(c_variadic_naked_functions)]).
馃摑 - Warn if an invalid
docattribute is used on a macro invocation
馃摑 - Infer anonymous lifetimes in the types of associated consts as
'static
馃摑
Compiler
- Convert
-Ctarget-cpuinto a target-modifier for AVR, AMDGCN and NVPTX
馃摑 - Enable
static_position_independent_executableson all gnu and musl targets
馃摑 - When providing a suggestion about a missing method, rustc now prefers an exactly matching name from a doc alias attribute over a similarity search from other method names. If your new users sometimes expect a method under a different name, adding a doc alias will now help them find it via rustc suggestions, in addition to helping them find it via rustdoc search: When suggesting method names, prefer exact doc aliases over similar names
馃摑
Platform Support
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
- Relax
transmute_copyto accept?Sizedtypes) - Update
transmute_copyto use a non-unwinding panic
馃摑 - Don't escape U+FF9E and U+FF9F in
escape_debug_ext
馃摑 - Introduce a
PinSafePointertrait that generalizesPinCoerceUnsized
馃摑
Stabilized APIs
- Implement
IntoIteratorfor[&[mut]] Box<[T; N], A>
馃摑 VecDeque::retain_back
馃摑Step::forward_overflowingStep::backward_overflowing
馃摑Box::into_non_nullBox::from_non_nullVec::into_partsVec::from_parts
馃摑core::mem::size_of_val_rawcore::mem::align_of_val_rawcore::alloc::Layout::for_value_raw
馃摑String::from_utf8_lossy_owned
馃摑FusedIterator for StepBy<I>
馃摑std::fs::set_timesstd::fs::set_times_nofollow
馃摑
These previously stable APIs are now stable in const contexts:
Cargo
- Stabilize
build-dirlayout v2 - feat(toml): allow overriding inherited default-features in 2024
- feat(profile): Add built-in profile debug
Rustdoc
- Add new
unused_footnote_definitionrustdoc lint
馃摑 - Smarter filtering of trait impls yields performance improvements of 20% on average and up to 40% on some real-world crates
馃摑
Compatibility Notes
- fully deprecate the legacy integral modules
馃摑 - Upgrade
no_mangle_generic_itemsinto hard error
馃摑 - Do not promote references to extern statics
馃摑 - Ensure inferred
letpattern types typecheck
馃摑 - hermit/fs: Return
unsupported()instead offrom_raw_os_error(22)
馃摑 - Fixed a bug where
#[repr(simd)]was accidentally allowed on macro invocations on stable Rust
馃摑 - Abort const-eval when there are generics in the type of the value being produced
馃摑 - Box::leak: tell people to avoid unleaking
馃摑 - PowerPC inline ASM: Fix scalar floats being in the wrong vector lane on little endian
馃摑
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.
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.
Activity
BoxyUwU commentedon Sep 4, 2026
cc @rust-lang/release
@rustbot ping relnotes-interest-group
rustbot commentedon Sep 4, 2026
Hi relnotes-interest-group, this issue/PR could use some help in reviewing /
adjusting release notes. Could you take a look if available? Thanks <3
cc @alex-semenyuk @jieyouxu @joshtriplett @lcnr @traviscross @weihanglo
Mark-Simulacrum commentedon Sep 4, 2026
We should check -- this may have gotten pushed out another cycle?
weihanglo commentedon Sep 4, 2026
Yes. That one was reverted and now stabilized ln 1.100.0.
weihanglo commentedon Sep 4, 2026
From https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-199-2026-10-01
I am not sure if this is big enough to put as a Cargo's compatibility note.
weihanglo commentedon Sep 4, 2026
For these two cargo items, would you mind copying/tweaking from Cargo's changelog? I am not sure how it fits in the general Rust changelog though.
Usually with 鉂楋笍 it is a cargo compatibility note.
theemathas commentedon Sep 5, 2026
Should the
c_variadic_naked_functionsstabilization just be omitted or folded into the C-variadic thing? C-variadic functions were just stabilized this release anyway.kamulos commentedon Sep 24, 2026
The compatibility notes should mention the LLVM 23 upgrade
BoxyUwU commentedon Sep 28, 2026
moved into #163435 I think I incorporated all the feedback from here there