Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a8314ef

Browse files
committed
Auto merge of #98571 - pietroalbini:pa-1.62.0-stable, r=pietroalbini
[stable] Prepare 1.62.0 stable release This PR backports the latest release note changes from master, and prepares the stable artifacts. r? `@ghost`
2 parents 747075d + 9b230ea commit a8314ef

File tree

2 files changed

+252
-1
lines changed

2 files changed

+252
-1
lines changed

‎RELEASES.md

Lines changed: 251 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,254 @@
1+
Version 1.62.0 (2022年06月30日)
2+
==========================
3+
4+
Language
5+
--------
6+
7+
- [Stabilize `#[derive(Default)]` on enums with a `#[default]` variant][94457]
8+
- [Stop validating some checks in dead code after functions with uninhabited return types][93313]
9+
- [Fix constants not getting dropped if part of a diverging expression][94775]
10+
- [Support unit struct/enum variant in destructuring assignment][95380]
11+
- [Remove mutable_borrow_reservation_conflict lint and allow the code pattern][96268]
12+
13+
Compiler
14+
--------
15+
16+
- [linker: Stop using whole-archive on dependencies of dylibs][96436]
17+
- [Make `unaligned_references` lint deny-by-default][95372]
18+
This lint is also a future compatibility lint, and is expected to eventually
19+
become a hard error.
20+
- [Only add codegen backend to dep info if -Zbinary-dep-depinfo is used][93969]
21+
- [Reject `#[thread_local]` attribute on non-static items][95006]
22+
- [Add tier 3 `aarch64-pc-windows-gnullvm` and `x86_64-pc-windows-gnullvm` targets\*][94872]
23+
- [Implement a lint to warn about unused macro rules][96150]
24+
- [Promote `x86_64-unknown-none` target to Tier 2\*][95705]
25+
26+
\* Refer to Rust's [platform support page][platform-support-doc] for more
27+
information on Rust's tiered platform support.
28+
29+
Libraries
30+
---------
31+
32+
- [Move `CStr` to libcore, and `CString` to liballoc][94079]
33+
- [Windows: Use a pipe relay for chaining pipes][95841]
34+
- [Replace Linux Mutex and Condvar with futex based ones.][95035]
35+
- [Replace RwLock by a futex based one on Linux][95801]
36+
- [std: directly use pthread in UNIX parker implementation][96393]
37+
38+
Stabilized APIs
39+
---------------
40+
41+
- [`bool::then_some`]
42+
- [`f32::total_cmp`]
43+
- [`f64::total_cmp`]
44+
- [`Stdin::lines`]
45+
- [`windows::CommandExt::raw_arg`]
46+
- [`impl<T: Default> Default for AssertUnwindSafe<T>`]
47+
- [`From<Rc<str>> for Rc<[u8]>`][rc-u8-from-str]
48+
- [`From<Arc<str>> for Arc<[u8]>`][arc-u8-from-str]
49+
- [`FusedIterator for EncodeWide`]
50+
- [RDM intrinsics on aarch64][stdarch/1285]
51+
52+
Clippy
53+
------
54+
55+
- [Create clippy lint against unexpectedly late drop for temporaries in match scrutinee expressions][94206]
56+
57+
Cargo
58+
-----
59+
60+
- Added the `cargo add` command for adding dependencies to `Cargo.toml` from
61+
the command-line.
62+
[docs](https://doc.rust-lang.org/nightly/cargo/commands/cargo-add.html)
63+
- Package ID specs now support `name@version` syntax in addition to the
64+
previous `name:version` to align with the behavior in `cargo add` and other
65+
tools. `cargo install` and `cargo yank` also now support this syntax so the
66+
version does not need to passed as a separate flag.
67+
- The `git` and `registry` directories in Cargo's home directory (usually
68+
`~/.cargo`) are now marked as cache directories so that they are not
69+
included in backups or content indexing (on Windows).
70+
- Added automatic `@` argfile support, which will use "response files" if the
71+
command-line to `rustc` exceeds the operating system's limit.
72+
73+
Compatibility Notes
74+
-------------------
75+
76+
- `cargo test` now passes `--target` to `rustdoc` if the specified target is
77+
the same as the host target.
78+
[#10594](https://github.com/rust-lang/cargo/pull/10594)
79+
- [rustdoc: Remove .woff font files][96279]
80+
- [Enforce Copy bounds for repeat elements while considering lifetimes][95819]
81+
82+
Internal Changes
83+
----------------
84+
85+
- [Unify ReentrantMutex implementations across all platforms][96042]
86+
87+
These changes provide no direct user facing benefits, but represent significant
88+
improvements to the internals and overall performance of rustc
89+
and related tools.
90+
91+
[93313]: https://github.com/rust-lang/rust/pull/93313/
92+
[93969]: https://github.com/rust-lang/rust/pull/93969/
93+
[94079]: https://github.com/rust-lang/rust/pull/94079/
94+
[94206]: https://github.com/rust-lang/rust/pull/94206/
95+
[94457]: https://github.com/rust-lang/rust/pull/94457/
96+
[94775]: https://github.com/rust-lang/rust/pull/94775/
97+
[94872]: https://github.com/rust-lang/rust/pull/94872/
98+
[95006]: https://github.com/rust-lang/rust/pull/95006/
99+
[95035]: https://github.com/rust-lang/rust/pull/95035/
100+
[95372]: https://github.com/rust-lang/rust/pull/95372/
101+
[95380]: https://github.com/rust-lang/rust/pull/95380/
102+
[95431]: https://github.com/rust-lang/rust/pull/95431/
103+
[95705]: https://github.com/rust-lang/rust/pull/95705/
104+
[95801]: https://github.com/rust-lang/rust/pull/95801/
105+
[95819]: https://github.com/rust-lang/rust/pull/95819/
106+
[95841]: https://github.com/rust-lang/rust/pull/95841/
107+
[96042]: https://github.com/rust-lang/rust/pull/96042/
108+
[96150]: https://github.com/rust-lang/rust/pull/96150/
109+
[96268]: https://github.com/rust-lang/rust/pull/96268/
110+
[96279]: https://github.com/rust-lang/rust/pull/96279/
111+
[96393]: https://github.com/rust-lang/rust/pull/96393/
112+
[96436]: https://github.com/rust-lang/rust/pull/96436/
113+
[96557]: https://github.com/rust-lang/rust/pull/96557/
114+
115+
[`bool::then_some`]: https://doc.rust-lang.org/stable/std/primitive.bool.html#method.then_some
116+
[`f32::total_cmp`]: https://doc.rust-lang.org/stable/std/primitive.f32.html#method.total_cmp
117+
[`f64::total_cmp`]: https://doc.rust-lang.org/stable/std/primitive.f64.html#method.total_cmp
118+
[`Stdin::lines`]: https://doc.rust-lang.org/stable/std/io/struct.Stdin.html#method.lines
119+
[`impl<T: Default> Default for AssertUnwindSafe<T>`]: https://doc.rust-lang.org/stable/std/panic/struct.AssertUnwindSafe.html#impl-Default
120+
[rc-u8-from-str]: https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#impl-From%3CRc%3Cstr%3E%3E
121+
[arc-u8-from-str]: https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#impl-From%3CArc%3Cstr%3E%3E
122+
[stdarch/1285]: https://github.com/rust-lang/stdarch/pull/1285
123+
[`windows::CommandExt::raw_arg`]: https://doc.rust-lang.org/stable/std/os/windows/process/trait.CommandExt.html#tymethod.raw_arg
124+
[`FusedIterator for EncodeWide`]: https://doc.rust-lang.org/stable/std/os/windows/ffi/struct.EncodeWide.html#impl-FusedIterator
125+
126+
Version 1.61.0 (2022年05月19日)
127+
==========================
128+
129+
Language
130+
--------
131+
132+
- [`const fn` signatures can now include generic trait bounds][93827]
133+
- [`const fn` signatures can now use `impl Trait` in argument and return position][93827]
134+
- [Function pointers can now be created, cast, and passed around in a `const fn`][93827]
135+
- [Recursive calls can now set the value of a function's opaque `impl Trait` return type][94081]
136+
137+
Compiler
138+
--------
139+
140+
- [Linking modifier syntax in `#[link]` attributes and on the command line, as well as the `whole-archive` modifier specifically, are now supported][93901]
141+
- [The `char` type is now described as UTF-32 in debuginfo][89887]
142+
- The [`#[target_feature]`][target_feature] attribute [can now be used with aarch64 features][90621]
143+
- X86 [`#[target_feature = "adx"]` is now stable][93745]
144+
145+
Libraries
146+
---------
147+
148+
- [`ManuallyDrop<T>` is now documented to have the same layout as `T`][88375]
149+
- [`#[ignore = "..."]` messages are printed when running tests][92714]
150+
- [Consistently show absent stdio handles on Windows as NULL handles][93263]
151+
- [Make `std::io::stdio::lock()` return `'static` handles.][93965] Previously, the creation of locked handles to stdin/stdout/stderr would borrow the handles being locked, which prevented writing `let out = std::io::stdout().lock();` because `out` would outlive the return value of `stdout()`. Such code now works, eliminating a common pitfall that affected many Rust users.
152+
- [`Vec::from_raw_parts` is now less restrictive about its inputs][95016]
153+
- [`std::thread::available_parallelism` now takes cgroup quotas into account.][92697] Since `available_parallelism` is often used to create a thread pool for parallel computation, which may be CPU-bound for performance, `available_parallelism` will return a value consistent with the ability to use that many threads continuously, if possible. For instance, in a container with 8 virtual CPUs but quotas only allowing for 50% usage, `available_parallelism` will return 4.
154+
155+
Stabilized APIs
156+
---------------
157+
158+
- [`Pin::static_mut`]
159+
- [`Pin::static_ref`]
160+
- [`Vec::retain_mut`]
161+
- [`VecDeque::retain_mut`]
162+
- [`Write` for `Cursor<[u8; N]>`][cursor-write-array]
163+
- [`std::os::unix::net::SocketAddr::from_pathname`]
164+
- [`std::process::ExitCode`] and [`std::process::Termination`]. The stabilization of these two APIs now makes it possible for programs to return errors from `main` with custom exit codes.
165+
- [`std::thread::JoinHandle::is_finished`]
166+
167+
These APIs are now usable in const contexts:
168+
169+
- [`<*const T>::offset` and `<*mut T>::offset`][ptr-offset]
170+
- [`<*const T>::wrapping_offset` and `<*mut T>::wrapping_offset`][ptr-wrapping_offset]
171+
- [`<*const T>::add` and `<*mut T>::add`][ptr-add]
172+
- [`<*const T>::sub` and `<*mut T>::sub`][ptr-sub]
173+
- [`<*const T>::wrapping_add` and `<*mut T>::wrapping_add`][ptr-wrapping_add]
174+
- [`<*const T>::wrapping_sub` and `<*mut T>::wrapping_sub`][ptr-wrapping_sub]
175+
- [`<[T]>::as_mut_ptr`][slice-as_mut_ptr]
176+
- [`<[T]>::as_ptr_range`][slice-as_ptr_range]
177+
- [`<[T]>::as_mut_ptr_range`][slice-as_mut_ptr_range]
178+
179+
Cargo
180+
-----
181+
182+
No feature changes, but see compatibility notes.
183+
184+
Compatibility Notes
185+
-------------------
186+
187+
- Previously native static libraries were linked as `whole-archive` in some cases, but now rustc tries not to use `whole-archive` unless explicitly requested. This [change][93901] may result in linking errors in some cases. To fix such errors, native libraries linked from the command line, build scripts, or [`#[link]` attributes][link-attr] need to
188+
- (more common) either be reordered to respect dependencies between them (if `a` depends on `b` then `a` should go first and `b` second)
189+
- (less common) or be updated to use the [`+whole-archive`] modifier.
190+
- [Catching a second unwind from FFI code while cleaning up from a Rust panic now causes the process to abort][92911]
191+
- [Proc macros no longer see `ident` matchers wrapped in groups][92472]
192+
- [The number of `#` in `r#` raw string literals is now required to be less than 256][95251]
193+
- [When checking that a dyn type satisfies a trait bound, supertrait bounds are now enforced][92285]
194+
- [`cargo vendor` now only accepts one value for each `--sync` flag][cargo/10448]
195+
- [`cfg` predicates in `all()` and `any()` are always evaluated to detect errors, instead of short-circuiting.][94295] The compatibility considerations here arise in nightly-only code that used the short-circuiting behavior of `all` to write something like `cfg(all(feature = "nightly", syntax-requiring-nightly))`, which will now fail to compile. Instead, use either `cfg_attr(feature = "nightly", ...)` or nested uses of `cfg`.
196+
- [bootstrap: static-libstdcpp is now enabled by default, and can now be disabled when llvm-tools is enabled][94832]
197+
198+
Internal Changes
199+
----------------
200+
201+
These changes provide no direct user facing benefits, but represent significant
202+
improvements to the internals and overall performance of rustc
203+
and related tools.
204+
205+
- [debuginfo: Refactor debuginfo generation for types][94261]
206+
- [Remove the everybody loops pass][93913]
207+
208+
[88375]: https://github.com/rust-lang/rust/pull/88375/
209+
[89887]: https://github.com/rust-lang/rust/pull/89887/
210+
[90621]: https://github.com/rust-lang/rust/pull/90621/
211+
[92285]: https://github.com/rust-lang/rust/pull/92285/
212+
[92472]: https://github.com/rust-lang/rust/pull/92472/
213+
[92697]: https://github.com/rust-lang/rust/pull/92697/
214+
[92714]: https://github.com/rust-lang/rust/pull/92714/
215+
[92911]: https://github.com/rust-lang/rust/pull/92911/
216+
[93263]: https://github.com/rust-lang/rust/pull/93263/
217+
[93745]: https://github.com/rust-lang/rust/pull/93745/
218+
[93827]: https://github.com/rust-lang/rust/pull/93827/
219+
[93901]: https://github.com/rust-lang/rust/pull/93901/
220+
[93913]: https://github.com/rust-lang/rust/pull/93913/
221+
[93965]: https://github.com/rust-lang/rust/pull/93965/
222+
[94081]: https://github.com/rust-lang/rust/pull/94081/
223+
[94261]: https://github.com/rust-lang/rust/pull/94261/
224+
[94295]: https://github.com/rust-lang/rust/pull/94295/
225+
[94832]: https://github.com/rust-lang/rust/pull/94832/
226+
[95016]: https://github.com/rust-lang/rust/pull/95016/
227+
[95251]: https://github.com/rust-lang/rust/pull/95251/
228+
[`+whole-archive`]: https://doc.rust-lang.org/stable/rustc/command-line-arguments.html#linking-modifiers-whole-archive
229+
[`Pin::static_mut`]: https://doc.rust-lang.org/stable/std/pin/struct.Pin.html#method.static_mut
230+
[`Pin::static_ref`]: https://doc.rust-lang.org/stable/std/pin/struct.Pin.html#method.static_ref
231+
[`Vec::retain_mut`]: https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.retain_mut
232+
[`VecDeque::retain_mut`]: https://doc.rust-lang.org/stable/std/collections/struct.VecDeque.html#method.retain_mut
233+
[`std::os::unix::net::SocketAddr::from_pathname`]: https://doc.rust-lang.org/stable/std/os/unix/net/struct.SocketAddr.html#method.from_pathname
234+
[`std::process::ExitCode`]: https://doc.rust-lang.org/stable/std/process/struct.ExitCode.html
235+
[`std::process::Termination`]: https://doc.rust-lang.org/stable/std/process/trait.Termination.html
236+
[`std::thread::JoinHandle::is_finished`]: https://doc.rust-lang.org/stable/std/thread/struct.JoinHandle.html#method.is_finished
237+
[cargo/10448]: https://github.com/rust-lang/cargo/pull/10448/
238+
[cursor-write-array]: https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#impl-Write-4
239+
[link-attr]: https://doc.rust-lang.org/stable/reference/items/external-blocks.html#the-link-attribute
240+
[ptr-add]: https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.add
241+
[ptr-offset]: https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset
242+
[ptr-sub]: https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.sub
243+
[ptr-wrapping_add]: https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.wrapping_add
244+
[ptr-wrapping_offset]: https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.wrapping_offset
245+
[ptr-wrapping_sub]: https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.wrapping_sub
246+
[slice-as_mut_ptr]: https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_mut_ptr
247+
[slice-as_mut_ptr_range]: https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_mut_ptr_range
248+
[slice-as_ptr_range]: https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_ptr_range
249+
[target_feature]: https://doc.rust-lang.org/reference/attributes/codegen.html#the-target_feature-attribute
250+
251+
1252
Version 1.60.0 (2022年04月07日)
2253
==========================
3254

‎src/ci/channel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
beta
1+
stable

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /