1
+ Version 1.49.0 (2020-11-19)
2
+ ============================
3
+
4
+ Language
5
+ -----------------------
6
+
7
+ - [Unions now implement `Drop`, and you can now have a field in a union
8
+ with `ManuallyDrop<T>`.][77547]
9
+ - [You can now cast zero sized enums (0 or 1 variants) integers.][76199]
10
+ - [You can now take bind by reference and by move in patterns.][76119] This
11
+ allows you to selectively borrow individual components of a type. E.g.
12
+ ```rust
13
+ #[derive(Debug)]
14
+ struct Person {
15
+ name: String,
16
+ age: u8,
17
+ }
18
+
19
+ let person = Person {
20
+ name: String::from("Alice"),
21
+ age: 20,
22
+ };
23
+
24
+ // `name` is moved out of person, but `age` is referenced.
25
+ let Person { name, ref age } = person;
26
+ println!("{} {}", name, age);
27
+ ```
28
+ - [Macros that end with a semi-colon are now treated as statements.][78376]
29
+
30
+ Compiler
31
+ -----------------------
32
+
33
+ - [Added tier 1\* support for `aarch64-unknown-linux-gnu`.][78228]
34
+ - [Added tier 2 support for `aarch64-apple-darwin`.][75991]
35
+ - [Added tier 2 support for `aarch64-pc-windows-msvc`.][75914]
36
+ - [Added tier 3 support for `mipsel-unknown-none`.][78676]
37
+ - [Raised the minimum supported LLVM version to LLVM 9.][78848]
38
+ - [Output from threads spawned in tests is now captured.][78227]
39
+ - [TODO: rustc_target: Change os and vendor values to "none" and "unknown" for some targets][78951]
40
+
41
+ \* Refer to Rust's [platform support page][forge-platform-support] for more
42
+ information on Rust's tiered platform support.
43
+
44
+ Libraries
45
+ -----------------------
46
+
47
+ - [`RangeInclusive` now checks for exhaustion when calling `contains` and indexing.][78109]
48
+ - [`ToString::to_string` now no longer shrinks the internal buffer in the default implementation.][77997]
49
+ - [`ops::{Index, IndexMut}` are now implemented for fixed sized arrays of any length.][74989]
50
+
51
+ Stabilized APIs
52
+ ---------------
53
+
54
+ - [`slice::select_nth_unstable`]
55
+ - [`slice::select_nth_unstable_by`]
56
+ - [`slice::select_nth_unstable_by_key`]
57
+
58
+ The following previously stable methods are now `const`.
59
+
60
+ - [`Poll::is_ready`]
61
+ - [`Poll::is_pending`]
62
+
63
+ Cargo
64
+ -----------------------
65
+ - [Building a crate with `cargo-package` should now be independently reproducible.][cargo/8864]
66
+ - [`cargo-tree` now marks proc-macro crates.][cargo/8765]
67
+ - [Added `CARGO_PRIMARY_PACKAGE` build-time environment variable.][cargo/8758] This
68
+ variable will be set if the crate being built is one the user selected to build, either
69
+ with `-p` or through defaults.
70
+ - [You can now use glob patterns when specifying packages & targets.][cargo/8752]
71
+
72
+
73
+ Compatibility Notes
74
+ -------------------
75
+
76
+ - [Demoted `i686-unknown-freebsd` to tier 2 support.][78746]
77
+ - [Rustc will now check for the validity of attributes on enum variants.][77015]
78
+ Previously invalid or unused attributes were ignored.
79
+
80
+ Internal Only
81
+ -------------
82
+ These changes provide no direct user facing benefits, but represent significant
83
+ improvements to the internals and overall performance of rustc and
84
+ related tools.
85
+
86
+ - [rustc's internal crates are now compiled the `initial-exec` Thread
87
+ Local Storage model.][78201]
88
+ - [Calculate visibilities once in resolve.][78077]
89
+ - [Added `system` to the `llvm-libunwind` bootstrap config option.][77703]
90
+ - [Added `--color` for configuring terminal color support to bootstrap.][79004]
91
+
92
+
93
+ [75991]: https://github.com/rust-lang/rust/pull/75991
94
+ [78951]: https://github.com/rust-lang/rust/pull/78951
95
+ [78848]: https://github.com/rust-lang/rust/pull/78848
96
+ [78746]: https://github.com/rust-lang/rust/pull/78746
97
+ [78376]: https://github.com/rust-lang/rust/pull/78376
98
+ [78228]: https://github.com/rust-lang/rust/pull/78228
99
+ [78227]: https://github.com/rust-lang/rust/pull/78227
100
+ [78201]: https://github.com/rust-lang/rust/pull/78201
101
+ [78109]: https://github.com/rust-lang/rust/pull/78109
102
+ [78077]: https://github.com/rust-lang/rust/pull/78077
103
+ [77997]: https://github.com/rust-lang/rust/pull/77997
104
+ [77703]: https://github.com/rust-lang/rust/pull/77703
105
+ [77547]: https://github.com/rust-lang/rust/pull/77547
106
+ [77015]: https://github.com/rust-lang/rust/pull/77015
107
+ [76199]: https://github.com/rust-lang/rust/pull/76199
108
+ [76119]: https://github.com/rust-lang/rust/pull/76119
109
+ [75914]: https://github.com/rust-lang/rust/pull/75914
110
+ [74989]: https://github.com/rust-lang/rust/pull/74989
111
+ [79004]: https://github.com/rust-lang/rust/pull/79004
112
+ [78676]: https://github.com/rust-lang/rust/pull/78676
113
+ [cargo/8864]: https://github.com/rust-lang/cargo/pull/8864
114
+ [cargo/8765]: https://github.com/rust-lang/cargo/pull/8765
115
+ [cargo/8758]: https://github.com/rust-lang/cargo/pull/8758
116
+ [cargo/8752]: https://github.com/rust-lang/cargo/pull/8752
117
+ [`slice::select_nth_unstable`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable
118
+ [`slice::select_nth_unstable_by`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by
119
+ [`slice::select_nth_unstable_by_key`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by_key
120
+ [`hint::spin_loop`]: https://doc.rust-lang.org/stable/std/hint/fn.spin_loop.html
121
+
122
+
1
123
Version 1.48.0 (2020-11-19)
2
124
==========================
3
125
@@ -10,7 +132,7 @@ Language
10
132
Compiler
11
133
--------
12
134
- [Stabilised the `-C link-self-contained=<yes|no>` compiler flag.][76158] This tells
13
- ` rustc ` whether to link its own C runtime and libraries or to rely on a external
135
+ `rustc` whether to link its own C runtime and libraries or to rely on a external
14
136
linker to find them. (Supported only on `windows-gnu`, `linux-musl`, and `wasi` platforms.)
15
137
- [You can now use `-C target-feature=+crt-static` on `linux-gnu` targets.][77386]
16
138
Note: If you're using cargo you must explicitly pass the `--target` flag.
@@ -82,7 +204,7 @@ Compatibility Notes
82
204
- [Foreign exceptions are now caught by `catch_unwind` and will cause an abort.][70212]
83
205
Note: This behaviour is not guaranteed and is still considered undefined behaviour,
84
206
see the [`catch_unwind`] documentation for further information.
85
-
207
+
86
208
87
209
88
210
Internal Only
@@ -102,7 +224,7 @@ related tools.
102
224
[76030]: https://github.com/rust-lang/rust/pull/76030/
103
225
[70212]: https://github.com/rust-lang/rust/pull/70212/
104
226
[27675]: https://github.com/rust-lang/rust/issues/27675/
105
- [ 54121] : https://github.com/rust-lang/rust/issues/54121/
227
+ [54121]: https://github.com/rust-lang/rust/issues/54121/
106
228
[71274]: https://github.com/rust-lang/rust/pull/71274/
107
229
[77386]: https://github.com/rust-lang/rust/pull/77386/
108
230
[77153]: https://github.com/rust-lang/rust/pull/77153/
0 commit comments