-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Draft release notes for 1.86.0 #138795
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.
Milestone
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.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Update: This has now moved to a pull request -- #139002.
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.86.0 (2025-04-03)
Language
--x) as written in other languages. This was previously a clippy lint,clippy::double_neg, and is now available directly in Rust asdouble_negations.📝
missing_abilint now warns-by-default.📝
📝
repr()attribute applied to invalid items are now correctly rejected.📝
#[target_feature]attribute.📝
#![test]and#![rustfmt::skip]are no longer accepted in more places than intended.📝
📝
Compiler
📝
-Oto mean-C opt-level=3instead of-C opt-level=2to match Cargo's defaults.📝
overflowing_literalsunder certain macro environments.📝
Platform Support
{aarch64-unknown,x86_64-pc}-nto-qnx710_iosockfor supporting Neutrino QNX 7.1 withio-socketnetwork stack.{aarch64-unknown,x86_64-pc}-nto-qnx800for supporting Neutrino QNX 8.0no_stdonly.📝
{x86_64,i686}-win7-windows-gnu.These targets are intended for backwards compatibility with Windows 7.
{x86_64,i686}-win7-windows-msvcare the Windows MSVC counterparts that already exist as Tier 3 targets.📝
amdgcn-amd-amdhsa.📝
x86_64-pc-cygwin.📝
{mips,mipsel}-mti-none-elf(initial bare-metal support).📝
m68k-unknown-none-elf.📝
armv7a-nuttx-{eabi,eabihf},aarch64-unknown-nuttx, andthumbv7a-nuttx-{eabi,eabihf}.📝
i686-unknown-redoxtarget withi586-unknown-redox.📝
i686-unknown-hurd-gnuto Pentium 4.📝
Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
FromBytesWithNulErrorinCStr::from_bytes_with_nul(bytes: &[u8]) -> Result<&Self, FromBytesWithNulError>was changed from an opaque struct to an enum, allowing users to examine why the conversion failed.📝
RustcDecodableandRustcEncodable.📝
--logfileoption.📝
std::fs::remove_filewill now remove read-only files.📝
Stabilized APIs
{float}::next_down{float}::next_up📝
HashMap::get_disjoint_mutHashMap::get_disjoint_unchecked_mut📝
NonZero::count_ones📝
Vec::pop_if📝
sync::Once::waitsync::Once::wait_forcesync::OnceLock::wait📝
<[_]>::get_disjoint_mut<[_]>::get_disjoint_unchecked_mutslice::GetDisjointMutError📝
These APIs are now stable in const contexts:
io::Cursor::get_mutio::Cursor::set_position📝
str::is_char_boundarystr::split_atstr::split_at_checkedstr::split_at_mutstr::split_at_mut_checked📝
hint::black_box📝
Cargo
Rustdoc
📝
Compatibility Notes
wasm_c_abifuture compatibility warning is now a hard error.Users of
wasm-bindgenshould upgrade to at least version 0.2.89, otherwise compilation will fail.📝
#![no_start]and#![crate_id].📝
cenum_impl_drop_casthas been made into a hard error. This means it is now an error to cast a field-less enum to an integer if the enum implementsDrop.📝
📝
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.
The ARM 64-bit compiler (AArch64) on Linux is now optimized with ThinLTO and PGO, similar to the optimizations we have already performed for the x86-64 compiler on Linux. This should make it up to 30% faster.
📝
Other