1
+ Version 1.55.0 (2021-09-09)
2
+ ============================
3
+
4
+ Language
5
+ --------
6
+ - [You can now write open "from" range patterns (`X..`), which will start at `X` and
7
+ will end at the maximum value of the integer.][83918]
8
+ - [You can now explicitly import the prelude of different editions
9
+ through `std::prelude` (e.g. `use std::prelude::rust_2021::*;`).][86294]
10
+
11
+ Compiler
12
+ --------
13
+ - [Added tier 3\* support for `powerpc64le-unknown-freebsd`.][83572]
14
+
15
+ \* Refer to Rust's [platform support page][platform-support-doc] for more
16
+ information on Rust's tiered platform support.
17
+
18
+ Libraries
19
+ ---------
20
+
21
+ - [Updated std's float parsing to use the Eisel-Lemire algorithm.][86761]
22
+ These improvements should in general provide faster string parsing of floats,
23
+ no longer reject certain valid floating point values, and reduce
24
+ the produced code size for non-stripped artifacts.
25
+ - [`string::Drain` now implements `AsRef<str>` and `AsRef<[u8]>`.][86858]
26
+
27
+ Stabilised APIs
28
+ ---------------
29
+
30
+ - [`Bound::cloned`]
31
+ - [`Drain::as_str`]
32
+ - [`IntoInnerError::into_error`]
33
+ - [`IntoInnerError::into_parts`]
34
+ - [`MaybeUninit::assume_init_mut`]
35
+ - [`MaybeUninit::assume_init_ref`]
36
+ - [`MaybeUninit::write`]
37
+ - [`array::map`]
38
+ - [`ops::ControlFlow`]
39
+ - [`x86::_bittest`]
40
+ - [`x86::_bittestandcomplement`]
41
+ - [`x86::_bittestandreset`]
42
+ - [`x86::_bittestandset`]
43
+ - [`x86_64::_bittest64`]
44
+ - [`x86_64::_bittestandcomplement64`]
45
+ - [`x86_64::_bittestandreset64`]
46
+ - [`x86_64::_bittestandset64`]
47
+
48
+ The following previously stable functions are now `const`.
49
+
50
+ - [`str::from_utf8_unchecked`]
51
+ - [`mem::transmute`]
52
+
53
+
54
+ Cargo
55
+ -----
56
+ - [Cargo will now deduplicate compiler diagnostics to the terminal when invoking
57
+ rustc in parallel such as when using `cargo test`.][cargo/9675]
58
+ - [The package definition in `cargo metadata` now includes the `"default_run"`
59
+ field from the manifest.][cargo/9550]
60
+ - [Added `cargo d` as an alias for `cargo doc`.][cargo/9680]
61
+ - [Added `{lib}` as formatting option for `cargo tree` to print the `"lib_name"`
62
+ of packages.][cargo/9663]
63
+
64
+ Rustdoc
65
+ -------
66
+ - [Added "Go to item on exact match" search option.][85876]
67
+ - [The "Implementors" section on traits no longer shows redundant
68
+ method definitions.][85970]
69
+ - [Trait implementations are toggled open by default.][86260] This should make the
70
+ implementations more searchable by tools like `CTRL+F` in your browser.
71
+ - [Intra-doc links should now correctly resolve associated items (e.g. methods)
72
+ through type aliases.][86334]
73
+ - [Traits which are marked with `#[doc(hidden)]` will no longer appear in the
74
+ "Trait Implementations" section.][86513]
75
+
76
+
77
+ Compatibility Notes
78
+ -------------------
79
+ - [std functions that return an `io::Error` will no longer use the
80
+ `ErrorKind::Other` variant.][85746] This is to better reflect that these
81
+ kinds of errors could be categorised [into newer more specific `ErrorKind`
82
+ variants][79965], and that they do not represent a user error.
83
+ - [Using environment variable names with `process::Command` on Windows now
84
+ behaves as expected.][85270] Previously using envionment variables with
85
+ `Command` would cause them to be ASCII-uppercased.
86
+ - [Rustdoc will now warn on using rustdoc lints that aren't prefixed
87
+ with `rustdoc::`][86849]
88
+
89
+ [86849]: https://github.com/rust-lang/rust/pull/86849
90
+ [86513]: https://github.com/rust-lang/rust/pull/86513
91
+ [86334]: https://github.com/rust-lang/rust/pull/86334
92
+ [86260]: https://github.com/rust-lang/rust/pull/86260
93
+ [85970]: https://github.com/rust-lang/rust/pull/85970
94
+ [85876]: https://github.com/rust-lang/rust/pull/85876
95
+ [83572]: https://github.com/rust-lang/rust/pull/83572
96
+ [86294]: https://github.com/rust-lang/rust/pull/86294
97
+ [86858]: https://github.com/rust-lang/rust/pull/86858
98
+ [86761]: https://github.com/rust-lang/rust/pull/86761
99
+ [85769]: https://github.com/rust-lang/rust/pull/85769
100
+ [85746]: https://github.com/rust-lang/rust/pull/85746
101
+ [85305]: https://github.com/rust-lang/rust/pull/85305
102
+ [85270]: https://github.com/rust-lang/rust/pull/85270
103
+ [84111]: https://github.com/rust-lang/rust/pull/84111
104
+ [83918]: https://github.com/rust-lang/rust/pull/83918
105
+ [79965]: https://github.com/rust-lang/rust/pull/79965
106
+ [87370]: https://github.com/rust-lang/rust/pull/87370
107
+ [87298]: https://github.com/rust-lang/rust/pull/87298
108
+ [cargo/9663]: https://github.com/rust-lang/cargo/pull/9663
109
+ [cargo/9675]: https://github.com/rust-lang/cargo/pull/9675
110
+ [cargo/9550]: https://github.com/rust-lang/cargo/pull/9550
111
+ [cargo/9680]: https://github.com/rust-lang/cargo/pull/9680
112
+ [cargo/9663]: https://github.com/rust-lang/cargo/pull/9663
113
+ [`array::map`]: https://doc.rust-lang.org/stable/std/primitive.array.html#method.map
114
+ [`Bound::cloned`]: https://doc.rust-lang.org/stable/std/ops/enum.Bound.html#method.cloned
115
+ [`Drain::as_str`]: https://doc.rust-lang.org/stable/std/string/struct.Drain.html#method.as_str
116
+ [`IntoInnerError::into_error`]: https://doc.rust-lang.org/stable/std/io/struct.IntoInnerError.html#method.into_error
117
+ [`IntoInnerError::into_parts`]: https://doc.rust-lang.org/stable/std/io/struct.IntoInnerError.html#method.into_parts
118
+ [`MaybeUninit::assume_init_mut`]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init_mut
119
+ [`MaybeUninit::assume_init_ref`]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init_ref
120
+ [`MaybeUninit::write`]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.write
121
+ [`Seek::rewind`]: https://doc.rust-lang.org/stable/std/io/trait.Seek.html#method.rewind
122
+ [`mem::transmute`]: https://doc.rust-lang.org/stable/std/mem/fn.transmute.html
123
+ [`ops::ControlFlow`]: https://doc.rust-lang.org/stable/std/ops/enum.ControlFlow.html
124
+ [`str::from_utf8_unchecked`]: https://doc.rust-lang.org/stable/std/str/fn.from_utf8_unchecked.html
125
+ [`x86::_bittest`]: https://doc.rust-lang.org/stable/core/arch/x86/fn._bittest.html
126
+ [`x86::_bittestandcomplement`]: https://doc.rust-lang.org/stable/core/arch/x86/fn._bittestandcomplement.html
127
+ [`x86::_bittestandreset`]: https://doc.rust-lang.org/stable/core/arch/x86/fn._bittestandreset.html
128
+ [`x86::_bittestandset`]: https://doc.rust-lang.org/stable/core/arch/x86/fn._bittestandset.html
129
+ [`x86_64::_bittest64`]: https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bittest64.html
130
+ [`x86_64::_bittestandcomplement64`]: https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bittestandcomplement64.html
131
+ [`x86_64::_bittestandreset64`]: https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bittestandreset64.html
132
+ [`x86_64::_bittestandset64`]: https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bittestandset64.html
133
+
134
+
1
135
Version 1.54.0 (2021-07-29)
2
136
============================
3
137
4
138
Language
5
139
-----------------------
6
140
7
- - [You can now use macros for values in built-in attribute macros .][83366]
8
- While a seemingly minor addition on its own, this enables a lot of
9
- powerful functionality when combined correctly. Most notably you can
10
- now include external documentation in your crate by writing the following.
141
+ - [You can now use macros for values in some built-in attributes .][83366]
142
+ This primarily allows you to call macros within the `#[doc]` attribute. For
143
+ example, to include external documentation in your crate, you can now write
144
+ the following:
11
145
```rust
12
146
#![doc = include_str!("README.md")]
13
147
```
14
- You can also use this to include auto-generated modules:
15
- ```rust
16
- #[path = concat!(env!("OUT_DIR"), "/generated.rs")]
17
- mod generated;
18
- ```
19
148
20
149
- [You can now cast between unsized slice types (and types which contain
21
150
unsized slices) in `const fn`.][85078]
@@ -37,6 +166,7 @@ Compiler
37
166
- [Improved debugger output for enums on Windows MSVC platforms.][85292]
38
167
- [Added tier 3\* support for `bpfel-unknown-none`
39
168
and `bpfeb-unknown-none`.][79608]
169
+ - [`-Zmutable-noalias=yes`][82834] is enabled by default when using LLVM 12 or above.
40
170
41
171
\* Refer to Rust's [platform support page][platform-support-doc] for more
42
172
information on Rust's tiered platform support.
@@ -106,6 +236,7 @@ Compatibility Notes
106
236
[83366]: https://github.com/rust-lang/rust/pull/83366
107
237
[83278]: https://github.com/rust-lang/rust/pull/83278
108
238
[85292]: https://github.com/rust-lang/rust/pull/85292
239
+ [82834]: https://github.com/rust-lang/rust/pull/82834
109
240
[cargo/9520]: https://github.com/rust-lang/cargo/pull/9520
110
241
[cargo/9499]: https://github.com/rust-lang/cargo/pull/9499
111
242
[cargo/9488]: https://github.com/rust-lang/cargo/pull/9488
@@ -168,7 +299,7 @@ Libraries
168
299
- [`leading_zeros`, and `trailing_zeros` are now available on all
169
300
`NonZero` integer types.][84082]
170
301
- [`{f32, f64}::from_str` now parse and print special values
171
- (`NaN`, `-0`) according to IEEE RFC 754.][78618]
302
+ (`NaN`, `-0`) according to IEEE 754.][78618]
172
303
- [You can now index into slices using `(Bound<usize>, Bound<usize>)`.][77704]
173
304
- [Add the `BITS` associated constant to all numeric types.][82565]
174
305
0 commit comments