From 891341942ab49c42c991072a4ac27b4dd4f28779 Mon Sep 17 00:00:00 2001 From: Erin Power Date: Mon, 7 Dec 2020 23:45:23 +0000 Subject: [PATCH 1/8] Update RELEASES.md for 1.49.0 --- RELEASES.md | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 125 insertions(+), 3 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index 9fd796fd775bf..13af6dfe0c9b4 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,125 @@ +Version 1.49.0 (2020-11-19) +============================ + +Language +----------------------- + +- [Unions now implement `Drop`, and you can now have a field in a union + with `ManuallyDrop`.][77547] +- [You can now cast zero sized enums (0 or 1 variants) integers.][76199] +- [You can now take bind by reference and by move in patterns.][76119] This + allows you to selectively borrow individual components of a type. E.g. + ```rust + #[derive(Debug)] + struct Person { + name: String, + age: u8, + } + + let person = Person { + name: String::from("Alice"), + age: 20, + }; + + // `name` is moved out of person, but `age` is referenced. + let Person { name, ref age } = person; + println!("{} {}", name, age); + ``` +- [Macros that end with a semi-colon are now treated as statements.][78376] + +Compiler +----------------------- + +- [Added tier 1\* support for `aarch64-unknown-linux-gnu`.][78228] +- [Added tier 2 support for `aarch64-apple-darwin`.][75991] +- [Added tier 2 support for `aarch64-pc-windows-msvc`.][75914] +- [Added tier 3 support for `mipsel-unknown-none`.][78676] +- [Raised the minimum supported LLVM version to LLVM 9.][78848] +- [Output from threads spawned in tests is now captured.][78227] +- [TODO: rustc_target: Change os and vendor values to "none" and "unknown" for some targets][78951] + +\* Refer to Rust's [platform support page][forge-platform-support] for more +information on Rust's tiered platform support. + +Libraries +----------------------- + +- [`RangeInclusive` now checks for exhaustion when calling `contains` and indexing.][78109] +- [`ToString::to_string` now no longer shrinks the internal buffer in the default implementation.][77997] +- [`ops::{Index, IndexMut}` are now implemented for fixed sized arrays of any length.][74989] + +Stabilized APIs +--------------- + +- [`slice::select_nth_unstable`] +- [`slice::select_nth_unstable_by`] +- [`slice::select_nth_unstable_by_key`] + +The following previously stable methods are now `const`. + +- [`Poll::is_ready`] +- [`Poll::is_pending`] + +Cargo +----------------------- +- [Building a crate with `cargo-package` should now be independently reproducible.][cargo/8864] +- [`cargo-tree` now marks proc-macro crates.][cargo/8765] +- [Added `CARGO_PRIMARY_PACKAGE` build-time environment variable.][cargo/8758] This + variable will be set if the crate being built is one the user selected to build, either + with `-p` or through defaults. +- [You can now use glob patterns when specifying packages & targets.][cargo/8752] + + +Compatibility Notes +------------------- + +- [Demoted `i686-unknown-freebsd` to tier 2 support.][78746] +- [Rustc will now check for the validity of attributes on enum variants.][77015] + Previously invalid or unused attributes were ignored. + +Internal Only +------------- +These changes provide no direct user facing benefits, but represent significant +improvements to the internals and overall performance of rustc and +related tools. + +- [rustc's internal crates are now compiled the `initial-exec` Thread + Local Storage model.][78201] +- [Calculate visibilities once in resolve.][78077] +- [Added `system` to the `llvm-libunwind` bootstrap config option.][77703] +- [Added `--color` for configuring terminal color support to bootstrap.][79004] + + +[75991]: https://github.com/rust-lang/rust/pull/75991 +[78951]: https://github.com/rust-lang/rust/pull/78951 +[78848]: https://github.com/rust-lang/rust/pull/78848 +[78746]: https://github.com/rust-lang/rust/pull/78746 +[78376]: https://github.com/rust-lang/rust/pull/78376 +[78228]: https://github.com/rust-lang/rust/pull/78228 +[78227]: https://github.com/rust-lang/rust/pull/78227 +[78201]: https://github.com/rust-lang/rust/pull/78201 +[78109]: https://github.com/rust-lang/rust/pull/78109 +[78077]: https://github.com/rust-lang/rust/pull/78077 +[77997]: https://github.com/rust-lang/rust/pull/77997 +[77703]: https://github.com/rust-lang/rust/pull/77703 +[77547]: https://github.com/rust-lang/rust/pull/77547 +[77015]: https://github.com/rust-lang/rust/pull/77015 +[76199]: https://github.com/rust-lang/rust/pull/76199 +[76119]: https://github.com/rust-lang/rust/pull/76119 +[75914]: https://github.com/rust-lang/rust/pull/75914 +[74989]: https://github.com/rust-lang/rust/pull/74989 +[79004]: https://github.com/rust-lang/rust/pull/79004 +[78676]: https://github.com/rust-lang/rust/pull/78676 +[cargo/8864]: https://github.com/rust-lang/cargo/pull/8864 +[cargo/8765]: https://github.com/rust-lang/cargo/pull/8765 +[cargo/8758]: https://github.com/rust-lang/cargo/pull/8758 +[cargo/8752]: https://github.com/rust-lang/cargo/pull/8752 +[`slice::select_nth_unstable`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable +[`slice::select_nth_unstable_by`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by +[`slice::select_nth_unstable_by_key`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by_key +[`hint::spin_loop`]: https://doc.rust-lang.org/stable/std/hint/fn.spin_loop.html + + Version 1.48.0 (2020-11-19) ========================== @@ -10,7 +132,7 @@ Language Compiler -------- - [Stabilised the `-C link-self-contained=` compiler flag.][76158] This tells - `rustc` whether to link its own C runtime and libraries or to rely on a external + `rustc` whether to link its own C runtime and libraries or to rely on a external linker to find them. (Supported only on `windows-gnu`, `linux-musl`, and `wasi` platforms.) - [You can now use `-C target-feature=+crt-static` on `linux-gnu` targets.][77386] Note: If you're using cargo you must explicitly pass the `--target` flag. @@ -82,7 +204,7 @@ Compatibility Notes - [Foreign exceptions are now caught by `catch_unwind` and will cause an abort.][70212] Note: This behaviour is not guaranteed and is still considered undefined behaviour, see the [`catch_unwind`] documentation for further information. - + Internal Only @@ -102,7 +224,7 @@ related tools. [76030]: https://github.com/rust-lang/rust/pull/76030/ [70212]: https://github.com/rust-lang/rust/pull/70212/ [27675]: https://github.com/rust-lang/rust/issues/27675/ -[54121]: https://github.com/rust-lang/rust/issues/54121/ +[54121]: https://github.com/rust-lang/rust/issues/54121/ [71274]: https://github.com/rust-lang/rust/pull/71274/ [77386]: https://github.com/rust-lang/rust/pull/77386/ [77153]: https://github.com/rust-lang/rust/pull/77153/ From 7bb1889899d27a453f00e2b701cf8e3508431f4c Mon Sep 17 00:00:00 2001 From: XAMPPRocky <4464295+XAMPPRocky@users.noreply.github.com> Date: Tue, 8 Dec 2020 22:13:03 +0000 Subject: [PATCH 2/8] Apply suggestions from code review Co-authored-by: Jonas Schievink Co-authored-by: Vadim Petrochenkov --- RELEASES.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index 13af6dfe0c9b4..a06963ae1b43b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -4,10 +4,10 @@ Version 1.49.0 (2020-11-19) Language ----------------------- -- [Unions now implement `Drop`, and you can now have a field in a union +- [Unions can now implement `Drop`, and you can now have a field in a union with `ManuallyDrop`.][77547] -- [You can now cast zero sized enums (0 or 1 variants) integers.][76199] -- [You can now take bind by reference and by move in patterns.][76119] This +- [You can now cast zero sized enums (0 or 1 variants) to integers.][76199] +- [You can now bind by reference and by move in patterns.][76119] This allows you to selectively borrow individual components of a type. E.g. ```rust #[derive(Debug)] @@ -25,7 +25,7 @@ Language let Person { name, ref age } = person; println!("{} {}", name, age); ``` -- [Macros that end with a semi-colon are now treated as statements.][78376] +- [Macros that end with a semi-colon are now treated as statements even if they expand to nothing.][78376] Compiler ----------------------- @@ -74,7 +74,8 @@ Compatibility Notes ------------------- - [Demoted `i686-unknown-freebsd` to tier 2 support.][78746] -- [Rustc will now check for the validity of attributes on enum variants.][77015] +- [Rustc will now check for the validity of some built-in attributes on enum variants.][77015] + Previously such invalid or unused attributes could be ignored. Previously invalid or unused attributes were ignored. Internal Only @@ -83,7 +84,7 @@ These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools. -- [rustc's internal crates are now compiled the `initial-exec` Thread +- [rustc's internal crates are now compiled using the `initial-exec` Thread Local Storage model.][78201] - [Calculate visibilities once in resolve.][78077] - [Added `system` to the `llvm-libunwind` bootstrap config option.][77703] From 468c578b24b7eaa5ca743d47e2b259b9acdf2db3 Mon Sep 17 00:00:00 2001 From: XAMPPRocky <4464295+XAMPPRocky@users.noreply.github.com> Date: Tue, 8 Dec 2020 22:14:10 +0000 Subject: [PATCH 3/8] Update RELEASES.md --- RELEASES.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index a06963ae1b43b..7a0bfd5fc9569 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,4 +1,4 @@ -Version 1.49.0 (2020-11-19) +Version 1.49.0 (2020-12-31) ============================ Language @@ -6,7 +6,7 @@ Language - [Unions can now implement `Drop`, and you can now have a field in a union with `ManuallyDrop`.][77547] -- [You can now cast zero sized enums (0 or 1 variants) to integers.][76199] +- [You can now cast uninhabited enums to integers.][76199] - [You can now bind by reference and by move in patterns.][76119] This allows you to selectively borrow individual components of a type. E.g. ```rust From edb55e93bc69c31adf69dec3092ae2cdd4cdd74b Mon Sep 17 00:00:00 2001 From: XAMPPRocky <4464295+XAMPPRocky@users.noreply.github.com> Date: Tue, 8 Dec 2020 22:14:45 +0000 Subject: [PATCH 4/8] Update RELEASES.md Co-authored-by: Jonas Schievink --- RELEASES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASES.md b/RELEASES.md index 7a0bfd5fc9569..3fca9c789939a 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -36,7 +36,7 @@ Compiler - [Added tier 3 support for `mipsel-unknown-none`.][78676] - [Raised the minimum supported LLVM version to LLVM 9.][78848] - [Output from threads spawned in tests is now captured.][78227] -- [TODO: rustc_target: Change os and vendor values to "none" and "unknown" for some targets][78951] +- [Change os and vendor values to "none" and "unknown" for some targets][78951] \* Refer to Rust's [platform support page][forge-platform-support] for more information on Rust's tiered platform support. From 4aaace9b53fc62696965860c8e9967b0385a22a3 Mon Sep 17 00:00:00 2001 From: XAMPPRocky <4464295+XAMPPRocky@users.noreply.github.com> Date: Tue, 8 Dec 2020 22:15:53 +0000 Subject: [PATCH 5/8] Update RELEASES.md --- RELEASES.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASES.md b/RELEASES.md index 3fca9c789939a..8f5d6db5db926 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -119,7 +119,8 @@ related tools. [`slice::select_nth_unstable_by`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by [`slice::select_nth_unstable_by_key`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by_key [`hint::spin_loop`]: https://doc.rust-lang.org/stable/std/hint/fn.spin_loop.html - +[`Poll::is_ready`]: https://doc.rust-lang.org/stable/std/task/enum.Poll.html#method.is_ready +[`Poll::is_pending`]: https://doc.rust-lang.org/stable/std/task/enum.Poll.html#method.is_pending Version 1.48.0 (2020-11-19) ========================== From bb6b6aeb786059ac0a84c090c8794a46108baaec Mon Sep 17 00:00:00 2001 From: XAMPPRocky <4464295+XAMPPRocky@users.noreply.github.com> Date: Sat, 12 Dec 2020 21:00:47 +0000 Subject: [PATCH 6/8] Update RELEASES.md --- RELEASES.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index 8f5d6db5db926..f9dadbec5772b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -25,7 +25,6 @@ Language let Person { name, ref age } = person; println!("{} {}", name, age); ``` -- [Macros that end with a semi-colon are now treated as statements even if they expand to nothing.][78376] Compiler ----------------------- @@ -73,10 +72,10 @@ Cargo Compatibility Notes ------------------- -- [Demoted `i686-unknown-freebsd` to tier 2 support.][78746] +- [Demoted `i686-unknown-freebsd` from host tier 2 to target tier 2 support.][78746] +- [Macros that end with a semi-colon are now treated as statements even if they expand to nothing.][78376] - [Rustc will now check for the validity of some built-in attributes on enum variants.][77015] Previously such invalid or unused attributes could be ignored. - Previously invalid or unused attributes were ignored. Internal Only ------------- From cce4c72c5a5517423e1ad1a4087861c49c6ab43a Mon Sep 17 00:00:00 2001 From: XAMPPRocky <4464295+XAMPPRocky@users.noreply.github.com> Date: Fri, 18 Dec 2020 20:55:46 +0000 Subject: [PATCH 7/8] Update RELEASES.md --- RELEASES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RELEASES.md b/RELEASES.md index f9dadbec5772b..0cfbb62c85e49 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -76,6 +76,8 @@ Compatibility Notes - [Macros that end with a semi-colon are now treated as statements even if they expand to nothing.][78376] - [Rustc will now check for the validity of some built-in attributes on enum variants.][77015] Previously such invalid or unused attributes could be ignored. +- Leading whitespace is stripped more uniformly in documentation comments, which may change behavior. You + read [this post about the changes][rustdoc-ws-post] for more details. Internal Only ------------- @@ -120,6 +122,7 @@ related tools. [`hint::spin_loop`]: https://doc.rust-lang.org/stable/std/hint/fn.spin_loop.html [`Poll::is_ready`]: https://doc.rust-lang.org/stable/std/task/enum.Poll.html#method.is_ready [`Poll::is_pending`]: https://doc.rust-lang.org/stable/std/task/enum.Poll.html#method.is_pending +[rustdoc-ws-post]: https://blog.guillaume-gomez.fr/articles/2020-11-11+New+doc+comment+handling+in+rustdoc Version 1.48.0 (2020-11-19) ========================== From 481f6dbebfdb85739e821eddc3781612dfd0830a Mon Sep 17 00:00:00 2001 From: XAMPPRocky <4464295+XAMPPRocky@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:56:17 +0000 Subject: [PATCH 8/8] Update RELEASES.md --- RELEASES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASES.md b/RELEASES.md index 0cfbb62c85e49..8f04980e39036 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -78,6 +78,7 @@ Compatibility Notes Previously such invalid or unused attributes could be ignored. - Leading whitespace is stripped more uniformly in documentation comments, which may change behavior. You read [this post about the changes][rustdoc-ws-post] for more details. +- [Trait bounds are no longer inferred for associated types.][79904] Internal Only ------------- @@ -112,6 +113,7 @@ related tools. [74989]: https://github.com/rust-lang/rust/pull/74989 [79004]: https://github.com/rust-lang/rust/pull/79004 [78676]: https://github.com/rust-lang/rust/pull/78676 +[79904]: https://github.com/rust-lang/rust/issues/79904 [cargo/8864]: https://github.com/rust-lang/cargo/pull/8864 [cargo/8765]: https://github.com/rust-lang/cargo/pull/8765 [cargo/8758]: https://github.com/rust-lang/cargo/pull/8758