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 7737e0b

Browse files
committed
Auto merge of #95639 - pietroalbini:pa-1.60.0-stable, r=pietroalbini
Prepare 1.60.0 stable release This PR bumps the channel to stable, and backports the following PRs: * Miscellaneous release notes updates. * #94817 * #95256 r? `@ghost`
2 parents edbed40 + 31f4840 commit 7737e0b

File tree

3 files changed

+356
-7
lines changed

3 files changed

+356
-7
lines changed

‎RELEASES.md

Lines changed: 340 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,342 @@
1+
Version 1.60.0 (2022年04月07日)
2+
==========================
3+
4+
Language
5+
--------
6+
- [Stabilize `#[cfg(panic = "...")]` for either `"unwind"` or `"abort"`.][93658]
7+
- [Stabilize `#[cfg(target_has_atomic = "...")]` for each integer size and `"ptr"`.][93824]
8+
9+
Compiler
10+
--------
11+
- [Enable combining `+crt-static` and `relocation-model=pic` on `x86_64-unknown-linux-gnu`][86374]
12+
- [Fixes wrong `unreachable_pub` lints on nested and glob public reexport][87487]
13+
- [Stabilize `-Z instrument-coverage` as `-C instrument-coverage`][90132]
14+
- [Stabilize `-Z print-link-args` as `--print link-args`][91606]
15+
- [Add new Tier 3 target `mips64-openwrt-linux-musl`\*][92300]
16+
- [Add new Tier 3 target `armv7-unknown-linux-uclibceabi` (softfloat)\*][92383]
17+
- [Fix invalid removal of newlines from doc comments][92357]
18+
- [Add kernel target for RustyHermit][92670]
19+
- [Deny mixing bin crate type with lib crate types][92933]
20+
- [Make rustc use `RUST_BACKTRACE=full` by default][93566]
21+
- [Upgrade to LLVM 14][93577]
22+
23+
\* Refer to Rust's [platform support page][platform-support-doc] for more
24+
information on Rust's tiered platform support.
25+
26+
Libraries
27+
---------
28+
- [Guarantee call order for `sort_by_cached_key`][89621]
29+
- [Improve `Duration::try_from_secs_f32`/`f64` accuracy by directly processing exponent and mantissa][90247]
30+
- [Make `Instant::{duration_since, elapsed, sub}` saturating][89926]
31+
- [Remove non-monotonic clocks workarounds in `Instant::now`][89926]
32+
- [Make `BuildHasherDefault`, `iter::Empty` and `future::Pending` covariant][92630]
33+
34+
Stabilized APIs
35+
---------------
36+
- [`Arc::new_cyclic`][arc_new_cyclic]
37+
- [`Rc::new_cyclic`][rc_new_cyclic]
38+
- [`slice::EscapeAscii`][slice_escape_ascii]
39+
- [`<[u8]>::escape_ascii`][slice_u8_escape_ascii]
40+
- [`u8::escape_ascii`][u8_escape_ascii]
41+
- [`Vec::spare_capacity_mut`][vec_spare_capacity_mut]
42+
- [`MaybeUninit::assume_init_drop`][assume_init_drop]
43+
- [`MaybeUninit::assume_init_read`][assume_init_read]
44+
- [`i8::abs_diff`][i8_abs_diff]
45+
- [`i16::abs_diff`][i16_abs_diff]
46+
- [`i32::abs_diff`][i32_abs_diff]
47+
- [`i64::abs_diff`][i64_abs_diff]
48+
- [`i128::abs_diff`][i128_abs_diff]
49+
- [`isize::abs_diff`][isize_abs_diff]
50+
- [`u8::abs_diff`][u8_abs_diff]
51+
- [`u16::abs_diff`][u16_abs_diff]
52+
- [`u32::abs_diff`][u32_abs_diff]
53+
- [`u64::abs_diff`][u64_abs_diff]
54+
- [`u128::abs_diff`][u128_abs_diff]
55+
- [`usize::abs_diff`][usize_abs_diff]
56+
- [`Display for io::ErrorKind`][display_error_kind]
57+
- [`From<u8> for ExitCode`][from_u8_exit_code]
58+
- [`Not for !` (the "never" type)][not_never]
59+
- [_Op_`Assign<$t> for Wrapping<$t>`][wrapping_assign_ops]
60+
- [`arch::is_aarch64_feature_detected!`][is_aarch64_feature_detected]
61+
62+
Cargo
63+
-----
64+
- [Port cargo from `toml-rs` to `toml_edit`][cargo/10086]
65+
- [Stabilize `-Ztimings` as `--timings`][cargo/10245]
66+
- [Stabilize namespaced and weak dependency features.][cargo/10269]
67+
- [Accept more `cargo:rustc-link-arg-*` types from build script output.][cargo/10274]
68+
- [cargo-new should not add ignore rule on Cargo.lock inside subdirs][cargo/10379]
69+
70+
Misc
71+
----
72+
- [Ship docs on Tier 2 platforms by reusing the closest Tier 1 platform docs][92800]
73+
- [Drop rustc-docs from complete profile][93742]
74+
- [bootstrap: tidy up flag handling for llvm build][93918]
75+
76+
Compatibility Notes
77+
-------------------
78+
- [Remove compiler-rt linking hack on Android][83822]
79+
- [Mitigations for platforms with non-monotonic clocks have been removed from
80+
`Instant::now`][89926]. On platforms that don't provide monotonic clocks, an
81+
instant is not guaranteed to be greater than an earlier instant anymore.
82+
- [`Instant::{duration_since, elapsed, sub}` do not panic anymore on underflow,
83+
saturating to `0` instead][89926]. In the real world the panic happened mostly
84+
on platforms with buggy monotonic clock implementations rather than catching
85+
programming errors like reversing the start and end times. Such programming
86+
errors will now results in `0` rather than a panic.
87+
- In a future release we're planning to increase the baseline requirements for
88+
the Linux kernel to version 3.2, and for glibc to version 2.17. We'd love
89+
your feedback in [PR #95026][95026].
90+
91+
Internal Changes
92+
----------------
93+
94+
These changes provide no direct user facing benefits, but represent significant
95+
improvements to the internals and overall performance of rustc
96+
and related tools.
97+
98+
- [Switch all libraries to the 2021 edition][92068]
99+
100+
[83822]: https://github.com/rust-lang/rust/pull/83822
101+
[86374]: https://github.com/rust-lang/rust/pull/86374
102+
[87487]: https://github.com/rust-lang/rust/pull/87487
103+
[89621]: https://github.com/rust-lang/rust/pull/89621
104+
[89926]: https://github.com/rust-lang/rust/pull/89926
105+
[90132]: https://github.com/rust-lang/rust/pull/90132
106+
[90247]: https://github.com/rust-lang/rust/pull/90247
107+
[91606]: https://github.com/rust-lang/rust/pull/91606
108+
[92068]: https://github.com/rust-lang/rust/pull/92068
109+
[92300]: https://github.com/rust-lang/rust/pull/92300
110+
[92357]: https://github.com/rust-lang/rust/pull/92357
111+
[92383]: https://github.com/rust-lang/rust/pull/92383
112+
[92630]: https://github.com/rust-lang/rust/pull/92630
113+
[92670]: https://github.com/rust-lang/rust/pull/92670
114+
[92800]: https://github.com/rust-lang/rust/pull/92800
115+
[92933]: https://github.com/rust-lang/rust/pull/92933
116+
[93566]: https://github.com/rust-lang/rust/pull/93566
117+
[93577]: https://github.com/rust-lang/rust/pull/93577
118+
[93658]: https://github.com/rust-lang/rust/pull/93658
119+
[93742]: https://github.com/rust-lang/rust/pull/93742
120+
[93824]: https://github.com/rust-lang/rust/pull/93824
121+
[93918]: https://github.com/rust-lang/rust/pull/93918
122+
[95026]: https://github.com/rust-lang/rust/pull/95026
123+
124+
[cargo/10086]: https://github.com/rust-lang/cargo/pull/10086
125+
[cargo/10245]: https://github.com/rust-lang/cargo/pull/10245
126+
[cargo/10269]: https://github.com/rust-lang/cargo/pull/10269
127+
[cargo/10274]: https://github.com/rust-lang/cargo/pull/10274
128+
[cargo/10379]: https://github.com/rust-lang/cargo/pull/10379
129+
130+
[arc_new_cyclic]: https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_cyclic
131+
[rc_new_cyclic]: https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_cyclic
132+
[slice_escape_ascii]: https://doc.rust-lang.org/stable/std/slice/struct.EscapeAscii.html
133+
[slice_u8_escape_ascii]: https://doc.rust-lang.org/stable/std/primitive.slice.html#method.escape_ascii
134+
[u8_escape_ascii]: https://doc.rust-lang.org/stable/std/primitive.u8.html#method.escape_ascii
135+
[vec_spare_capacity_mut]: https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.spare_capacity_mut
136+
[assume_init_drop]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init_drop
137+
[assume_init_read]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init_read
138+
[i8_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.i8.html#method.abs_diff
139+
[i16_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.i16.html#method.abs_diff
140+
[i32_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.i32.html#method.abs_diff
141+
[i64_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.i64.html#method.abs_diff
142+
[i128_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.i128.html#method.abs_diff
143+
[isize_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.isize.html#method.abs_diff
144+
[u8_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.u8.html#method.abs_diff
145+
[u16_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.u16.html#method.abs_diff
146+
[u32_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.u32.html#method.abs_diff
147+
[u64_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.u64.html#method.abs_diff
148+
[u128_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.u128.html#method.abs_diff
149+
[usize_abs_diff]: https://doc.rust-lang.org/stable/std/primitive.usize.html#method.abs_diff
150+
[display_error_kind]: https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#impl-Display
151+
[from_u8_exit_code]: https://doc.rust-lang.org/stable/std/process/struct.ExitCode.html#impl-From%3Cu8%3E
152+
[not_never]: https://doc.rust-lang.org/stable/std/primitive.never.html#impl-Not
153+
[wrapping_assign_ops]: https://doc.rust-lang.org/stable/std/num/struct.Wrapping.html#trait-implementations
154+
[is_aarch64_feature_detected]: https://doc.rust-lang.org/stable/std/arch/macro.is_aarch64_feature_detected.html
155+
156+
Version 1.59.0 (2022年02月24日)
157+
==========================
158+
159+
Language
160+
--------
161+
162+
- [Stabilize default arguments for const parameters and remove the ordering restriction for type and const parameters][90207]
163+
- [Stabilize destructuring assignment][90521]
164+
- [Relax private in public lint on generic bounds and where clauses of trait impls][90586]
165+
- [Stabilize asm! and global_asm! for x86, x86_64, ARM, Aarch64, and RISC-V][91728]
166+
167+
Compiler
168+
--------
169+
170+
- [Stabilize new symbol mangling format, leaving it opt-in (-Csymbol-mangling-version=v0)][90128]
171+
- [Emit LLVM optimization remarks when enabled with `-Cremark`][90833]
172+
- [Fix sparc64 ABI for aggregates with floating point members][91003]
173+
- [Warn when a `#[test]`-like built-in attribute macro is present multiple times.][91172]
174+
- [Add support for riscv64gc-unknown-freebsd][91284]
175+
- [Stabilize `-Z emit-future-incompat` as `--json future-incompat`][91535]
176+
- [Soft disable incremental compilation][94124]
177+
178+
This release disables incremental compilation, unless the user has explicitly
179+
opted in via the newly added RUSTC_FORCE_INCREMENTAL=1 environment variable.
180+
This is due to a known and relatively frequently occurring bug in incremental
181+
compilation, which causes builds to issue internal compiler errors. This
182+
particular bug is already fixed on nightly, but that fix has not yet rolled out
183+
to stable and is deemed too risky for a direct stable backport.
184+
185+
As always, we encourage users to test with nightly and report bugs so that we
186+
can track failures and fix issues earlier.
187+
188+
See [94124] for more details.
189+
190+
[94124]: https://github.com/rust-lang/rust/issues/94124
191+
192+
Libraries
193+
---------
194+
195+
- [Remove unnecessary bounds for some Hash{Map,Set} methods][91593]
196+
197+
Stabilized APIs
198+
---------------
199+
200+
- [`std::thread::available_parallelism`][available_parallelism]
201+
- [`Result::copied`][result-copied]
202+
- [`Result::cloned`][result-cloned]
203+
- [`arch::asm!`][asm]
204+
- [`arch::global_asm!`][global_asm]
205+
- [`ops::ControlFlow::is_break`][is_break]
206+
- [`ops::ControlFlow::is_continue`][is_continue]
207+
- [`TryFrom<char> for u8`][try_from_char_u8]
208+
- [`char::TryFromCharError`][try_from_char_err]
209+
implementing `Clone`, `Debug`, `Display`, `PartialEq`, `Copy`, `Eq`, `Error`
210+
- [`iter::zip`][zip]
211+
- [`NonZeroU8::is_power_of_two`][is_power_of_two8]
212+
- [`NonZeroU16::is_power_of_two`][is_power_of_two16]
213+
- [`NonZeroU32::is_power_of_two`][is_power_of_two32]
214+
- [`NonZeroU64::is_power_of_two`][is_power_of_two64]
215+
- [`NonZeroU128::is_power_of_two`][is_power_of_two128]
216+
- [`NonZeroUsize::is_power_of_two`][is_power_of_two_usize]
217+
- [`DoubleEndedIterator for ToLowercase`][lowercase]
218+
- [`DoubleEndedIterator for ToUppercase`][uppercase]
219+
- [`TryFrom<&mut [T]> for [T; N]`][tryfrom_ref_arr]
220+
- [`UnwindSafe for Once`][unwindsafe_once]
221+
- [`RefUnwindSafe for Once`][refunwindsafe_once]
222+
- [armv8 neon intrinsics for aarch64][stdarch/1266]
223+
224+
Const-stable:
225+
226+
- [`mem::MaybeUninit::as_ptr`][muninit_ptr]
227+
- [`mem::MaybeUninit::assume_init`][muninit_init]
228+
- [`mem::MaybeUninit::assume_init_ref`][muninit_init_ref]
229+
- [`ffi::CStr::from_bytes_with_nul_unchecked`][cstr_from_bytes]
230+
231+
Cargo
232+
-----
233+
234+
- [Stabilize the `strip` profile option][cargo/10088]
235+
- [Stabilize future-incompat-report][cargo/10165]
236+
- [Support abbreviating `--release` as `-r`][cargo/10133]
237+
- [Support `term.quiet` configuration][cargo/10152]
238+
- [Remove `--host` from cargo {publish,search,login}][cargo/10145]
239+
240+
Compatibility Notes
241+
-------------------
242+
243+
- [Refactor weak symbols in std::sys::unix][90846]
244+
This may add new, versioned, symbols when building with a newer glibc, as the
245+
standard library uses weak linkage rather than dynamically attempting to load
246+
certain symbols at runtime.
247+
- [Deprecate crate_type and crate_name nested inside `#![cfg_attr]`][83744]
248+
This adds a future compatibility lint to supporting the use of cfg_attr
249+
wrapping either crate_type or crate_name specification within Rust files;
250+
it is recommended that users migrate to setting the equivalent command line
251+
flags.
252+
- [Remove effect of `#[no_link]` attribute on name resolution][92034]
253+
This may expose new names, leading to conflicts with preexisting names in a
254+
given namespace and a compilation failure.
255+
- [Cargo will document libraries before binaries.][cargo/10172]
256+
- [Respect doc=false in dependencies, not just the root crate][cargo/10201]
257+
- [Weaken guarantee around advancing underlying iterators in zip][83791]
258+
- [Make split_inclusive() on an empty slice yield an empty output][89825]
259+
- [Update std::env::temp_dir to use GetTempPath2 on Windows when available.][89999]
260+
- [unreachable! was updated to match other formatting macro behavior on Rust 2021][92137]
261+
262+
Internal Changes
263+
----------------
264+
265+
These changes provide no direct user facing benefits, but represent significant
266+
improvements to the internals and overall performance of rustc
267+
and related tools.
268+
269+
- [Fix many cases of normalization-related ICEs][91255]
270+
- [Replace dominators algorithm with simple Lengauer-Tarjan][85013]
271+
- [Store liveness in interval sets for region inference][90637]
272+
273+
- [Remove `in_band_lifetimes` from the compiler and standard library, in preparation for removing this
274+
unstable feature.][91867]
275+
276+
[91867]: https://github.com/rust-lang/rust/issues/91867
277+
[83744]: https://github.com/rust-lang/rust/pull/83744/
278+
[83791]: https://github.com/rust-lang/rust/pull/83791/
279+
[85013]: https://github.com/rust-lang/rust/pull/85013/
280+
[89825]: https://github.com/rust-lang/rust/pull/89825/
281+
[89999]: https://github.com/rust-lang/rust/pull/89999/
282+
[90128]: https://github.com/rust-lang/rust/pull/90128/
283+
[90207]: https://github.com/rust-lang/rust/pull/90207/
284+
[90521]: https://github.com/rust-lang/rust/pull/90521/
285+
[90586]: https://github.com/rust-lang/rust/pull/90586/
286+
[90637]: https://github.com/rust-lang/rust/pull/90637/
287+
[90833]: https://github.com/rust-lang/rust/pull/90833/
288+
[90846]: https://github.com/rust-lang/rust/pull/90846/
289+
[91003]: https://github.com/rust-lang/rust/pull/91003/
290+
[91172]: https://github.com/rust-lang/rust/pull/91172/
291+
[91255]: https://github.com/rust-lang/rust/pull/91255/
292+
[91284]: https://github.com/rust-lang/rust/pull/91284/
293+
[91535]: https://github.com/rust-lang/rust/pull/91535/
294+
[91593]: https://github.com/rust-lang/rust/pull/91593/
295+
[91728]: https://github.com/rust-lang/rust/pull/91728/
296+
[91878]: https://github.com/rust-lang/rust/pull/91878/
297+
[91896]: https://github.com/rust-lang/rust/pull/91896/
298+
[91926]: https://github.com/rust-lang/rust/pull/91926/
299+
[91984]: https://github.com/rust-lang/rust/pull/91984/
300+
[92020]: https://github.com/rust-lang/rust/pull/92020/
301+
[92034]: https://github.com/rust-lang/rust/pull/92034/
302+
[92137]: https://github.com/rust-lang/rust/pull/92137/
303+
[92483]: https://github.com/rust-lang/rust/pull/92483/
304+
[cargo/10088]: https://github.com/rust-lang/cargo/pull/10088/
305+
[cargo/10133]: https://github.com/rust-lang/cargo/pull/10133/
306+
[cargo/10145]: https://github.com/rust-lang/cargo/pull/10145/
307+
[cargo/10152]: https://github.com/rust-lang/cargo/pull/10152/
308+
[cargo/10165]: https://github.com/rust-lang/cargo/pull/10165/
309+
[cargo/10172]: https://github.com/rust-lang/cargo/pull/10172/
310+
[cargo/10201]: https://github.com/rust-lang/cargo/pull/10201/
311+
[cargo/10269]: https://github.com/rust-lang/cargo/pull/10269/
312+
313+
[cstr_from_bytes]: https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.from_bytes_with_nul_unchecked
314+
[muninit_ptr]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.as_ptr
315+
[muninit_init]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init
316+
[muninit_init_ref]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init_ref
317+
[unwindsafe_once]: https://doc.rust-lang.org/stable/std/sync/struct.Once.html#impl-UnwindSafe
318+
[refunwindsafe_once]: https://doc.rust-lang.org/stable/std/sync/struct.Once.html#impl-RefUnwindSafe
319+
[tryfrom_ref_arr]: https://doc.rust-lang.org/stable/std/convert/trait.TryFrom.html#impl-TryFrom%3C%26%27_%20mut%20%5BT%5D%3E
320+
[lowercase]: https://doc.rust-lang.org/stable/std/char/struct.ToLowercase.html#impl-DoubleEndedIterator
321+
[uppercase]: https://doc.rust-lang.org/stable/std/char/struct.ToUppercase.html#impl-DoubleEndedIterator
322+
[try_from_char_err]: https://doc.rust-lang.org/stable/std/char/struct.TryFromCharError.html
323+
[available_parallelism]: https://doc.rust-lang.org/stable/std/thread/fn.available_parallelism.html
324+
[result-copied]: https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.copied
325+
[result-cloned]: https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.cloned
326+
[asm]: https://doc.rust-lang.org/stable/core/arch/macro.asm.html
327+
[global_asm]: https://doc.rust-lang.org/stable/core/arch/macro.global_asm.html
328+
[is_break]: https://doc.rust-lang.org/stable/std/ops/enum.ControlFlow.html#method.is_break
329+
[is_continue]: https://doc.rust-lang.org/stable/std/ops/enum.ControlFlow.html#method.is_continue
330+
[try_from_char_u8]: https://doc.rust-lang.org/stable/std/primitive.char.html#impl-TryFrom%3Cchar%3E
331+
[zip]: https://doc.rust-lang.org/stable/std/iter/fn.zip.html
332+
[is_power_of_two8]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU8.html#method.is_power_of_two
333+
[is_power_of_two16]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU16.html#method.is_power_of_two
334+
[is_power_of_two32]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU32.html#method.is_power_of_two
335+
[is_power_of_two64]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU64.html#method.is_power_of_two
336+
[is_power_of_two128]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU128.html#method.is_power_of_two
337+
[is_power_of_two_usize]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroUsize.html#method.is_power_of_two
338+
[stdarch/1266]: https://github.com/rust-lang/stdarch/pull/1266
339+
1340
Version 1.58.1 (2022年01月19日)
2341
===========================
3342

@@ -876,7 +1215,7 @@ Version 1.52.1 (2021年05月10日)
8761215
This release disables incremental compilation, unless the user has explicitly
8771216
opted in via the newly added RUSTC_FORCE_INCREMENTAL=1 environment variable.
8781217

879-
This is due to the widespread, and frequently occuring, breakage encountered by
1218+
This is due to the widespread, and frequently occurring, breakage encountered by
8801219
Rust users due to newly enabled incremental verification in 1.52.0. Notably,
8811220
Rust users **should** upgrade to 1.52.0 or 1.52.1: the bugs that are detected by
8821221
newly added incremental verification are still present in past stable versions,

0 commit comments

Comments
(0)

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