Skip to content

Commit 875bcf5

Browse files
committed
Auto merge of #43627 - Aaronepower:master, r=alexcrichton
Updated release notes for 1.20 [Rendered](https://github.com/Aaronepower/rust/blob/master/RELEASES.md)
2 parents f142499 + 8908718 commit 875bcf5

File tree

1 file changed

+185
-1
lines changed

1 file changed

+185
-1
lines changed

RELEASES.md

+185-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,187 @@
1+
Version 1.20.0 (2017-08-31)
2+
===========================
3+
4+
Language
5+
--------
6+
- [Associated constants in traits is now stabilised.][42809]
7+
- [A lot of macro bugs are now fixed.][42913]
8+
9+
Compiler
10+
--------
11+
12+
- [Struct fields are now properly coerced to the expected field type.][42807]
13+
- [Enabled wasm LLVM backend][42571] WASM can now be built with the
14+
`wasm32-experimental-emscripten` target.
15+
- [Changed some of the error messages to be more helpful.][42033]
16+
- [Add support for RELRO(RELocation Read-Only) for platforms that support
17+
it.][43170]
18+
- [rustc now reports the total number of errors on compilation failure][43015]
19+
previously this was only the number of errors in the pass that failed.
20+
- [Expansion in rustc has been sped up 29x.][42533]
21+
- [added `msp430-none-elf` target.][43099]
22+
- [rustc will now suggest one-argument enum variant to fix type mismatch when
23+
applicable][43178]
24+
- [Fixes backtraces on Redox][43228]
25+
- [rustc now identifies different versions of same crate when absolute paths of
26+
different types match in an error message.][42826]
27+
28+
Libraries
29+
---------
30+
31+
32+
- [Relaxed Debug constraints on `{HashMap,BTreeMap}::{Keys,Values}`.][42854]
33+
- [Impl `PartialEq`, `Eq`, `PartialOrd`, `Ord`, `Debug`, `Hash` for unsized
34+
tuples.][43011]
35+
- [Impl `fmt::{Display, Debug}` for `Ref`, `RefMut`, `MutexGuard`,
36+
`RwLockReadGuard`, `RwLockWriteGuard`][42822]
37+
- [Impl `Clone` for `DefaultHasher`.][42799]
38+
- [Impl `Sync` for `SyncSender`.][42397]
39+
- [Impl `FromStr` for `char`][42271]
40+
- [Fixed how `{f32, f64}::{is_sign_negative, is_sign_positive}` handles
41+
NaN.][42431]
42+
- [allow messages in the `unimplemented!()` macro.][42155]
43+
ie. `unimplemented!("Waiting for 1.21 to be stable")`
44+
- [`pub(restricted)` is now supported in the `thread_local!` macro.][43185]
45+
- [Upgrade to Unicode 10.0.0][42999]
46+
- [Reimplemented `{f32, f64}::{min, max}` in Rust instead of using CMath.][42430]
47+
- [Skip the main thread's manual stack guard on Linux][43072]
48+
- [Iterator::nth for `ops::{Range, RangeFrom}` is now done in O(1) time][43077]
49+
- [`#[repr(align(N))]` attribute max number is now 2^31 - 1.][43097] This was
50+
previously 2^15.
51+
- [`{OsStr, Path}::Display` now avoids allocations where possible][42613]
52+
53+
Stabilized APIs
54+
---------------
55+
56+
- [`CStr::into_c_string`]
57+
- [`CString::as_c_str`]
58+
- [`CString::into_boxed_c_str`]
59+
- [`Chain::get_mut`]
60+
- [`Chain::get_ref`]
61+
- [`Chain::into_inner`]
62+
- [`Option::get_or_insert_with`]
63+
- [`Option::get_or_insert`]
64+
- [`OsStr::into_os_string`]
65+
- [`OsString::into_boxed_os_str`]
66+
- [`Take::get_mut`]
67+
- [`Take::get_ref`]
68+
- [`Utf8Error::error_len`]
69+
- [`char::EscapeDebug`]
70+
- [`char::escape_debug`]
71+
- [`compile_error!`]
72+
- [`f32::from_bits`]
73+
- [`f32::to_bits`]
74+
- [`f64::from_bits`]
75+
- [`f64::to_bits`]
76+
- [`mem::ManuallyDrop`]
77+
- [`slice::sort_unstable_by_key`]
78+
- [`slice::sort_unstable_by`]
79+
- [`slice::sort_unstable`]
80+
- [`ste::from_boxed_utf8_unchecked`]
81+
- [`str::as_bytes_mut`]
82+
- [`str::as_bytes_mut`]
83+
- [`str::from_utf8_mut`]
84+
- [`str::from_utf8_unchecked_mut`]
85+
- [`str::get_mut`]
86+
- [`str::get_unchecked_mut`]
87+
- [`str::get_unchecked`]
88+
- [`str::get`]
89+
- [`str::into_boxed_bytes`]
90+
91+
92+
Cargo
93+
-----
94+
- [Cargo API token location moved from `~/.cargo/config` to
95+
`~/cargo/credentials`.][cargo/3978]
96+
- [Cargo will now build `main.rs` binaries that are in sub-directories of
97+
`src/bin`.][cargo/4214] ie. Having `src/bin/server/main.rs` and
98+
`src/bin/client/main.rs` generates `target/debug/server` and `target/debug/client`
99+
- [You can now specify version of a binary when installed through
100+
`cargo install` using `--vers`.][cargo/4229]
101+
- [Added `--no-fail-fast` flag to cargo to run all benchmarks regardless of
102+
failure.][cargo/4248]
103+
- [Changed the convention around which file is the crate root.][cargo/4259]
104+
- [The `include`/`exclude` property in `Cargo.toml` now accepts gitignore paths
105+
instead of glob patterns][cargo/4270]. Glob patterns are now deprecated.
106+
107+
Compatibility Notes
108+
-------------------
109+
110+
- [Functions with `'static` in their return types will now not be as usable as
111+
if they were using lifetime parameters instead.][42417]
112+
- [The reimplementation of `{f32, f64}::is_sign_{negative, positive}` now
113+
takes the sign of NaN into account where previously didn't.][42430]
114+
115+
[42033]: https://github.com/rust-lang/rust/pull/42033
116+
[42155]: https://github.com/rust-lang/rust/pull/42155
117+
[42271]: https://github.com/rust-lang/rust/pull/42271
118+
[42397]: https://github.com/rust-lang/rust/pull/42397
119+
[42417]: https://github.com/rust-lang/rust/pull/42417
120+
[42430]: https://github.com/rust-lang/rust/pull/42430
121+
[42431]: https://github.com/rust-lang/rust/pull/42431
122+
[42533]: https://github.com/rust-lang/rust/pull/42533
123+
[42571]: https://github.com/rust-lang/rust/pull/42571
124+
[42613]: https://github.com/rust-lang/rust/pull/42613
125+
[42799]: https://github.com/rust-lang/rust/pull/42799
126+
[42807]: https://github.com/rust-lang/rust/pull/42807
127+
[42809]: https://github.com/rust-lang/rust/pull/42809
128+
[42822]: https://github.com/rust-lang/rust/pull/42822
129+
[42826]: https://github.com/rust-lang/rust/pull/42826
130+
[42854]: https://github.com/rust-lang/rust/pull/42854
131+
[42913]: https://github.com/rust-lang/rust/pull/42913
132+
[42999]: https://github.com/rust-lang/rust/pull/42999
133+
[43011]: https://github.com/rust-lang/rust/pull/43011
134+
[43015]: https://github.com/rust-lang/rust/pull/43015
135+
[43072]: https://github.com/rust-lang/rust/pull/43072
136+
[43077]: https://github.com/rust-lang/rust/pull/43077
137+
[43097]: https://github.com/rust-lang/rust/pull/43097
138+
[43099]: https://github.com/rust-lang/rust/pull/43099
139+
[43170]: https://github.com/rust-lang/rust/pull/43170
140+
[43178]: https://github.com/rust-lang/rust/pull/43178
141+
[43185]: https://github.com/rust-lang/rust/pull/43185
142+
[43228]: https://github.com/rust-lang/rust/pull/43228
143+
[cargo/3978]: https://github.com/rust-lang/cargo/pull/3978
144+
[cargo/4214]: https://github.com/rust-lang/cargo/pull/4214
145+
[cargo/4229]: https://github.com/rust-lang/cargo/pull/4229
146+
[cargo/4248]: https://github.com/rust-lang/cargo/pull/4248
147+
[cargo/4259]: https://github.com/rust-lang/cargo/pull/4259
148+
[cargo/4270]: https://github.com/rust-lang/cargo/pull/4270
149+
[`CStr::into_c_string`]: https://doc.rust-lang.org/std/ffi/struct.CStr.html#method.into_c_string
150+
[`CString::as_c_str`]: https://doc.rust-lang.org/std/ffi/struct.CString.html#method.as_c_str
151+
[`CString::into_boxed_c_str`]: https://doc.rust-lang.org/std/ffi/struct.CString.html#method.into_boxed_c_str
152+
[`Chain::get_mut`]: https://doc.rust-lang.org/std/io/struct.Chain.html#method.get_mut
153+
[`Chain::get_ref`]: https://doc.rust-lang.org/std/io/struct.Chain.html#method.get_ref
154+
[`Chain::into_inner`]: https://doc.rust-lang.org/std/io/struct.Chain.html#method.into_inner
155+
[`Option::get_or_insert_with`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.get_or_insert_with
156+
[`Option::get_or_insert`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.get_or_insert
157+
[`OsStr::into_os_string`]: https://doc.rust-lang.org/std/ffi/struct.OsStr.html#method.into_os_string
158+
[`OsString::into_boxed_os_str`]: https://doc.rust-lang.org/std/ffi/struct.OsString.html#method.into_boxed_os_str
159+
[`Take::get_mut`]: https://doc.rust-lang.org/std/io/struct.Take.html#method.get_mut
160+
[`Take::get_ref`]: https://doc.rust-lang.org/std/io/struct.Take.html#method.get_ref
161+
[`Utf8Error::error_len`]: https://doc.rust-lang.org/std/str/struct.Utf8Error.html#method.error_len
162+
[`char::EscapeDebug`]: https://doc.rust-lang.org/std/char/struct.EscapeDebug.html
163+
[`char::escape_debug`]: https://doc.rust-lang.org/std/primitive.char.html#method.escape_debug
164+
[`compile_error!`]: https://doc.rust-lang.org/std/macro.compile_error.html
165+
[`f32::from_bits`]: https://doc.rust-lang.org/std/primitive.f32.html#method.from_bits
166+
[`f32::to_bits`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_bits
167+
[`f64::from_bits`]: https://doc.rust-lang.org/std/primitive.f64.html#method.from_bits
168+
[`f64::to_bits`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_bits
169+
[`mem::ManuallyDrop`]: https://doc.rust-lang.org/std/mem/union.ManuallyDrop.html
170+
[`slice::sort_unstable_by_key`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable_by_key
171+
[`slice::sort_unstable_by`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable_by
172+
[`slice::sort_unstable`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable
173+
[`ste::from_boxed_utf8_unchecked`]: https://doc.rust-lang.org/std/str/fn.from_boxed_utf8_unchecked.html
174+
[`str::as_bytes_mut`]: https://doc.rust-lang.org/std/primitive.str.html#method.as_bytes_mut
175+
[`str::as_bytes_mut`]: https://doc.rust-lang.org/std/primitive.str.html#method.as_bytes_mut
176+
[`str::from_utf8_mut`]: https://doc.rust-lang.org/std/str/fn.from_utf8_mut.html
177+
[`str::from_utf8_unchecked_mut`]: https://doc.rust-lang.org/std/str/fn.from_utf8_unchecked_mut.html
178+
[`str::get_mut`]: https://doc.rust-lang.org/std/primitive.str.html#method.get_mut
179+
[`str::get_unchecked_mut`]: https://doc.rust-lang.org/std/primitive.str.html#method.get_unchecked_mut
180+
[`str::get_unchecked`]: https://doc.rust-lang.org/std/primitive.str.html#method.get_unchecked
181+
[`str::get`]: https://doc.rust-lang.org/std/primitive.str.html#method.get
182+
[`str::into_boxed_bytes`]: https://doc.rust-lang.org/std/primitive.str.html#method.into_boxed_bytes
183+
184+
1185
Version 1.19.0 (2017-07-20)
2186
===========================
3187

@@ -1679,7 +1863,7 @@ Tooling
16791863

16801864
* [Test binaries now support a `--test-threads` argument to specify the number
16811865
of threads used to run tests, and which acts the same as the
1682-
`RUST_TEST_THREADS` environment variable](https://github.com/rust-lang/rust/pull/35414)
1866+
`RUST_TEST_THREADS` environment variable](https://github.com/rust-lang/rust/pull/35414)
16831867
* [The test runner now emits a warning when tests run over 60 seconds](https://github.com/rust-lang/rust/pull/35405)
16841868
* [rustdoc: Fix methods in search results](https://github.com/rust-lang/rust/pull/34752)
16851869
* [`rust-lldb` warns about unsupported versions of LLDB](https://github.com/rust-lang/rust/pull/34646)

0 commit comments

Comments
 (0)