-
Notifications
You must be signed in to change notification settings - Fork 13.6k
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: We are trying this issue as a new way to work on the draft release notes.
Use the 📝 links to edit those that have a relnotes-tracking-issue
,
and they will be updated when we regenerate the notes periodically.
cc @rust-lang/release
Version 1.88.0 (2025-06-26)
Language
- Add
invalid_null_arguments
lint to prevent invalid usage of null pointers.
This lint is uplifted fromclippy::invalid_null_ptr_usage
.
📝 - Add warn-by-default
dangerous_implicit_autorefs
lint against implicit autoref of raw pointer dereference.
The lint may be bumped to deny-by-default in a future version of Rust.
📝 - Stabilize
#![feature(let_chains)]
in the 2024 edition.
This feature allows&&
-chaininglet
statements insideif
andwhile
, allowing intermixture with boolean expressions. The patterns inside thelet
sub-expressions can be irrefutable or refutable.
📝 - Stabilize
#![feature(naked_functions)]
.
Naked functions allow writing functions with no compiler-generated epilogue and prologue, allowing full control over the generated assembly for a particular function.
📝 - Fully de-stabilize the
#[bench]
attribute. Usage of#[bench]
without#![feature(custom_test_frameworks)]
already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.
📝 - Change trait impl candidate preference for builtin impls and trivial where-clauses.
📝 - Stabilize
#![feature(cfg_boolean_literals)]
.
This allows using boolean literals ascfg
predicates, e.g.#[cfg(true)]
and#[cfg(false)]
.
📝 - Check types of generic const parameter defaults
📝
Compiler
Platform Support
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
- Remove backticks from
#[should_panic]
test failure message.
📝 - Guarantee that
[T; N]::from_fn
is generated in order of increasing indices., for those passing it a stateful closure.
📝 - The libtest flag
--nocapture
is deprecated in favor of the more consistent--no-capture
flag.
📝 - Guarantee that
{float}::NAN
is a quiet NaN.
📝
Stabilized APIs
Cell::update
📝impl Default for *const T
impl Default for *mut T
📝HashMap::extract_if
HashSet::extract_if
📝proc_macro::Span::line
proc_macro::Span::column
proc_macro::Span::start
proc_macro::Span::end
📝proc_macro::Span::file
proc_macro::Span::local_file
📝
These previously stable APIs are now stable in const contexts:
NonNull<T>::replace
<*mut T>::replace
📝std::ptr::swap_nonoverlapping
📝Cell::{replace, get, get_mut, from_mut, as_slice_of_cells}
📝
Cargo
Rustdoc
- Doctests can be ignored based on target names using
ignore-*
attributes. - Stabilize the
--test-runtool
and--test-runtool-arg
CLI options to specify a program (like qemu) and its arguments to run a doctest.
📝
Compatibility Notes
- Finish changing the internal representation of pasted tokens. Certain invalid declarative macros that were previously accepted in obscure circumstances are now correctly rejected by the compiler. Use of a
tt
fragment specifier can often fix these macros.
📝 - Fully de-stabilize the
#[bench]
attribute. Usage of#[bench]
without#![feature(custom_test_frameworks)]
already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.
📝 - Fix borrow checking some always-true patterns.
The borrow checker was overly permissive in some cases, allowing programs that shouldn't have compiled.
📝 - Update the minimum external LLVM to 19.
📝 - Make it a hard error to use a vector type with a non-Rust ABI without enabling the required target feature.
📝
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.