Skip to content

Commit ebe9af7

Browse files
Prepare 1.70.0 release
1 parent 2687f47 commit ebe9af7

File tree

2 files changed

+249
-7
lines changed

2 files changed

+249
-7
lines changed

RELEASES.md

+248-6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,245 @@
1+
Version 1.70.0 (2023-06-01)
2+
==========================
3+
4+
<a id="1.70.0-Language"></a>
5+
6+
Language
7+
--------
8+
- [Relax ordering rules for `asm!` operands](https://github.com/rust-lang/rust/pull/105798/)
9+
- [Properly allow macro expanded `format_args` invocations to uses captures](https://github.com/rust-lang/rust/pull/106505/)
10+
- [Lint ambiguous glob re-exports](https://github.com/rust-lang/rust/pull/107880/)
11+
- [Perform const and unsafe checking for expressions in `let _ = expr` position.](https://github.com/rust-lang/rust/pull/102256/)
12+
13+
<a id="1.70.0-Compiler"></a>
14+
15+
Compiler
16+
--------
17+
- [Extend -Cdebuginfo with new options and named aliases](https://github.com/rust-lang/rust/pull/109808/)
18+
This provides a smaller version of debuginfo for cases that only need line number information
19+
(`-Cdebuginfo=line-tables-only`), which may eventually become the default for `-Cdebuginfo=1`.
20+
- [Make `unused_allocation` lint against `Box::new` too](https://github.com/rust-lang/rust/pull/104363/)
21+
- [Detect uninhabited types early in const eval](https://github.com/rust-lang/rust/pull/109435/)
22+
- [Switch to LLD as default linker for {arm,thumb}v4t-none-eabi](https://github.com/rust-lang/rust/pull/109721/)
23+
- [Add tier 3 target `loongarch64-unknown-linux-gnu`](https://github.com/rust-lang/rust/pull/96971)
24+
- [Add tier 3 target for `i586-pc-nto-qnx700` (QNX Neutrino RTOS, version 7.0)](https://github.com/rust-lang/rust/pull/109173/),
25+
- [Insert alignment checks for pointer dereferences as debug assertions](https://github.com/rust-lang/rust/pull/98112)
26+
This catches undefined behavior at runtime, and may cause existing code to fail.
27+
28+
Refer to Rust's [platform support page][platform-support-doc]
29+
for more information on Rust's tiered platform support.
30+
31+
<a id="1.70.0-Libraries"></a>
32+
33+
Libraries
34+
---------
35+
- [Document NonZeroXxx layout guarantees](https://github.com/rust-lang/rust/pull/94786/)
36+
- [Windows: make `Command` prefer non-verbatim paths](https://github.com/rust-lang/rust/pull/96391/)
37+
- [Implement Default for some alloc/core iterators](https://github.com/rust-lang/rust/pull/99929/)
38+
- [Fix handling of trailing bare CR in str::lines](https://github.com/rust-lang/rust/pull/100311/)
39+
- [allow negative numeric literals in `concat!`](https://github.com/rust-lang/rust/pull/106844/)
40+
- [Add documentation about the memory layout of `Cell`](https://github.com/rust-lang/rust/pull/106921/)
41+
- [Use `partial_cmp` to implement tuple `lt`/`le`/`ge`/`gt`](https://github.com/rust-lang/rust/pull/108157/)
42+
- [Stabilize `atomic_as_ptr`](https://github.com/rust-lang/rust/pull/108419/)
43+
- [Stabilize `nonnull_slice_from_raw_parts`](https://github.com/rust-lang/rust/pull/97506/)
44+
- [Partial stabilization of `once_cell`](https://github.com/rust-lang/rust/pull/105587/)
45+
- [Stabilize `nonzero_min_max`](https://github.com/rust-lang/rust/pull/106633/)
46+
- [Flatten/inline format_args!() and (string and int) literal arguments into format_args!()](https://github.com/rust-lang/rust/pull/106824/)
47+
- [Stabilize movbe target feature](https://github.com/rust-lang/rust/pull/107711/)
48+
- [don't splice from files into pipes in io::copy](https://github.com/rust-lang/rust/pull/108283/)
49+
- [Add a builtin unstable `FnPtr` trait that is implemented for all function pointers](https://github.com/rust-lang/rust/pull/108080/)
50+
This extends `Debug`, `Pointer`, `Hash`, `PartialEq`, `Eq`, `PartialOrd`, and `Ord`
51+
implementations for function pointers with all ABIs.
52+
53+
<a id="1.70.0-Stabilized-APIs"></a>
54+
55+
Stabilized APIs
56+
---------------
57+
58+
- [`NonZero*::MIN/MAX`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI8.html#associatedconstant.MIN)
59+
- [`BinaryHeap::retain`](https://doc.rust-lang.org/stable/std/collections/struct.BinaryHeap.html#method.retain)
60+
- [`Default for std::collections::binary_heap::IntoIter`](https://doc.rust-lang.org/stable/std/collections/binary_heap/struct.IntoIter.html)
61+
- [`Default for std::collections::btree_map::{IntoIter, Iter, IterMut}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoIter.html)
62+
- [`Default for std::collections::btree_map::{IntoKeys, Keys}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoKeys.html)
63+
- [`Default for std::collections::btree_map::{IntoValues, Values}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoKeys.html)
64+
- [`Default for std::collections::btree_map::Range`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.Range.html)
65+
- [`Default for std::collections::btree_set::{IntoIter, Iter}`](https://doc.rust-lang.org/stable/std/collections/btree_set/struct.IntoIter.html)
66+
- [`Default for std::collections::btree_set::Range`](https://doc.rust-lang.org/stable/std/collections/btree_set/struct.Range.html)
67+
- [`Default for std::collections::linked_list::{IntoIter, Iter, IterMut}`](https://doc.rust-lang.org/stable/alloc/collections/linked_list/struct.IntoIter.html)
68+
- [`Default for std::vec::IntoIter`](https://doc.rust-lang.org/stable/alloc/vec/struct.IntoIter.html#impl-Default-for-IntoIter%3CT,+A%3E)
69+
- [`Default for std::iter::Chain`](https://doc.rust-lang.org/stable/std/iter/struct.Chain.html)
70+
- [`Default for std::iter::Cloned`](https://doc.rust-lang.org/stable/std/iter/struct.Cloned.html)
71+
- [`Default for std::iter::Copied`](https://doc.rust-lang.org/stable/std/iter/struct.Copied.html)
72+
- [`Default for std::iter::Enumerate`](https://doc.rust-lang.org/stable/std/iter/struct.Enumerate.html)
73+
- [`Default for std::iter::Flatten`](https://doc.rust-lang.org/stable/std/iter/struct.Flatten.html)
74+
- [`Default for std::iter::Fuse`](https://doc.rust-lang.org/stable/std/iter/struct.Fuse.html)
75+
- [`Default for std::iter::Rev`](https://doc.rust-lang.org/stable/std/iter/struct.Rev.html)
76+
- [`Default for std::slice::Iter`](https://doc.rust-lang.org/stable/std/slice/struct.Iter.html)
77+
- [`Default for std::slice::IterMut`](https://doc.rust-lang.org/stable/std/slice/struct.IterMut.html)
78+
- [`Rc::into_inner`](https://doc.rust-lang.org/stable/alloc/rc/struct.Rc.html#method.into_inner)
79+
- [`Arc::into_inner`](https://doc.rust-lang.org/stable/alloc/sync/struct.Arc.html#method.into_inner)
80+
- [`std::cell::OnceCell`](https://doc.rust-lang.org/stable/std/cell/struct.OnceCell.html)
81+
- [`Option::is_some_and`](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.is_some_and)
82+
- [`NonNull::slice_from_raw_parts`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.slice_from_raw_parts)
83+
- [`Result::is_ok_and`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_ok_and)
84+
- [`Result::is_err_and`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_err_and)
85+
- [`std::sync::atomic::Atomic*::as_ptr`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicU8.html#method.as_ptr)
86+
- [`std::io::IsTerminal`](https://doc.rust-lang.org/stable/std/io/trait.IsTerminal.html)
87+
- [`std::os::linux::net::SocketAddrExt`](https://doc.rust-lang.org/stable/std/os/linux/net/trait.SocketAddrExt.html)
88+
- [`std::os::unix::net::UnixDatagram::bind_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.bind_addr)
89+
- [`std::os::unix::net::UnixDatagram::connect_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.connect_addr)
90+
- [`std::os::unix::net::UnixDatagram::send_to_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.send_to_addr)
91+
- [`std::os::unix::net::UnixListener::bind_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixListener.html#method.bind_addr)
92+
- [`std::path::Path::as_mut_os_str`](https://doc.rust-lang.org/stable/std/path/struct.Path.html#method.as_mut_os_str)
93+
- [`std::sync::OnceLock`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html)
94+
95+
<a id="1.70.0-Cargo"></a>
96+
97+
Cargo
98+
-----
99+
100+
- [Add `CARGO_PKG_README`](https://github.com/rust-lang/cargo/pull/11645/)
101+
- [Make `sparse` the default protocol for crates.io](https://github.com/rust-lang/cargo/pull/11791/)
102+
- [Accurately show status when downgrading dependencies](https://github.com/rust-lang/cargo/pull/11839/)
103+
- [Use registry.default for login/logout](https://github.com/rust-lang/cargo/pull/11949/)
104+
- [Stabilize `cargo logout`](https://github.com/rust-lang/cargo/pull/11950/)
105+
106+
<a id="1.70.0-Misc"></a>
107+
108+
Misc
109+
----
110+
111+
- [Stabilize rustdoc `--test-run-directory`](https://github.com/rust-lang/rust/pull/103682/)
112+
113+
<a id="1.70.0-Compatibility-Notes"></a>
114+
115+
Compatibility Notes
116+
-------------------
117+
118+
- [Prevent stable `libtest` from supporting `-Zunstable-options`](https://github.com/rust-lang/rust/pull/109044/)
119+
- [Perform const and unsafe checking for expressions in `let _ = expr` position.](https://github.com/rust-lang/rust/pull/102256/)
120+
- [WebAssembly targets enable `sign-ext` and `mutable-globals` features in codegen](https://github.com/rust-lang/rust/issues/109807)
121+
This may cause incompatibility with older execution environments.
122+
- [Insert alignment checks for pointer dereferences as debug assertions](https://github.com/rust-lang/rust/pull/98112)
123+
This catches undefined behavior at runtime, and may cause existing code to fail.
124+
125+
<a id="1.70.0-Internal-Changes"></a>
126+
127+
Internal Changes
128+
----------------
129+
130+
These changes do not affect any public interfaces of Rust, but they represent
131+
significant improvements to the performance or internals of rustc and related
132+
tools.
133+
134+
- [Upgrade to LLVM 16](https://github.com/rust-lang/rust/pull/109474/)
135+
- [Use SipHash-1-3 instead of SipHash-2-4 for StableHasher](https://github.com/rust-lang/rust/pull/107925/)
136+
137+
Version 1.69.0 (2023-04-20)
138+
==========================
139+
140+
<a id="1.69.0-Language"></a>
141+
142+
Language
143+
--------
144+
145+
- [Deriving built-in traits on packed structs works with `Copy` fields.](https://github.com/rust-lang/rust/pull/104429/)
146+
- [Stabilize the `cmpxchg16b` target feature on x86 and x86_64.](https://github.com/rust-lang/rust/pull/106774/)
147+
- [Improve analysis of trait bounds for associated types.](https://github.com/rust-lang/rust/pull/103695/)
148+
- [Allow associated types to be used as union fields.](https://github.com/rust-lang/rust/pull/106938/)
149+
- [Allow `Self: Autotrait` bounds on dyn-safe trait methods.](https://github.com/rust-lang/rust/pull/107082/)
150+
- [Treat `str` as containing `[u8]` for auto trait purposes.](https://github.com/rust-lang/rust/pull/107941/)
151+
152+
<a id="1.69.0-Compiler"></a>
153+
154+
Compiler
155+
--------
156+
157+
- [Upgrade `*-pc-windows-gnu` on CI to mingw-w64 v10 and GCC 12.2.](https://github.com/rust-lang/rust/pull/100178/)
158+
- [Rework min_choice algorithm of member constraints.](https://github.com/rust-lang/rust/pull/105300/)
159+
- [Support `true` and `false` as boolean flags in compiler arguments.](https://github.com/rust-lang/rust/pull/107043/)
160+
- [Default `repr(C)` enums to `c_int` size.](https://github.com/rust-lang/rust/pull/107592/)
161+
162+
<a id="1.69.0-Libraries"></a>
163+
164+
Libraries
165+
---------
166+
167+
- [Implement the unstable `DispatchFromDyn` for cell types, allowing downstream experimentation with custom method receivers.](https://github.com/rust-lang/rust/pull/97373/)
168+
- [Document that `fmt::Arguments::as_str()` may return `Some(_)` in more cases after optimization, subject to change.](https://github.com/rust-lang/rust/pull/106823/)
169+
- [Implement `AsFd` and `AsRawFd` for `Rc`.](https://github.com/rust-lang/rust/pull/107317/)
170+
171+
<a id="1.69.0-Stabilized-APIs"></a>
172+
173+
Stabilized APIs
174+
---------------
175+
176+
- [`CStr::from_bytes_until_nul`](https://doc.rust-lang.org/stable/core/ffi/struct.CStr.html#method.from_bytes_until_nul)
177+
- [`core::ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/core/ffi/struct.FromBytesUntilNulError.html)
178+
179+
These APIs are now stable in const contexts:
180+
181+
- [`SocketAddr::new`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.new)
182+
- [`SocketAddr::ip`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.ip)
183+
- [`SocketAddr::port`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.port)
184+
- [`SocketAddr::is_ipv4`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.is_ipv4)
185+
- [`SocketAddr::is_ipv6`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.is_ipv6)
186+
- [`SocketAddrV4::new`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.new)
187+
- [`SocketAddrV4::ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.ip)
188+
- [`SocketAddrV4::port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.port)
189+
- [`SocketAddrV6::new`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.new)
190+
- [`SocketAddrV6::ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.ip)
191+
- [`SocketAddrV6::port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.port)
192+
- [`SocketAddrV6::flowinfo`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.flowinfo)
193+
- [`SocketAddrV6::scope_id`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.scope_id)
194+
195+
<a id="1.69.0-Cargo"></a>
196+
197+
Cargo
198+
-----
199+
200+
- [Cargo now suggests `cargo fix` or `cargo clippy --fix` when compilation warnings are auto-fixable.](https://github.com/rust-lang/cargo/pull/11558/)
201+
- [Cargo now suggests `cargo add` if you try to install a library crate.](https://github.com/rust-lang/cargo/pull/11410/)
202+
- [Cargo now sets the `CARGO_BIN_NAME` environment variable also for binary examples.](https://github.com/rust-lang/cargo/pull/11705/)
203+
204+
<a id="1.69.0-Rustdoc"></a>
205+
206+
Rustdoc
207+
-----
208+
209+
- [Vertically compact trait bound formatting.](https://github.com/rust-lang/rust/pull/102842/)
210+
- [Only include stable lints in `rustdoc::all` group.](https://github.com/rust-lang/rust/pull/106316/)
211+
- [Compute maximum Levenshtein distance based on the query.](https://github.com/rust-lang/rust/pull/107141/)
212+
- [Remove inconsistently-present sidebar tooltips.](https://github.com/rust-lang/rust/pull/107490/)
213+
- [Search by macro when query ends with `!`.](https://github.com/rust-lang/rust/pull/108143/)
214+
215+
<a id="1.69.0-Compatibility-Notes"></a>
216+
217+
Compatibility Notes
218+
-------------------
219+
220+
- [The `rust-analysis` component from `rustup` now only contains a warning placeholder.](https://github.com/rust-lang/rust/pull/101841/) This was primarily intended for RLS, and the corresponding `-Zsave-analysis` flag has been removed from the compiler as well.
221+
- [Unaligned references to packed fields are now a hard error.](https://github.com/rust-lang/rust/pull/102513/) This has been a warning since 1.53, and denied by default with a future-compatibility warning since 1.62.
222+
- [Update the minimum external LLVM to 14.](https://github.com/rust-lang/rust/pull/107573/)
223+
- [Cargo now emits errors on invalid characters in a registry token.](https://github.com/rust-lang/cargo/pull/11600/)
224+
- [When `default-features` is set to false of a workspace dependency, and an inherited dependency of a member has `default-features = true`, Cargo will enable default features of that dependency.](https://github.com/rust-lang/cargo/pull/11409/)
225+
- [Cargo denies `CARGO_HOME` in the `[env]` configuration table. Cargo itself doesn't pick up this value, but recursive calls to cargo would, which was not intended.](https://github.com/rust-lang/cargo/pull/11644/)
226+
- [Debuginfo for build dependencies is now off if not explicitly set. This is expected to improve the overall build time.](https://github.com/rust-lang/cargo/pull/11252/)
227+
- [The Rust distribution no longer always includes rustdoc](https://github.com/rust-lang/rust/pull/106886)
228+
If `tools = [...]` is set in config.toml, we will respect a missing rustdoc in that list. By
229+
default rustdoc remains included. To retain the prior behavior explicitly add `"rustdoc"` to the
230+
list.
231+
232+
<a id="1.69.0-Internal-Changes"></a>
233+
234+
Internal Changes
235+
----------------
236+
237+
These changes do not affect any public interfaces of Rust, but they represent
238+
significant improvements to the performance or internals of rustc and related
239+
tools.
240+
241+
- [Move `format_args!()` into AST (and expand it during AST lowering)](https://github.com/rust-lang/rust/pull/106745/)
242+
1243
Version 1.68.2 (2023-03-28)
2244
===========================
3245

@@ -861,7 +1103,7 @@ Compatibility Notes
8611103
- [rustdoc: doctests are now run on unexported `macro_rules!` macros, matching other private items][96630]
8621104
- [rustdoc: Remove .woff font files][96279]
8631105
- [Enforce Copy bounds for repeat elements while considering lifetimes][95819]
864-
- [Windows: Fix potentinal unsoundness by aborting if `File` reads or writes cannot
1106+
- [Windows: Fix potential unsoundness by aborting if `File` reads or writes cannot
8651107
complete synchronously][95469].
8661108

8671109
Internal Changes
@@ -1375,7 +1617,7 @@ and related tools.
13751617
[is_power_of_two_usize]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroUsize.html#method.is_power_of_two
13761618
[stdarch/1266]: https://github.com/rust-lang/stdarch/pull/1266
13771619

1378-
Version 1.58.1 (2022-01-19)
1620+
Version 1.58.1 (2022-01-20)
13791621
===========================
13801622

13811623
* Fix race condition in `std::fs::remove_dir_all` ([CVE-2022-21658])
@@ -1692,10 +1934,10 @@ Libraries
16921934
- [impl Default, Copy, Clone for std::io::Sink and std::io::Empty][rust#86744]
16931935
- [`impl From<[(K, V); N]>` for all collections.][rust#84111]
16941936
- [Remove `P: Unpin` bound on impl Future for Pin.][rust#81363]
1695-
- [Treat invalid environment variable names as non-existent.][rust#86183]
1937+
- [Treat invalid environment variable names as nonexistent.][rust#86183]
16961938
Previously, the environment functions would panic if given a variable name
16971939
with an internal null character or equal sign (`=`). Now, these functions will
1698-
just treat such names as non-existent variables, since the OS cannot represent
1940+
just treat such names as nonexistent variables, since the OS cannot represent
16991941
the existence of a variable with such a name.
17001942

17011943
Stabilised APIs
@@ -1888,7 +2130,7 @@ Compatibility Notes
18882130
kinds of errors could be categorised [into newer more specific `ErrorKind`
18892131
variants][79965], and that they do not represent a user error.
18902132
- [Using environment variable names with `process::Command` on Windows now
1891-
behaves as expected.][85270] Previously using envionment variables with
2133+
behaves as expected.][85270] Previously using environment variables with
18922134
`Command` would cause them to be ASCII-uppercased.
18932135
- [Rustdoc will now warn on using rustdoc lints that aren't prefixed
18942136
with `rustdoc::`][86849]
@@ -6265,7 +6507,7 @@ eg. `static MINUTE: Duration = Duration::from_secs(60);`
62656507

62666508
Cargo
62676509
-----
6268-
- [`cargo new` no longer removes `rust` or `rs` prefixs/suffixs.][cargo/5013]
6510+
- [`cargo new` no longer removes `rust` or `rs` prefixes/suffixes.][cargo/5013]
62696511
- [`cargo new` now defaults to creating a binary crate, instead of a
62706512
library crate.][cargo/5029]
62716513

src/ci/channel

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
beta
1+
stable

0 commit comments

Comments
 (0)