1
+ Version 1.49.0 (2020-12-31)
2
+ ============================
3
+
4
+ Language
5
+ -----------------------
6
+
7
+ - [ Unions can now implement ` Drop ` , and you can now have a field in a union
8
+ with ` ManuallyDrop<T> ` .] [ 77547 ]
9
+ - [ You can now cast uninhabited enums to integers.] [ 76199 ]
10
+ - [ You can now 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
+
29
+ Compiler
30
+ -----------------------
31
+
32
+ - [ Added tier 1\* support for ` aarch64-unknown-linux-gnu ` .] [ 78228 ]
33
+ - [ Added tier 2 support for ` aarch64-apple-darwin ` .] [ 75991 ]
34
+ - [ Added tier 2 support for ` aarch64-pc-windows-msvc ` .] [ 75914 ]
35
+ - [ Added tier 3 support for ` mipsel-unknown-none ` .] [ 78676 ]
36
+ - [ Raised the minimum supported LLVM version to LLVM 9.] [ 78848 ]
37
+ - [ Output from threads spawned in tests is now captured.] [ 78227 ]
38
+ - [ Change os and vendor values to "none" and "unknown" for some targets] [ 78951 ]
39
+
40
+ \* Refer to Rust's [ platform support page] [ forge-platform-support ] for more
41
+ information on Rust's tiered platform support.
42
+
43
+ Libraries
44
+ -----------------------
45
+
46
+ - [ ` RangeInclusive ` now checks for exhaustion when calling ` contains ` and indexing.] [ 78109 ]
47
+ - [ ` ToString::to_string ` now no longer shrinks the internal buffer in the default implementation.] [ 77997 ]
48
+ - [ ` ops::{Index, IndexMut} ` are now implemented for fixed sized arrays of any length.] [ 74989 ]
49
+
50
+ Stabilized APIs
51
+ ---------------
52
+
53
+ - [ ` slice::select_nth_unstable ` ]
54
+ - [ ` slice::select_nth_unstable_by ` ]
55
+ - [ ` slice::select_nth_unstable_by_key ` ]
56
+
57
+ The following previously stable methods are now ` const ` .
58
+
59
+ - [ ` Poll::is_ready ` ]
60
+ - [ ` Poll::is_pending ` ]
61
+
62
+ Cargo
63
+ -----------------------
64
+ - [ Building a crate with ` cargo-package ` should now be independently reproducible.] [ cargo/8864 ]
65
+ - [ ` cargo-tree ` now marks proc-macro crates.] [ cargo/8765 ]
66
+ - [ Added ` CARGO_PRIMARY_PACKAGE ` build-time environment variable.] [ cargo/8758 ] This
67
+ variable will be set if the crate being built is one the user selected to build, either
68
+ with ` -p ` or through defaults.
69
+ - [ You can now use glob patterns when specifying packages & targets.] [ cargo/8752 ]
70
+
71
+
72
+ Compatibility Notes
73
+ -------------------
74
+
75
+ - [ Demoted ` i686-unknown-freebsd ` from host tier 2 to target tier 2 support.] [ 78746 ]
76
+ - [ Macros that end with a semi-colon are now treated as statements even if they expand to nothing.] [ 78376 ]
77
+ - [ Rustc will now check for the validity of some built-in attributes on enum variants.] [ 77015 ]
78
+ Previously such invalid or unused attributes could be ignored.
79
+ - Leading whitespace is stripped more uniformly in documentation comments, which may change behavior. You
80
+ read [ this post about the changes] [ rustdoc-ws-post ] for more details.
81
+ - [ Trait bounds are no longer inferred for associated types.] [ 79904 ]
82
+
83
+ Internal Only
84
+ -------------
85
+ These changes provide no direct user facing benefits, but represent significant
86
+ improvements to the internals and overall performance of rustc and
87
+ related tools.
88
+
89
+ - [ rustc's internal crates are now compiled using the ` initial-exec ` Thread
90
+ Local Storage model.] [ 78201 ]
91
+ - [ Calculate visibilities once in resolve.] [ 78077 ]
92
+ - [ Added ` system ` to the ` llvm-libunwind ` bootstrap config option.] [ 77703 ]
93
+ - [ Added ` --color ` for configuring terminal color support to bootstrap.] [ 79004 ]
94
+
95
+
96
+ [ 75991 ] : https://github.com/rust-lang/rust/pull/75991
97
+ [ 78951 ] : https://github.com/rust-lang/rust/pull/78951
98
+ [ 78848 ] : https://github.com/rust-lang/rust/pull/78848
99
+ [ 78746 ] : https://github.com/rust-lang/rust/pull/78746
100
+ [ 78376 ] : https://github.com/rust-lang/rust/pull/78376
101
+ [ 78228 ] : https://github.com/rust-lang/rust/pull/78228
102
+ [ 78227 ] : https://github.com/rust-lang/rust/pull/78227
103
+ [ 78201 ] : https://github.com/rust-lang/rust/pull/78201
104
+ [ 78109 ] : https://github.com/rust-lang/rust/pull/78109
105
+ [ 78077 ] : https://github.com/rust-lang/rust/pull/78077
106
+ [ 77997 ] : https://github.com/rust-lang/rust/pull/77997
107
+ [ 77703 ] : https://github.com/rust-lang/rust/pull/77703
108
+ [ 77547 ] : https://github.com/rust-lang/rust/pull/77547
109
+ [ 77015 ] : https://github.com/rust-lang/rust/pull/77015
110
+ [ 76199 ] : https://github.com/rust-lang/rust/pull/76199
111
+ [ 76119 ] : https://github.com/rust-lang/rust/pull/76119
112
+ [ 75914 ] : https://github.com/rust-lang/rust/pull/75914
113
+ [ 74989 ] : https://github.com/rust-lang/rust/pull/74989
114
+ [ 79004 ] : https://github.com/rust-lang/rust/pull/79004
115
+ [ 78676 ] : https://github.com/rust-lang/rust/pull/78676
116
+ [ 79904 ] : https://github.com/rust-lang/rust/issues/79904
117
+ [ cargo/8864 ] : https://github.com/rust-lang/cargo/pull/8864
118
+ [ cargo/8765 ] : https://github.com/rust-lang/cargo/pull/8765
119
+ [ cargo/8758 ] : https://github.com/rust-lang/cargo/pull/8758
120
+ [ cargo/8752 ] : https://github.com/rust-lang/cargo/pull/8752
121
+ [ `slice::select_nth_unstable` ] : https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable
122
+ [ `slice::select_nth_unstable_by` ] : https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by
123
+ [ `slice::select_nth_unstable_by_key` ] : https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by_key
124
+ [ `hint::spin_loop` ] : https://doc.rust-lang.org/stable/std/hint/fn.spin_loop.html
125
+ [ `Poll::is_ready` ] : https://doc.rust-lang.org/stable/std/task/enum.Poll.html#method.is_ready
126
+ [ `Poll::is_pending` ] : https://doc.rust-lang.org/stable/std/task/enum.Poll.html#method.is_pending
127
+ [ rustdoc-ws-post ] : https://blog.guillaume-gomez.fr/articles/2020-11-11+New+doc+comment+handling+in+rustdoc
128
+
1
129
Version 1.48.0 (2020-11-19)
2
130
==========================
3
131
@@ -10,7 +138,7 @@ Language
10
138
Compiler
11
139
--------
12
140
- [ 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
141
+ ` rustc ` whether to link its own C runtime and libraries or to rely on a external
14
142
linker to find them. (Supported only on ` windows-gnu ` , ` linux-musl ` , and ` wasi ` platforms.)
15
143
- [ You can now use ` -C target-feature=+crt-static ` on ` linux-gnu ` targets.] [ 77386 ]
16
144
Note: If you're using cargo you must explicitly pass the ` --target ` flag.
@@ -82,7 +210,7 @@ Compatibility Notes
82
210
- [ Foreign exceptions are now caught by ` catch_unwind ` and will cause an abort.] [ 70212 ]
83
211
Note: This behaviour is not guaranteed and is still considered undefined behaviour,
84
212
see the [ ` catch_unwind ` ] documentation for further information.
85
-
213
+
86
214
87
215
88
216
Internal Only
@@ -102,7 +230,7 @@ related tools.
102
230
[ 76030 ] : https://github.com/rust-lang/rust/pull/76030/
103
231
[ 70212 ] : https://github.com/rust-lang/rust/pull/70212/
104
232
[ 27675 ] : https://github.com/rust-lang/rust/issues/27675/
105
- [ 54121] : https://github.com/rust-lang/rust/issues/54121/
233
+ [ 54121 ] : https://github.com/rust-lang/rust/issues/54121/
106
234
[ 71274 ] : https://github.com/rust-lang/rust/pull/71274/
107
235
[ 77386 ] : https://github.com/rust-lang/rust/pull/77386/
108
236
[ 77153 ] : https://github.com/rust-lang/rust/pull/77153/
0 commit comments