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+
1129Version 1.48.0 (2020-11-19)
2130==========================
3131
@@ -10,7 +138,7 @@ Language
10138Compiler
11139--------
12140- [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
14142 linker to find them. (Supported only on `windows-gnu`, `linux-musl`, and `wasi` platforms.)
15143- [You can now use `-C target-feature=+crt-static` on `linux-gnu` targets.][77386]
16144 Note: If you're using cargo you must explicitly pass the `--target` flag.
@@ -82,7 +210,7 @@ Compatibility Notes
82210- [Foreign exceptions are now caught by `catch_unwind` and will cause an abort.][70212]
83211 Note: This behaviour is not guaranteed and is still considered undefined behaviour,
84212 see the [`catch_unwind`] documentation for further information.
85-
213+
86214
87215
88216Internal Only
@@ -102,7 +230,7 @@ related tools.
102230[76030]: https://github.com/rust-lang/rust/pull/76030/
103231[70212]: https://github.com/rust-lang/rust/pull/70212/
104232[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/
106234[71274]: https://github.com/rust-lang/rust/pull/71274/
107235[77386]: https://github.com/rust-lang/rust/pull/77386/
108236[77153]: https://github.com/rust-lang/rust/pull/77153/
0 commit comments