1
+ Version 1.46.0 (2020-08-27)
2
+ ==========================
3
+
4
+ Language
5
+ --------
6
+ - [`if`, `match`, and `loop` expressions can now be used in const functions.][72437]
7
+ - [Additionally you are now also able to coerce and cast to slices (`&[T]`) in
8
+ const functions.][73862]
9
+ - [The `#[track_caller]` attribute can now be added to functions to use the
10
+ function's caller's location information for panic messages.][72445]
11
+ - [Recursively indexing into tuples no longer needs parentheses.][71322] E.g.
12
+ `x.0.0` over `(x.0).0`.
13
+ - [`mem::transmute` can now be used in static and constants.][72920] **Note**
14
+ You currently can't use `mem::transmute` in constant functions.
15
+
16
+ Compiler
17
+ --------
18
+ - [You can now use the `cdylib` target on Apple iOS and tvOS platforms.][73516]
19
+ - [Enabled static "Position Independent Executables" by default
20
+ for `x86_64-unknown-linux-musl`.][70740]
21
+
22
+ Libraries
23
+ ---------
24
+ - [`mem::forget` is now a `const fn`.][73887]
25
+ - [`String` now implements `From<char>`.][73466]
26
+ - [The `leading_ones`, and `trailing_ones` methods have been stabilised for all
27
+ integer types.][73032]
28
+ - [`vec::IntoIter<T>` now implements `AsRef<[T]>`.][72583]
29
+ - [All non-zero integer types (`NonZeroU8`) now implement `TryFrom` for their
30
+ zero-able equivalent (e.g. `TryFrom<u8>`).][72717]
31
+ - [`&[T]` and `&mut [T]` now implement `PartialEq<Vec<T>>`.][71660]
32
+ - [`(String, u16)` now implements `ToSocketAddrs`.][73007]
33
+ - [`vec::Drain<'_, T>` now implements `AsRef<[T]>`.][72584]
34
+
35
+ Stabilized APIs
36
+ ---------------
37
+ - [`Option::zip`]
38
+ - [`vec::Drain::as_slice`]
39
+
40
+ Cargo
41
+ -----
42
+ Added a number of new environment variables that are now available when
43
+ compiling your crate.
44
+
45
+ - [`CARGO_BIN_NAME` and `CARGO_CRATE_NAME`][cargo/8270] Providing the name of
46
+ the specific binary being compiled and the name of the crate.
47
+ - [`CARGO_PKG_LICENSE`][cargo/8325] The license from the manifest of the package.
48
+ - [`CARGO_PKG_LICENSE_FILE`][cargo/8387] The path to the license file.
49
+
50
+ Compatibility Notes
51
+ -------------------
52
+ - [The target configuration option `abi_blacklist` has been renamed
53
+ to `unsupported_abis`.][74150] The old name will still continue to work.
54
+ - [Rustc will now warn if you have a C-like enum that implements `Drop`.][72331]
55
+ This was previously accepted but will become a hard error in a future release.
56
+ - [Rustc will fail to compile if you have a struct with
57
+ `#[repr(i128)]` or `#[repr(u128)]`.][74109] This representation is currently only
58
+ allowed on `enum`s.
59
+ - [Tokens passed to `macro_rules!` are now always captured.][73293] This helps
60
+ ensure that spans have the correct information, and may cause breakage if you
61
+ were relying on receiving spans with dummy information.
62
+ - [The InnoSetup installer for Windows is no longer available.][72569] This was
63
+ a legacy installer that was replaced by a MSI installer a few years ago but
64
+ was still being built.
65
+ - [`{f32, f64}::asinh` now returns the correct values for negative numbers.][72486]
66
+ - [Rustc will no longer accept overlapping trait implementations that only
67
+ differ in how the lifetime was bound.][72493]
68
+ - [Rustc now correctly relates the lifetime of an existential associated
69
+ type.][71896] This fixes some edge cases where `rustc` would erroneously allow
70
+ you to pass a shorter lifetime than expected.
71
+
72
+ [74109]: https://github.com/rust-lang/rust/pull/74109/
73
+ [74150]: https://github.com/rust-lang/rust/pull/74150/
74
+ [73862]: https://github.com/rust-lang/rust/pull/73862/
75
+ [73887]: https://github.com/rust-lang/rust/pull/73887/
76
+ [73466]: https://github.com/rust-lang/rust/pull/73466/
77
+ [73516]: https://github.com/rust-lang/rust/pull/73516/
78
+ [73293]: https://github.com/rust-lang/rust/pull/73293/
79
+ [73007]: https://github.com/rust-lang/rust/pull/73007/
80
+ [73032]: https://github.com/rust-lang/rust/pull/73032/
81
+ [72920]: https://github.com/rust-lang/rust/pull/72920/
82
+ [72569]: https://github.com/rust-lang/rust/pull/72569/
83
+ [72583]: https://github.com/rust-lang/rust/pull/72583/
84
+ [72584]: https://github.com/rust-lang/rust/pull/72584/
85
+ [72717]: https://github.com/rust-lang/rust/pull/72717/
86
+ [72437]: https://github.com/rust-lang/rust/pull/72437/
87
+ [72445]: https://github.com/rust-lang/rust/pull/72445/
88
+ [72486]: https://github.com/rust-lang/rust/pull/72486/
89
+ [72493]: https://github.com/rust-lang/rust/pull/72493/
90
+ [72331]: https://github.com/rust-lang/rust/pull/72331/
91
+ [71896]: https://github.com/rust-lang/rust/pull/71896/
92
+ [71660]: https://github.com/rust-lang/rust/pull/71660/
93
+ [71322]: https://github.com/rust-lang/rust/pull/71322/
94
+ [70740]: https://github.com/rust-lang/rust/pull/70740/
95
+ [cargo/8270]: https://github.com/rust-lang/cargo/pull/8270/
96
+ [cargo/8325]: https://github.com/rust-lang/cargo/pull/8325/
97
+ [cargo/8387]: https://github.com/rust-lang/cargo/pull/8387/
98
+ [`Option::zip`]: https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.zip
99
+ [`vec::Drain::as_slice`]: https://doc.rust-lang.org/stable/std/vec/struct.Drain.html#method.as_slice
100
+
101
+
102
+ Version 1.45.2 (2020-08-03)
103
+ ==========================
104
+
105
+ * [Fix bindings in tuple struct patterns][74954]
106
+ * [Fix track_caller integration with trait objects][74784]
107
+
108
+ [74954]: https://github.com/rust-lang/rust/issues/74954
109
+ [74784]: https://github.com/rust-lang/rust/issues/74784
110
+
111
+
112
+ Version 1.45.1 (2020-07-30)
113
+ ==========================
114
+
115
+ * [Fix const propagation with references.][73613]
116
+ * [rustfmt accepts rustfmt_skip in cfg_attr again.][73078]
117
+ * [Avoid spurious implicit region bound.][74509]
118
+ * [Install clippy on x.py install][74457]
119
+
120
+ [73613]: https://github.com/rust-lang/rust/pull/73613
121
+ [73078]: https://github.com/rust-lang/rust/issues/73078
122
+ [74509]: https://github.com/rust-lang/rust/pull/74509
123
+ [74457]: https://github.com/rust-lang/rust/pull/74457
124
+
125
+
1
126
Version 1.45.0 (2020-07-16)
2
127
==========================
3
128
@@ -47,7 +172,7 @@ Libraries
47
172
// Prints "abcdefghijklmnopqrstuvwxyz"
48
173
```
49
174
- [`OsString` now implements `FromStr`.][71662]
50
- - [The `saturating_neg` method as been added to all signed integer primitive
175
+ - [The `saturating_neg` method has been added to all signed integer primitive
51
176
types, and the `saturating_abs` method has been added for all integer
52
177
primitive types.][71886]
53
178
- [`Arc<T>`, `Rc<T>` now implement `From<Cow<'_, T>>`, and `Box` now
@@ -82,6 +207,9 @@ Stabilized APIs
82
207
Cargo
83
208
-----
84
209
210
+ - [Cargo uses the `embed-bitcode` flag to optimize disk usage and build
211
+ time.][cargo/8066]
212
+
85
213
Misc
86
214
----
87
215
- [Rustdoc now supports strikethrough text in Markdown.][71928] E.g.
@@ -97,12 +225,18 @@ Compatibility Notes
97
225
- [Rustdoc's CLI's extra error exit codes have been removed.][71900] These were
98
226
previously undocumented and not intended for public use. Rustdoc still provides
99
227
a non-zero exit code on errors.
228
+ - [Rustc's `lto` flag is incompatible with the new `embed-bitcode=no`.][71848]
229
+ This may cause issues if LTO is enabled through `RUSTFLAGS` or `cargo rustc`
230
+ flags while cargo is adding `embed-bitcode` itself. The recommended way to
231
+ control LTO is with Cargo profiles, either in `Cargo.toml` or `.cargo/config`,
232
+ or by setting `CARGO_PROFILE_<name>_LTO` in the environment.
100
233
101
234
Internals Only
102
235
--------------
103
236
- [Make clippy a git subtree instead of a git submodule][70655]
104
237
- [Unify the undo log of all snapshot types][69464]
105
238
239
+ [71848]: https://github.com/rust-lang/rust/issues/71848/
106
240
[73420]: https://github.com/rust-lang/rust/issues/73420/
107
241
[72324]: https://github.com/rust-lang/rust/pull/72324/
108
242
[71843]: https://github.com/rust-lang/rust/pull/71843/
@@ -129,6 +263,7 @@ Internals Only
129
263
[69813]: https://github.com/rust-lang/rust/pull/69813/
130
264
[69464]: https://github.com/rust-lang/rust/pull/69464/
131
265
[68717]: https://github.com/rust-lang/rust/pull/68717/
266
+ [cargo/8066]: https://github.com/rust-lang/cargo/pull/8066
132
267
[`Arc::as_ptr`]: https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.as_ptr
133
268
[`BTreeMap::remove_entry`]: https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html#method.remove_entry
134
269
[`Rc::as_ptr`]: https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.as_ptr
0 commit comments