Skip to content

Commit 0a07e55

Browse files
committed
Add release notes for 1.61.0
1 parent baaa3b6 commit 0a07e55

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

RELEASES.md

+120
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,123 @@
1+
Version 1.61.0 (2022-05-19)
2+
==========================
3+
4+
Language
5+
--------
6+
7+
- [`const fn` signatures can now include generic trait bounds][93827]
8+
- [`const fn` signatures can now use `impl Trait` in argument and return position][93827]
9+
- [Function pointers can now be created, cast, and passed around in a `const fn`][93827]
10+
- [Recursive calls can now set the value of a function's opaque `impl Trait` return type][94081]
11+
12+
Compiler
13+
--------
14+
15+
- [Linking modifier syntax in `#[link]` attributes and on the command line, as well as the `whole-archive` modifier specifically, are now supported][93901]
16+
- [Update to LLVM 14.0.0][95247]
17+
- [The `char` type is now described as UTF-8 (`DW_ATE_UTF`) in DWARF debuginfo][89887]
18+
- The [`#[target_feature]`][target_feature] attribute [can now be used with aarch64 features][90621]
19+
- [`#[target_feature = "adx"]` is now stable][93745]
20+
- [Catching a second unwind from FFI code while cleaning up from a Rust panic now causes the process to abort][92911]
21+
22+
Libraries
23+
---------
24+
25+
- [`ManuallyDrop<T>` is now documented to have the same layout as `T`][88375]
26+
- [Windows paths longer than 260 chars are now supported in `process::Command` without needing explicit canonoicalization][92519]
27+
- [`#[ignore = "…"]` messages are printed when running tests][92714]
28+
- [Consistently present absent stdio handles on Windows as NULL handles][93263]
29+
- [Make `std::io::stdio::lock()` return `'static` handles][93965]
30+
- [`Vec::from_raw_parts` is now less restrictive about its inputs][95016]
31+
- [Use cgroup quotas for calculating `available_parallelism` on Linux][92697]
32+
33+
Stabilized APIs
34+
---------------
35+
36+
- [`From<&[T; N]>` for `Vec<T>`][95098]
37+
- [`From<&mut [T; N]>` for `Vec<T>`][95098]
38+
- [`Pin::static_mut`][93580]
39+
- [`Pin::static_ref`][93580]
40+
- [`Vec::retain_mut`][95491]
41+
- [`VecDeque::retain_mut`][95491]
42+
- [`Write` for `Cursor<[u8; N]>`][92663]
43+
- [`std::os::unix::net::SocketAddr::from_pathname`][94356]
44+
- [`std::process::ExitCode`][93840]
45+
- [`std::process::Termination`][93840]
46+
- [`std::thread::JoinHandle::is_finished`][95130]
47+
48+
These APIs are now usable in const contexts:
49+
50+
- [`*const T::offset` and `*mut T::offset`][93957]
51+
- [`*const T::wrapping_offset` and `*mut T::wrapping_offset`][93957]
52+
- [`*const T::add` and `*mut T::add`][93957]
53+
- [`*const T::sub` and `*mut T::sub`][93957]
54+
- [`*const T::wrapping_add` and `*mut T::wrapping_add`][93957]
55+
- [`*const T::wrapping_sub` and `*mut T::wrapping_sub`][93957]
56+
- [`[T]::as_mut_ptr`][93957]
57+
- [`[T]::as_ptr_range`][93957]
58+
- [`[T]::as_mut_ptr_range`][93957]
59+
60+
Cargo
61+
-----
62+
63+
No feature changes, but see compatibility notes.
64+
65+
Compatibility Notes
66+
-------------------
67+
68+
- [Disable `#[thread_local]` support on i686-pc-windows-msvc][95430]
69+
- [Proc macros no longer see `ident` matchers wrapped in groups][92472]
70+
- [The number of `#` in `r#` raw string literals is now required to be less than 256][95251]
71+
- [When checking that a dyn type satisfies a trait bound, supertrait bounds are now enforced][92285]
72+
- [`cargo vendor` now only accepts one value for each `--sync` flag][cargo/10448]
73+
- [`cfg` predicates in `all()` and `any()` are always evaluated to detect errors, instead of short-circuiting][94295]
74+
- [bootstrap: static-libstdcpp is now enabled by default, and can now be disabled when llvm-tools is enabled][94832]
75+
76+
Internal Changes
77+
----------------
78+
79+
These changes provide no direct user facing benefits, but represent significant
80+
improvements to the internals and overall performance of rustc
81+
and related tools.
82+
83+
- [debuginfo: Refactor debuginfo generation for types][94261]
84+
- [Remove the everybody loops pass][93913]
85+
86+
[88375]: https://github.com/rust-lang/rust/pull/88375/
87+
[89887]: https://github.com/rust-lang/rust/pull/89887/
88+
[90621]: https://github.com/rust-lang/rust/pull/90621/
89+
[92285]: https://github.com/rust-lang/rust/pull/92285/
90+
[92472]: https://github.com/rust-lang/rust/pull/92472/
91+
[92519]: https://github.com/rust-lang/rust/pull/92519/
92+
[92663]: https://github.com/rust-lang/rust/pull/92663/
93+
[92697]: https://github.com/rust-lang/rust/pull/92697/
94+
[92714]: https://github.com/rust-lang/rust/pull/92714/
95+
[92911]: https://github.com/rust-lang/rust/pull/92911/
96+
[93263]: https://github.com/rust-lang/rust/pull/93263/
97+
[93580]: https://github.com/rust-lang/rust/pull/93580/
98+
[93745]: https://github.com/rust-lang/rust/pull/93745/
99+
[93827]: https://github.com/rust-lang/rust/pull/93827/
100+
[93840]: https://github.com/rust-lang/rust/pull/93840/
101+
[93901]: https://github.com/rust-lang/rust/pull/93901/
102+
[93913]: https://github.com/rust-lang/rust/pull/93913/
103+
[93957]: https://github.com/rust-lang/rust/pull/93957/
104+
[93965]: https://github.com/rust-lang/rust/pull/93965/
105+
[94081]: https://github.com/rust-lang/rust/pull/94081/
106+
[94261]: https://github.com/rust-lang/rust/pull/94261/
107+
[94295]: https://github.com/rust-lang/rust/pull/94295/
108+
[94356]: https://github.com/rust-lang/rust/pull/94356/
109+
[94832]: https://github.com/rust-lang/rust/pull/94832/
110+
[95016]: https://github.com/rust-lang/rust/pull/95016/
111+
[95098]: https://github.com/rust-lang/rust/pull/95098/
112+
[95130]: https://github.com/rust-lang/rust/pull/95130/
113+
[95247]: https://github.com/rust-lang/rust/pull/95247/
114+
[95251]: https://github.com/rust-lang/rust/pull/95251/
115+
[95430]: https://github.com/rust-lang/rust/pull/95430/
116+
[95491]: https://github.com/rust-lang/rust/pull/95491/
117+
[cargo/10448]: https://github.com/rust-lang/cargo/pull/10448/
118+
[target_feature]: https://doc.rust-lang.org/reference/attributes/codegen.html#the-target_feature-attribute
119+
120+
1121
Version 1.60.0 (2022-04-07)
2122
==========================
3123

0 commit comments

Comments
 (0)