Skip to content

Commit 13fcd8d

Browse files
committed
Add release notes for 1.71.0
1 parent 5bd28f5 commit 13fcd8d

File tree

1 file changed

+138
-0
lines changed

1 file changed

+138
-0
lines changed

RELEASES.md

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,141 @@
1+
Version 1.71.0 (2023-07-13)
2+
==========================
3+
4+
<a id="1.71.0-Language"></a>
5+
6+
Language
7+
--------
8+
9+
- [Remove misleading target feature aliases, inappropriately connected to AVX-512.](https://github.com/rust-lang/rust/pull/107707/)
10+
- [Stabilize `raw-dylib`, `link_ordinal`, `import_name_type` and `-Cdlltool`.](https://github.com/rust-lang/rust/pull/109677/)
11+
- [Uplift `clippy::{drop,forget}_{ref,copy}` lints.](https://github.com/rust-lang/rust/pull/109732/)
12+
- [Type inference is more conservative around constrained vars.](https://github.com/rust-lang/rust/pull/110100/)
13+
- [Use fulfillment to check `Drop` impl compatibility](https://github.com/rust-lang/rust/pull/110577/)
14+
15+
<a id="1.71.0-Compiler"></a>
16+
17+
Compiler
18+
--------
19+
20+
- [Evaluate place expression in `PlaceMention`](https://github.com/rust-lang/rust/pull/104844/),
21+
making `let _ =` patterns more consistent with respect to the borrow checker.
22+
- [Add `--print deployment-target` flag for Apple targets.](https://github.com/rust-lang/rust/pull/105354/)
23+
- [Stabilize `extern "C-unwind"` and friends.](https://github.com/rust-lang/rust/pull/106075/)
24+
The existing `extern "C"` etc. may change behavior for cross-language unwinding in a future release.
25+
- [Update the version of musl used on `*-linux-musl` targets to 1.2.3](https://github.com/rust-lang/rust/pull/107129/),
26+
enabling [time64](https://musl.libc.org/time64.html) on 32-bit systems.
27+
- [Stabilize `debugger_visualizer`](https://github.com/rust-lang/rust/pull/108668/)
28+
for embedding metadata like Microsoft's Natvis.
29+
- [Enable flatten-format-args by default.](https://github.com/rust-lang/rust/pull/109999/)
30+
- [Make `Self` respect tuple constructor privacy.](https://github.com/rust-lang/rust/pull/111245/)
31+
- [Improve niche placement by trying two strategies and picking the better result.](https://github.com/rust-lang/rust/pull/108106/)
32+
- [Use `apple-m1` as the target CPU for `aarch64-apple-darwin`.](https://github.com/rust-lang/rust/pull/109899/)
33+
- [Add Tier 3 support for the `x86_64h-apple-darwin` target.](https://github.com/rust-lang/rust/pull/108795/)
34+
- [Promote `loongarch64-unknown-linux-gnu` to Tier 2 with host tools.](https://github.com/rust-lang/rust/pull/110936/)
35+
36+
Refer to Rust's [platform support page][platform-support-doc]
37+
for more information on Rust's tiered platform support.
38+
39+
<a id="1.71.0-Libraries"></a>
40+
41+
Libraries
42+
---------
43+
- [Remove structural match from `TypeId`.](https://github.com/rust-lang/rust/pull/103291/)
44+
- [Loosen `From<&[T]> for Box<[T]>` bound to `T: Clone`.](https://github.com/rust-lang/rust/pull/103406/)
45+
- [Remove unnecessary `T: Send` bound](https://github.com/rust-lang/rust/pull/111134/)
46+
in `Error for mpsc::SendError<T>` and `TrySendError<T>`.
47+
- [Fix docs for `alloc::realloc`](https://github.com/rust-lang/rust/pull/108630/)
48+
to match `Layout` requirements that the size must not exceed `isize::MAX`.
49+
- [Document `const {}` syntax for `std::thread_local`.](https://github.com/rust-lang/rust/pull/110620/)
50+
This syntax was stabilized in Rust 1.59, but not previously mentioned in release notes.
51+
52+
<a id="1.71.0-Stabilized-APIs"></a>
53+
54+
Stabilized APIs
55+
---------------
56+
57+
- [`CStr::is_empty`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.is_empty)
58+
- [`BuildHasher::hash_one`](https://doc.rust-lang.org/stable/std/hash/trait.BuildHasher.html#method.hash_one)
59+
- [`NonZeroI*::is_positive`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_positive)
60+
- [`NonZeroI*::is_negative`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_negative)
61+
- [`NonZeroI*::checked_neg`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.checked_neg)
62+
- [`NonZeroI*::overflowing_neg`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.overflowing_neg)
63+
- [`NonZeroI*::saturating_neg`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.saturating_neg)
64+
- [`NonZeroI*::wrapping_neg`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.wrapping_neg)
65+
- [`Neg for NonZeroI*`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-NonZeroI32)
66+
- [`Neg for &NonZeroI*`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-%26NonZeroI32)
67+
- [`From<[T; N]> for (T...)`](https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C%5BT;+1%5D%3E-for-(T,))
68+
(array to N-tuple for N in 1..=12)
69+
- [`From<(T...)> for [T; N]`](https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C(T,)%3E-for-%5BT;+1%5D)
70+
(N-tuple to array for N in 1..=12)
71+
- [`windows::io::AsHandle for Box<T>`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Box%3CT%3E)
72+
- [`windows::io::AsHandle for Rc<T>`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Rc%3CT%3E)
73+
- [`windows::io::AsHandle for Arc<T>`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Arc%3CT%3E)
74+
- [`windows::io::AsSocket for Box<T>`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Box%3CT%3E)
75+
- [`windows::io::AsSocket for Rc<T>`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Rc%3CT%3E)
76+
- [`windows::io::AsSocket for Arc<T>`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Arc%3CT%3E)
77+
78+
These APIs are now stable in const contexts:
79+
80+
- [`<*const T>::read`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read)
81+
- [`<*const T>::read_unaligned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned)
82+
- [`<*mut T>::read`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read-1)
83+
- [`<*mut T>::read_unaligned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned-1)
84+
- [`ptr::read`](https://doc.rust-lang.org/stable/std/ptr/fn.read.html)
85+
- [`ptr::read_unaligned`](https://doc.rust-lang.org/stable/std/ptr/fn.read_unaligned.html)
86+
- [`<[T]>::split_at`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_at)
87+
88+
<a id="1.71.0-Cargo"></a>
89+
90+
Cargo
91+
-----
92+
- [Allow named debuginfo options in `Cargo.toml`.](https://github.com/rust-lang/cargo/pull/11958/)
93+
- [Add `workspace_default_members` to the output of `cargo metadata`.](https://github.com/rust-lang/cargo/pull/11978/)
94+
- [`cargo add` now considers `rust-version` when selecting packages.](https://github.com/rust-lang/cargo/pull/12078/)
95+
- [Automatically inherit workspace fields when running `cargo new`/`cargo init`.](https://github.com/rust-lang/cargo/pull/12069/)
96+
97+
<a id="1.71.0-Rustdoc"></a>
98+
99+
Rustdoc
100+
-------
101+
102+
- [Add a new `rustdoc::unescaped_backticks` lint for broken inline code.](https://github.com/rust-lang/rust/pull/105848/)
103+
- [Support strikethrough with single tildes.](https://github.com/rust-lang/rust/pull/111152/) (`~~old~~` vs. `~new~`)
104+
105+
<a id="1.71.0-Misc"></a>
106+
107+
Misc
108+
----
109+
110+
<a id="1.71.0-Compatibility-Notes"></a>
111+
112+
Compatibility Notes
113+
-------------------
114+
115+
- [Add a `sysroot` crate to represent the standard library crates.](https://github.com/rust-lang/rust/pull/108865/)
116+
This does not affect stable users, but may require adjustment in tools that build their own standard library.
117+
- [Cargo optimizes its usage under `rustup`.](https://github.com/rust-lang/cargo/pull/11917/) When
118+
Cargo detects it will run `rustc` pointing to a rustup proxy, it'll try bypassing the proxy and
119+
use the underlying binary directly. There are assumptions around the interaction with rustup and
120+
`RUSTUP_TOOLCHAIN`. However, it's not expected to affect normal users.
121+
- [When querying a package, Cargo tries only the original name, all hyphens, and all underscores to
122+
handle misspellings.](https://github.com/rust-lang/cargo/pull/12083/) Previously, Cargo tried each
123+
combination of hyphens and underscores, causing excessive requests to crates.io.
124+
- Cargo now [disallows `RUSTUP_HOME`](https://github.com/rust-lang/cargo/pull/12101/) and
125+
[`RUSTUP_TOOLCHAIN`](https://github.com/rust-lang/cargo/pull/12107/) in the `[env]` configuration
126+
table. This is considered to be not a use case Cargo would like to support, since it will likely
127+
cause problems or lead to confusion.
128+
129+
<a id="1.71.0-Internal-Changes"></a>
130+
131+
Internal Changes
132+
----------------
133+
134+
These changes do not affect any public interfaces of Rust, but they represent
135+
significant improvements to the performance or internals of rustc and related
136+
tools.
137+
138+
1139
Version 1.70.0 (2023-06-01)
2140
==========================
3141

0 commit comments

Comments
 (0)