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+
1123Version 1.48.0 (2020-11-19)
2124==========================
3125
@@ -10,7 +132,7 @@ Language
10132Compiler
11133--------
12134- [ 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
14136 linker to find them. (Supported only on ` windows-gnu ` , ` linux-musl ` , and ` wasi ` platforms.)
15137- [ You can now use ` -C target-feature=+crt-static ` on ` linux-gnu ` targets.] [ 77386 ]
16138 Note: If you're using cargo you must explicitly pass the ` --target ` flag.
@@ -82,7 +204,7 @@ Compatibility Notes
82204- [ Foreign exceptions are now caught by ` catch_unwind ` and will cause an abort.] [ 70212 ]
83205 Note: This behaviour is not guaranteed and is still considered undefined behaviour,
84206 see the [ ` catch_unwind ` ] documentation for further information.
85-
207+
86208
87209
88210Internal Only
@@ -102,7 +224,7 @@ related tools.
102224[ 76030 ] : https://github.com/rust-lang/rust/pull/76030/
103225[ 70212 ] : https://github.com/rust-lang/rust/pull/70212/
104226[ 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/
106228[ 71274 ] : https://github.com/rust-lang/rust/pull/71274/
107229[ 77386 ] : https://github.com/rust-lang/rust/pull/77386/
108230[ 77153 ] : https://github.com/rust-lang/rust/pull/77153/
0 commit comments