From 553ac5279ec8ff1eb77fe78d3e8f94b499aae306 Mon Sep 17 00:00:00 2001 From: Aaron Power Date: Thu, 3 Aug 2017 14:56:25 +0100 Subject: [PATCH 1/6] Updated release notes for 1.20 --- RELEASES.md | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 137 insertions(+), 1 deletion(-) diff --git a/RELEASES.md b/RELEASES.md index 5bb23149f2a74..d42d879f3d81e 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,139 @@ +Version 1.20.0 (2017-08-31) +=========================== + +Language +-------- +- [Associated constants in traits is now stabilised.][42809] +- [A lot of macro bugs are now fixed.][42913] + +Compiler +-------- + +- [Struct fields are now properly to the expected field type.][42807] +- [Enabled wasm LLVM backend][42571] WASM can now be built with the + `wasm32-experimental-emscripten` target. +- [Changed some of the error messages to be more helpful.][42033] +- [Add support for RELRO(RELocation Read-Only) for platforms that support + it.][43170] +- [rustc now reports the total number of errors on compilation failure][43015] + previously this was only the number of errors in the pass that failed. +- [Expansion in rustc has been sped up 29x.][42533] +- [added `msp430-none-elf` target.][43099] +- [rustc will now suggest one-argument enum variant to fix type mismatch when + applicable][43178] +- [Fixes backtraces on Redox][43228] +- [rustc now identifies different versions of same crate when absolute paths of + different types match in an error message.][42826] + +Libraries +--------- + +- [`Ref`, `RefMut`, `MutexGuard`, `RwLockReadGuard`, `RwLockWriteGuard` + now impl `fmt::Display` & `fmt::Debug`.][42822] +- [Relaxed Debug constraints on {HashMap,BTreeMap}::{Keys,Values}.][42854] +- [Implement `PartialEq`, `Eq`, `PartialOrd`, `Ord`, `Debug`, `Hash` for unsized + tuples.][43011] +- [Impl `Clone` for `DefaultHasher`.][42799] +- [Implement `Sync` for `SyncSender`.][42397] +- [Fixed how `{f32, f64}::{is_sign_negative, is_sign_positive}` handles + NaN.][42431] +- [allow messages in the `unimplemented!()` macro.][42155] + ie. `unimplemented!("Waiting for 1.21 to be stable")` +- [`char`now impls `FromStr`.][42271] +- [support pub(restricted) in thread_local! (round 2)][43185] +- [Upgrade to Unicode 10.0.0][42999] +- [Reimplemented `{f32, f64}::{min, max}` in Rust instead of using CMath.][42430] +- [Skip the main thread's manual stack guard on Linux][43072] +- [Iterator::nth for `ops::{Range, RangeFrom}` is now done in O(1) time][43077] +- [`#cfg[align(N)]` attribute max number is now 2^31 - 1.][43097] This was + previously 2^15. +- [`{OsStr, Path}::Display` now avoids allocations where possible][42613] + +Stabilized APIs +--------------- + +- [`Chain::get_mut`] +- [`Chain::get_ref`] +- [`Chain::into_inner`] +- [`Take::get_mut`] +- [`Take::get_ref`] +- [`f32::from_bits`] +- [`f32::to_bits`] +- [`f64::from_bits`] +- [`f64::to_bits`] +- [`slice::sort_unstable`] +- [`slice::sort_unstable_by`] +- [`slice::sort_unstable_by_key`] + +Cargo +----- +- [Cargo API token location moved from `~/.cargo/config` to + `~/cargo/credentials`.][cargo/3978] +- [Cargo will now build multiple `main.rs` binaries in different + directories.][cargo/4214] ie. Having `src/server/main.rs` and + `src/client/main.rs` generates `target/debug/server` and `target/debug/client` +- [You can now specify version of a binary when installed through + `cargo install` using `--vers`.][cargo/4229] +- [Added `--no-fail-fast` flag to cargo to run all benchmarks regardless of + failure.][cargo/4248] +- [Changed the convention around which file is the crate root.][cargo/4259] +- [The `include`/`exclude` property in `Cargo.toml` now accepts gitignore paths + instead of glob patterns][cargo/4270]. Glob patterns are now deprecated. + +Compatibility Notes +------------------- + +- [Functions with `'static` in their return types will now not be as usable as + if they were using lifetime parameters instead.][42417] + +[42033]: https://github.com/rust-lang/rust/pull/42033 +[42155]: https://github.com/rust-lang/rust/pull/42155 +[42271]: https://github.com/rust-lang/rust/pull/42271 +[42397]: https://github.com/rust-lang/rust/pull/42397 +[42417]: https://github.com/rust-lang/rust/pull/42417 +[42430]: https://github.com/rust-lang/rust/pull/42430 +[42431]: https://github.com/rust-lang/rust/pull/42431 +[42533]: https://github.com/rust-lang/rust/pull/42533 +[42571]: https://github.com/rust-lang/rust/pull/42571 +[42613]: https://github.com/rust-lang/rust/pull/42613 +[42799]: https://github.com/rust-lang/rust/pull/42799 +[42807]: https://github.com/rust-lang/rust/pull/42807 +[42809]: https://github.com/rust-lang/rust/pull/42809 +[42822]: https://github.com/rust-lang/rust/pull/42822 +[42826]: https://github.com/rust-lang/rust/pull/42826 +[42854]: https://github.com/rust-lang/rust/pull/42854 +[42913]: https://github.com/rust-lang/rust/pull/42913 +[42999]: https://github.com/rust-lang/rust/pull/42999 +[43011]: https://github.com/rust-lang/rust/pull/43011 +[43015]: https://github.com/rust-lang/rust/pull/43015 +[43072]: https://github.com/rust-lang/rust/pull/43072 +[43077]: https://github.com/rust-lang/rust/pull/43077 +[43097]: https://github.com/rust-lang/rust/pull/43097 +[43099]: https://github.com/rust-lang/rust/pull/43099 +[43170]: https://github.com/rust-lang/rust/pull/43170 +[43178]: https://github.com/rust-lang/rust/pull/43178 +[43185]: https://github.com/rust-lang/rust/pull/43185 +[43228]: https://github.com/rust-lang/rust/pull/43228 +[cargo/3978]: https://github.com/rust-lang/cargo/pull/3978 +[cargo/4214]: https://github.com/rust-lang/cargo/pull/4214 +[cargo/4229]: https://github.com/rust-lang/cargo/pull/4229 +[cargo/4248]: https://github.com/rust-lang/cargo/pull/4248 +[cargo/4259]: https://github.com/rust-lang/cargo/pull/4259 +[cargo/4270]: https://github.com/rust-lang/cargo/pull/4270 +[`Chain::get_mut`]: https://doc.rust-lang.org/std/io/struct.Chain.html#method.get_mut +[`Chain::get_ref`]: https://doc.rust-lang.org/std/io/struct.Chain.html#method.get_ref +[`Chain::into_inner`]: https://doc.rust-lang.org/std/io/struct.Chain.html#method.into_inner +[`Take::get_mut`]: https://doc.rust-lang.org/std/io/struct.Take.html#method.get_mut +[`Take::get_ref`]: https://doc.rust-lang.org/std/io/struct.Take.html#method.get_ref +[`f32::from_bits`]: https://doc.rust-lang.org/std/primitive.f32.html#method.from_bits +[`f32::to_bits`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_bits +[`f64::from_bits`]: https://doc.rust-lang.org/std/primitive.f64.html#method.from_bits +[`f64::to_bits`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_bits +[`slice::sort_unstable_by_key`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable_by_key +[`slice::sort_unstable_by`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable_by +[`slice::sort_unstable`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable + + Version 1.19.0 (2017-07-20) =========================== @@ -1679,7 +1815,7 @@ Tooling * [Test binaries now support a `--test-threads` argument to specify the number of threads used to run tests, and which acts the same as the - `RUST_TEST_THREADS` environment variable](https://github.com/rust-lang/rust/pull/35414) + `RUST_TEST_THREADS` environment variable](https://github.com/rust-lang/rust/pull/35414) * [The test runner now emits a warning when tests run over 60 seconds](https://github.com/rust-lang/rust/pull/35405) * [rustdoc: Fix methods in search results](https://github.com/rust-lang/rust/pull/34752) * [`rust-lldb` warns about unsupported versions of LLDB](https://github.com/rust-lang/rust/pull/34646) From 6200aeff6132c660fde70c6d51f88d823e08b6b7 Mon Sep 17 00:00:00 2001 From: Aaron Power Date: Thu, 3 Aug 2017 15:07:41 +0100 Subject: [PATCH 2/6] fixed some formatting --- RELEASES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASES.md b/RELEASES.md index d42d879f3d81e..fa0c8a5f20614 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -30,7 +30,7 @@ Libraries - [`Ref`, `RefMut`, `MutexGuard`, `RwLockReadGuard`, `RwLockWriteGuard` now impl `fmt::Display` & `fmt::Debug`.][42822] -- [Relaxed Debug constraints on {HashMap,BTreeMap}::{Keys,Values}.][42854] +- [Relaxed Debug constraints on `{HashMap,BTreeMap}::{Keys,Values}`.][42854] - [Implement `PartialEq`, `Eq`, `PartialOrd`, `Ord`, `Debug`, `Hash` for unsized tuples.][43011] - [Impl `Clone` for `DefaultHasher`.][42799] From c88ec60e5f5f67f4657bd1d8efbc67cf40202104 Mon Sep 17 00:00:00 2001 From: Aaron Power Date: Thu, 3 Aug 2017 15:16:49 +0100 Subject: [PATCH 3/6] Update RELEASES.md --- RELEASES.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index fa0c8a5f20614..bcdadf7baae79 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -28,18 +28,19 @@ Compiler Libraries --------- -- [`Ref`, `RefMut`, `MutexGuard`, `RwLockReadGuard`, `RwLockWriteGuard` - now impl `fmt::Display` & `fmt::Debug`.][42822] + - [Relaxed Debug constraints on `{HashMap,BTreeMap}::{Keys,Values}`.][42854] -- [Implement `PartialEq`, `Eq`, `PartialOrd`, `Ord`, `Debug`, `Hash` for unsized +- [Impl `PartialEq`, `Eq`, `PartialOrd`, `Ord`, `Debug`, `Hash` for unsized tuples.][43011] +- [Impl `fmt::{Display, Debug}` for `Ref`, `RefMut`, `MutexGuard`, + `RwLockReadGuard`, `RwLockWriteGuard`][42822] - [Impl `Clone` for `DefaultHasher`.][42799] -- [Implement `Sync` for `SyncSender`.][42397] +- [Impl `Sync` for `SyncSender`.][42397] +- [Impl `FromStr` for `char`][42271] - [Fixed how `{f32, f64}::{is_sign_negative, is_sign_positive}` handles NaN.][42431] - [allow messages in the `unimplemented!()` macro.][42155] ie. `unimplemented!("Waiting for 1.21 to be stable")` -- [`char`now impls `FromStr`.][42271] - [support pub(restricted) in thread_local! (round 2)][43185] - [Upgrade to Unicode 10.0.0][42999] - [Reimplemented `{f32, f64}::{min, max}` in Rust instead of using CMath.][42430] From 1618664a736cb9f4b9a5d9e3cd8670da302eea75 Mon Sep 17 00:00:00 2001 From: Aaron Power Date: Fri, 4 Aug 2017 13:35:30 +0100 Subject: [PATCH 4/6] Update RELEASES.md --- RELEASES.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index bcdadf7baae79..ec24d663050eb 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -9,7 +9,7 @@ Language Compiler -------- -- [Struct fields are now properly to the expected field type.][42807] +- [Struct fields are now properly coerced to the expected field type.][42807] - [Enabled wasm LLVM backend][42571] WASM can now be built with the `wasm32-experimental-emscripten` target. - [Changed some of the error messages to be more helpful.][42033] @@ -53,18 +53,41 @@ Libraries Stabilized APIs --------------- +- [`CStr::into_c_string`] +- [`CString::as_c_str`] +- [`CString::into_boxed_c_str`] - [`Chain::get_mut`] - [`Chain::get_ref`] - [`Chain::into_inner`] +- [`Option::get_or_insert_with`] +- [`Option::get_or_insert`] +- [`OsStr::into_os_string`] +- [`OsString::into_boxed_os_str`] - [`Take::get_mut`] - [`Take::get_ref`] +- [`Utf8Error::error_len`] +- [`char::EscapeDebug`] +- [`char::escape_debug`] +- [`compile_error!`] - [`f32::from_bits`] - [`f32::to_bits`] - [`f64::from_bits`] - [`f64::to_bits`] -- [`slice::sort_unstable`] -- [`slice::sort_unstable_by`] +- [`mem::ManuallyDrop`] - [`slice::sort_unstable_by_key`] +- [`slice::sort_unstable_by`] +- [`slice::sort_unstable`] +- [`ste::from_boxed_utf8_unchecked`] +- [`str::as_bytes_mut`] +- [`str::as_bytes_mut`] +- [`str::from_utf8_mut`] +- [`str::from_utf8_unchecked_mut`] +- [`str::get_mut`] +- [`str::get_unchecked_mut`] +- [`str::get_unchecked`] +- [`str::get`] +- [`str::into_boxed_bytes`] + Cargo ----- @@ -121,18 +144,40 @@ Compatibility Notes [cargo/4248]: https://github.com/rust-lang/cargo/pull/4248 [cargo/4259]: https://github.com/rust-lang/cargo/pull/4259 [cargo/4270]: https://github.com/rust-lang/cargo/pull/4270 +[`CStr::into_c_string`]: https://doc.rust-lang.org/std/ffi/struct.CStr.html#method.into_c_string +[`CString::as_c_str`]: https://doc.rust-lang.org/std/ffi/struct.CString.html#method.as_c_str +[`CString::into_boxed_c_str`]: https://doc.rust-lang.org/std/ffi/struct.CString.html#method.into_boxed_c_str [`Chain::get_mut`]: https://doc.rust-lang.org/std/io/struct.Chain.html#method.get_mut [`Chain::get_ref`]: https://doc.rust-lang.org/std/io/struct.Chain.html#method.get_ref [`Chain::into_inner`]: https://doc.rust-lang.org/std/io/struct.Chain.html#method.into_inner +[`Option::get_or_insert_with`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.get_or_insert_with +[`Option::get_or_insert`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.get_or_insert +[`OsStr::into_os_string`]: https://doc.rust-lang.org/std/ffi/struct.OsStr.html#method.into_os_string +[`OsString::into_boxed_os_str`]: https://doc.rust-lang.org/std/ffi/struct.OsString.html#method.into_boxed_os_str [`Take::get_mut`]: https://doc.rust-lang.org/std/io/struct.Take.html#method.get_mut [`Take::get_ref`]: https://doc.rust-lang.org/std/io/struct.Take.html#method.get_ref +[`Utf8Error::error_len`]: https://doc.rust-lang.org/std/str/struct.Utf8Error.html#method.error_len +[`char::EscapeDebug`]: https://doc.rust-lang.org/std/char/struct.EscapeDebug.html +[`char::escape_debug`]: https://doc.rust-lang.org/std/primitive.char.html#method.escape_debug +[`compile_error!`]: https://doc.rust-lang.org/std/macro.compile_error.html [`f32::from_bits`]: https://doc.rust-lang.org/std/primitive.f32.html#method.from_bits [`f32::to_bits`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_bits [`f64::from_bits`]: https://doc.rust-lang.org/std/primitive.f64.html#method.from_bits [`f64::to_bits`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_bits +[`mem::ManuallyDrop`]: https://doc.rust-lang.org/std/mem/union.ManuallyDrop.html [`slice::sort_unstable_by_key`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable_by_key [`slice::sort_unstable_by`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable_by [`slice::sort_unstable`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable +[`ste::from_boxed_utf8_unchecked`]: https://doc.rust-lang.org/std/str/fn.from_boxed_utf8_unchecked.html +[`str::as_bytes_mut`]: https://doc.rust-lang.org/std/primitive.str.html#method.as_bytes_mut +[`str::as_bytes_mut`]: https://doc.rust-lang.org/std/primitive.str.html#method.as_bytes_mut +[`str::from_utf8_mut`]: https://doc.rust-lang.org/std/str/fn.from_utf8_mut.html +[`str::from_utf8_unchecked_mut`]: https://doc.rust-lang.org/std/str/fn.from_utf8_unchecked_mut.html +[`str::get_mut`]: https://doc.rust-lang.org/std/primitive.str.html#method.get_mut +[`str::get_unchecked_mut`]: https://doc.rust-lang.org/std/primitive.str.html#method.get_unchecked_mut +[`str::get_unchecked`]: https://doc.rust-lang.org/std/primitive.str.html#method.get_unchecked +[`str::get`]: https://doc.rust-lang.org/std/primitive.str.html#method.get +[`str::into_boxed_bytes`]: https://doc.rust-lang.org/std/primitive.str.html#method.into_boxed_bytes Version 1.19.0 (2017-07-20) From 09c1b7486189196e51bcf4878def561c9f5b2736 Mon Sep 17 00:00:00 2001 From: Aaron Power Date: Fri, 4 Aug 2017 13:40:05 +0100 Subject: [PATCH 5/6] Update RELEASES.md --- RELEASES.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index ec24d663050eb..e62e218c6c356 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -41,12 +41,12 @@ Libraries NaN.][42431] - [allow messages in the `unimplemented!()` macro.][42155] ie. `unimplemented!("Waiting for 1.21 to be stable")` -- [support pub(restricted) in thread_local! (round 2)][43185] +- [`pub(restricted)` is now supported in the `thread_local!` macro.][43185] - [Upgrade to Unicode 10.0.0][42999] - [Reimplemented `{f32, f64}::{min, max}` in Rust instead of using CMath.][42430] - [Skip the main thread's manual stack guard on Linux][43072] - [Iterator::nth for `ops::{Range, RangeFrom}` is now done in O(1) time][43077] -- [`#cfg[align(N)]` attribute max number is now 2^31 - 1.][43097] This was +- [`#[repr(align(N))]` attribute max number is now 2^31 - 1.][43097] This was previously 2^15. - [`{OsStr, Path}::Display` now avoids allocations where possible][42613] @@ -109,6 +109,8 @@ Compatibility Notes - [Functions with `'static` in their return types will now not be as usable as if they were using lifetime parameters instead.][42417] +- [The reimplementation of `{f32, f64}::is_sign_{negative, positive}` now + takes the sign of NaN into account where previously didn't.][42430] [42033]: https://github.com/rust-lang/rust/pull/42033 [42155]: https://github.com/rust-lang/rust/pull/42155 From 89087183fc98e672bb21487c50cc39d1b6af35f1 Mon Sep 17 00:00:00 2001 From: Aaron Power Date: Wed, 9 Aug 2017 16:19:54 +0100 Subject: [PATCH 6/6] Update RELEASES.md --- RELEASES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index e62e218c6c356..7bf0bcab64066 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -93,9 +93,9 @@ Cargo ----- - [Cargo API token location moved from `~/.cargo/config` to `~/cargo/credentials`.][cargo/3978] -- [Cargo will now build multiple `main.rs` binaries in different - directories.][cargo/4214] ie. Having `src/server/main.rs` and - `src/client/main.rs` generates `target/debug/server` and `target/debug/client` +- [Cargo will now build `main.rs` binaries that are in sub-directories of + `src/bin`.][cargo/4214] ie. Having `src/bin/server/main.rs` and + `src/bin/client/main.rs` generates `target/debug/server` and `target/debug/client` - [You can now specify version of a binary when installed through `cargo install` using `--vers`.][cargo/4229] - [Added `--no-fail-fast` flag to cargo to run all benchmarks regardless of