Skip to content

Commit dba7271

Browse files
committed
Add release notes for 1.86.0
1 parent 19cab6b commit dba7271

File tree

1 file changed

+118
-0
lines changed

1 file changed

+118
-0
lines changed

Diff for: RELEASES.md

+118
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,121 @@
1+
Version 1.86.0 (2025-04-03)
2+
==========================
3+
4+
<a id="1.86.0-Language"></a>
5+
6+
Language
7+
--------
8+
- [Stabilize the ability to upcast a trait object to one of its supertraits.](https://github.com/rust-lang/rust/pull/134367)
9+
- [Allow safe functions to be marked with the `#[target_feature]` attribute.](https://github.com/rust-lang/rust/pull/134090)
10+
- [The `missing_abi` lint now warns-by-default.](https://github.com/rust-lang/rust/pull/132397)
11+
- Rust now lints about double negations, to catch cases that might have intended to be a prefix decrement operator (`--x`) as written in other languages. This was previously a clippy lint, `clippy::double_neg`, and is [now available directly in Rust as `double_negations`.](https://github.com/rust-lang/rust/pull/126604)
12+
- [More pointers are now detected as definitely not-null based on their alignment in const eval.](https://github.com/rust-lang/rust/pull/133700)
13+
- [Empty `repr()` attribute applied to invalid items are now correctly rejected.](https://github.com/rust-lang/rust/pull/133925)
14+
- [Inner attributes `#![test]` and `#![rustfmt::skip]` are no longer accepted in more places than intended.](https://github.com/rust-lang/rust/pull/134276)
15+
16+
<a id="1.86.0-Compiler"></a>
17+
18+
Compiler
19+
--------
20+
- [Debug-assert that raw pointers are non-null on access.](https://github.com/rust-lang/rust/pull/134424)
21+
- [Change `-O` to mean `-C opt-level=3` instead of `-C opt-level=2` to match Cargo's defaults.](https://github.com/rust-lang/rust/pull/135439)
22+
- [Fix emission of `overflowing_literals` under certain macro environments.](https://github.com/rust-lang/rust/pull/136393)
23+
24+
<a id="1.86.0-Platform-Support"></a>
25+
26+
Platform Support
27+
----------------
28+
- [Add new Tier 3 targets `{aarch64-unknown,x86_64-pc}-nto-qnx710_iosock` for supporting Neutrino QNX 7.1 with `io-socket` network stack.](https://github.com/rust-lang/rust/pull/133631)
29+
- [Add new Tier 3 targets `{aarch64-unknown,x86_64-pc}-nto-qnx800` for supporting Neutrino QNX 8.0 `no_std` only.](https://github.com/rust-lang/rust/pull/133631)
30+
- [Add new Tier 3 targets `{x86_64,i686}-win7-windows-gnu`.](https://github.com/rust-lang/rust/pull/134609)
31+
These targets are intended for backwards compatibility with Windows 7. `{x86_64,i686}-win7-windows-msvc` are the Windows MSVC counterparts that already exist as Tier 3 targets.
32+
- [Add new Tier 3 target `amdgcn-amd-amdhsa`.](https://github.com/rust-lang/rust/pull/134740)
33+
- [Add new Tier 3 target `x86_64-pc-cygwin`.](https://github.com/rust-lang/rust/pull/134999)
34+
- [Add new Tier 3 targets `{mips,mipsel}-mti-none-elf` (initial bare-metal support).](https://github.com/rust-lang/rust/pull/135074)
35+
- [Add new Tier 3 target `m68k-unknown-none-elf`.](https://github.com/rust-lang/rust/pull/135085)
36+
- [Add new Tier 3 targets `armv7a-nuttx-{eabi,eabihf}`, `aarch64-unknown-nuttx`, and `thumbv7a-nuttx-{eabi,eabihf}`.](https://github.com/rust-lang/rust/pull/135757)
37+
- [Replace `i686-unknown-redox` target with `i586-unknown-redox`.](https://github.com/rust-lang/rust/pull/136698)
38+
- [Increase baseline CPU of `i686-unknown-hurd-gnu` to Pentium 4.](https://github.com/rust-lang/rust/pull/136700)
39+
40+
Refer to Rust's [platform support page][platform-support-doc]
41+
for more information on Rust's tiered platform support.
42+
43+
<a id="1.86.0-Libraries"></a>
44+
45+
Libraries
46+
---------
47+
- The type of `FromBytesWithNulError` in `CStr::from_bytes_with_nul(bytes: &[u8]) -> Result<&Self, FromBytesWithNulError>` was [changed from an opaque struct to an enum](https://github.com/rust-lang/rust/pull/134143), allowing users to examine why the conversion failed.
48+
- [Remove `RustcDecodable` and `RustcEncodable`.](https://github.com/rust-lang/rust/pull/134272)
49+
- [Deprecate libtest's `--logfile` option.](https://github.com/rust-lang/rust/pull/134283)
50+
- [On recent versions of Windows, `std::fs::remove_file` will now remove read-only files.](https://github.com/rust-lang/rust/pull/134679)
51+
52+
<a id="1.86.0-Stabilized-APIs"></a>
53+
54+
Stabilized APIs
55+
---------------
56+
57+
- [`{float}::next_down`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_down)
58+
- [`{float}::next_up`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_up)
59+
- [`<[_]>::get_disjoint_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_mut)
60+
- [`<[_]>::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_unchecked_mut)
61+
- [`slice::GetDisjointMutError`](https://doc.rust-lang.org/stable/std/slice/enum.GetDisjointMutError.html)
62+
- [`HashMap::get_disjoint_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_mut)
63+
- [`HashMap::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_unchecked_mut)
64+
- [`NonZero::count_ones`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.count_ones)
65+
- [`Vec::pop_if`](https://doc.rust-lang.org/std/vec/struct.Vec.html#method.pop_if)
66+
- [`sync::Once::wait`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait)
67+
- [`sync::Once::wait_force`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait_force)
68+
- [`sync::OnceLock::wait`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html#method.wait)
69+
70+
These APIs are now stable in const contexts:
71+
72+
- [`hint::black_box`](https://doc.rust-lang.org/stable/std/hint/fn.black_box.html)
73+
- [`io::Cursor::get_mut`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.get_mut)
74+
- [`io::Cursor::set_position`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.set_position)
75+
- [`str::is_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.is_char_boundary)
76+
- [`str::split_at`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at)
77+
- [`str::split_at_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_checked)
78+
- [`str::split_at_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut)
79+
- [`str::split_at_mut_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut_checked)
80+
81+
<a id="1.86.0-Cargo"></a>
82+
83+
Cargo
84+
-----
85+
- [When merging, replace rather than combine configuration keys that refer to a program path and its arguments.](https://github.com/rust-lang/cargo/pull/15066/)
86+
- [Error if both `--package` and `--workspace` are passed but the requested package is missing.](https://github.com/rust-lang/cargo/pull/15071/) This was previously silently ignored, which was considered a bug since missing packages should be reported.
87+
- [Deprecate the token argument in `cargo login` to avoid shell history leaks.](https://github.com/rust-lang/cargo/pull/15057/)
88+
- [Simplify the implementation of SourceID comparisons.](https://github.com/rust-lang/cargo/pull/14980/) This may potentially change behavior if the canonicalized URL compares differently in alternative registries.
89+
90+
<a id="1.86.0-Rustdoc"></a>
91+
92+
Rustdoc
93+
-----
94+
- [Add a sans-serif font setting.](https://github.com/rust-lang/rust/pull/133636)
95+
96+
<a id="1.86.0-Compatibility-Notes"></a>
97+
98+
Compatibility Notes
99+
-------------------
100+
- [The `wasm_c_abi` future compatibility warning is now a hard error.](https://github.com/rust-lang/rust/pull/133951)
101+
Users of `wasm-bindgen` should upgrade to at least version 0.2.89, otherwise compilation will fail.
102+
- [Remove long-deprecated no-op attributes `#![no_start]` and `#![crate_id]`.](https://github.com/rust-lang/rust/pull/134300)
103+
- The future incompatibility lint `cenum_impl_drop_cast` [has been made into a hard error.](https://github.com/rust-lang/rust/pull/135964) This means it is now an error to cast a field-less enum to an integer if the enum implements `Drop`.
104+
- [SSE2 is now required for "i686" 32-bit x86 hard-float targets; disabling it causes a warning that will become a hard error eventually.](https://github.com/rust-lang/rust/pull/137037)
105+
106+
<a id="1.86.0-Internal-Changes"></a>
107+
108+
Internal Changes
109+
----------------
110+
111+
These changes do not affect any public interfaces of Rust, but they represent
112+
significant improvements to the performance or internals of rustc and related
113+
tools.
114+
115+
- [Build the rustc on AArch64 Linux with ThinLTO + PGO.](https://github.com/rust-lang/rust/pull/133807)
116+
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.
117+
118+
1119
Version 1.85.1 (2025-03-18)
2120
==========================
3121

0 commit comments

Comments
 (0)