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
+
1
102
Version 1.45.2 (2020-08-03)
2
103
==========================
3
104
@@ -7,6 +108,7 @@ Version 1.45.2 (2020-08-03)
7
108
[74954]: https://github.com/rust-lang/rust/issues/74954
8
109
[74784]: https://github.com/rust-lang/rust/issues/74784
9
110
111
+
10
112
Version 1.45.1 (2020-07-30)
11
113
==========================
12
114
@@ -20,6 +122,7 @@ Version 1.45.1 (2020-07-30)
20
122
[74509]: https://github.com/rust-lang/rust/pull/74509
21
123
[74457]: https://github.com/rust-lang/rust/pull/74457
22
124
125
+
23
126
Version 1.45.0 (2020-07-16)
24
127
==========================
25
128
0 commit comments