Skip to content

Commit fe75e44

Browse files
committed
Auto merge of #51093 - Mark-Simulacrum:release-notes-beta, r=Mark-Simulacrum
[beta] Update release notes for beta from 1.26.1 release
2 parents b69d1d4 + bb325dd commit fe75e44

File tree

1 file changed

+230
-0
lines changed

1 file changed

+230
-0
lines changed

RELEASES.md

+230
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,233 @@
1+
Version 1.26.1 (2018-05-29)
2+
==========================
3+
4+
Tools
5+
-----
6+
7+
- [RLS now works on Windows][50646]
8+
- [Rustfmt stopped badly formatting text in some cases][rustfmt/2695]
9+
10+
Compatibility Notes
11+
--------
12+
13+
- [`fn main() -> impl Trait` no longer works for non-Termination
14+
trait][50656]
15+
This reverts an accidental stabilization.
16+
- [`NaN > NaN` no longer returns true in const-fn contexts][50812]
17+
- [Prohibit using turbofish for `impl Trait` in method arguments][50950]
18+
19+
[50646]: https://github.com/rust-lang/rust/issues/50646
20+
[50656]: https://github.com/rust-lang/rust/pull/50656
21+
[50812]: https://github.com/rust-lang/rust/pull/50812
22+
[50950]: https://github.com/rust-lang/rust/issues/50950
23+
[rustfmt/2695]: https://github.com/rust-lang-nursery/rustfmt/issues/2695
24+
25+
Version 1.26.0 (2018-05-10)
26+
==========================
27+
28+
Language
29+
--------
30+
- [Closures now implement `Copy` and/or `Clone` if all captured variables
31+
implement either or both traits.][49299]
32+
- [The inclusive range syntax e.g. `for x in 0..=10` is now stable.][47813]
33+
- [Stablise `'_`. The underscore lifetime can be used anywhere where a
34+
lifetime can be elided.][49458]
35+
- [`impl Trait` is now stable allowing you to have abstract types in returns
36+
or in function parameters.][49255] e.g. `fn foo() -> impl Iterator<Item=u8>` or
37+
`fn open(path: impl AsRef<Path>)`.
38+
- [Pattern matching will now automatically apply dereferences.][49394]
39+
- [128-bit integers in the form of `u128` and `i128` are now stable.][49101]
40+
- [`main` can now return `Result<(), E: Debug>`][49162] in addition to `()`.
41+
- [A lot of operations are now available in a const context.][46882] E.g. You
42+
can now index into constant arrays, reference and dereference into constants,
43+
and use Tuple struct constructors.
44+
- [Fixed entry slice patterns are now stable.][48516] e.g.
45+
```rust
46+
let points = [1, 2, 3, 4];
47+
match points {
48+
[1, 2, 3, 4] => println!("All points were sequential."),
49+
_ => println!("Not all points were sequential."),
50+
}
51+
```
52+
53+
54+
Compiler
55+
--------
56+
- [LLD is now used as the default linker for `wasm32-unknown-unknown`.][48125]
57+
- [Fixed exponential projection complexity on nested types.][48296]
58+
This can provide up to a ~12% reduction in compile times for certain crates.
59+
- [Added the `--remap-path-prefix` option to rustc.][48359] Allowing you
60+
to remap path prefixes outputted by the compiler.
61+
- [Added `powerpc-unknown-netbsd` target.][48281]
62+
63+
Libraries
64+
---------
65+
- [Implemented `From<u16> for usize` & `From<{u8, i16}> for isize`.][49305]
66+
- [Added hexadecimal formatting for integers with fmt::Debug][48978]
67+
e.g. `assert!(format!("{:02x?}", b"Foo\0") == "[46, 6f, 6f, 00]")`
68+
- [Implemented `Default, Hash` for `cmp::Reverse`.][48628]
69+
- [Optimized `str::repeat` being 8x faster in large cases.][48657]
70+
- [`ascii::escape_default` is now available in libcore.][48735]
71+
- [Trailing commas are now supported in std and core macros.][48056]
72+
- [Implemented `Copy, Clone` for `cmp::Reverse`][47379]
73+
- [Implemented `Clone` for `char::{ToLowercase, ToUppercase}`.][48629]
74+
75+
Stabilized APIs
76+
---------------
77+
- [`*const T::add`]
78+
- [`*const T::copy_to_nonoverlapping`]
79+
- [`*const T::copy_to`]
80+
- [`*const T::read_unaligned`]
81+
- [`*const T::read_volatile`]
82+
- [`*const T::read`]
83+
- [`*const T::sub`]
84+
- [`*const T::wrapping_add`]
85+
- [`*const T::wrapping_sub`]
86+
- [`*mut T::add`]
87+
- [`*mut T::copy_to_nonoverlapping`]
88+
- [`*mut T::copy_to`]
89+
- [`*mut T::read_unaligned`]
90+
- [`*mut T::read_volatile`]
91+
- [`*mut T::read`]
92+
- [`*mut T::replace`]
93+
- [`*mut T::sub`]
94+
- [`*mut T::swap`]
95+
- [`*mut T::wrapping_add`]
96+
- [`*mut T::wrapping_sub`]
97+
- [`*mut T::write_bytes`]
98+
- [`*mut T::write_unaligned`]
99+
- [`*mut T::write_volatile`]
100+
- [`*mut T::write`]
101+
- [`Box::leak`]
102+
- [`FromUtf8Error::as_bytes`]
103+
- [`LocalKey::try_with`]
104+
- [`Option::cloned`]
105+
- [`btree_map::Entry::and_modify`]
106+
- [`fs::read_to_string`]
107+
- [`fs::read`]
108+
- [`fs::write`]
109+
- [`hash_map::Entry::and_modify`]
110+
- [`iter::FusedIterator`]
111+
- [`ops::RangeInclusive`]
112+
- [`ops::RangeToInclusive`]
113+
- [`process::id`]
114+
- [`slice::rotate_left`]
115+
- [`slice::rotate_right`]
116+
- [`String::retain`]
117+
118+
119+
Cargo
120+
-----
121+
- [Cargo will now output path to custom commands when `-v` is
122+
passed with `--list`][cargo/5041]
123+
- [The Cargo binary version is now the same as the Rust version][cargo/5083]
124+
- [`Cargo.lock` files are now included in published crates.][cargo/5093]
125+
126+
Misc
127+
----
128+
- [The second edition of "The Rust Programming Language" book is now recommended
129+
over the first.][48404]
130+
131+
Compatibility Notes
132+
-------------------
133+
134+
- [aliasing a `Fn` trait as `dyn` no longer works.][48481] E.g. the following
135+
syntax is now invalid.
136+
```
137+
use std::ops::Fn as dyn;
138+
fn g(_: Box<dyn(std::fmt::Debug)>) {}
139+
```
140+
- [The result of dereferences are no longer promoted to `'static`.][47408]
141+
e.g.
142+
```rust
143+
fn main() {
144+
const PAIR: &(i32, i32) = &(0, 1);
145+
let _reversed_pair: &'static _ = &(PAIR.1, PAIR.0); // Doesn't work
146+
}
147+
```
148+
- [Deprecate `AsciiExt` trait in favor of inherent methods.][49109]
149+
- [`".e0"` will now no longer parse as `0.0` and will instead cause
150+
an error.][48235]
151+
- [Removed hoedown from rustdoc.][48274]
152+
- [Bounds on higher-kinded lifetimes a hard error.][48326]
153+
154+
[46882]: https://github.com/rust-lang/rust/pull/46882
155+
[47379]: https://github.com/rust-lang/rust/pull/47379
156+
[47408]: https://github.com/rust-lang/rust/pull/47408
157+
[47813]: https://github.com/rust-lang/rust/pull/47813
158+
[48056]: https://github.com/rust-lang/rust/pull/48056
159+
[48125]: https://github.com/rust-lang/rust/pull/48125
160+
[48166]: https://github.com/rust-lang/rust/pull/48166
161+
[48235]: https://github.com/rust-lang/rust/pull/48235
162+
[48274]: https://github.com/rust-lang/rust/pull/48274
163+
[48281]: https://github.com/rust-lang/rust/pull/48281
164+
[48296]: https://github.com/rust-lang/rust/pull/48296
165+
[48326]: https://github.com/rust-lang/rust/pull/48326
166+
[48359]: https://github.com/rust-lang/rust/pull/48359
167+
[48404]: https://github.com/rust-lang/rust/pull/48404
168+
[48481]: https://github.com/rust-lang/rust/pull/48481
169+
[48516]: https://github.com/rust-lang/rust/pull/48516
170+
[48628]: https://github.com/rust-lang/rust/pull/48628
171+
[48629]: https://github.com/rust-lang/rust/pull/48629
172+
[48657]: https://github.com/rust-lang/rust/pull/48657
173+
[48735]: https://github.com/rust-lang/rust/pull/48735
174+
[48978]: https://github.com/rust-lang/rust/pull/48978
175+
[49101]: https://github.com/rust-lang/rust/pull/49101
176+
[49109]: https://github.com/rust-lang/rust/pull/49109
177+
[49121]: https://github.com/rust-lang/rust/pull/49121
178+
[49162]: https://github.com/rust-lang/rust/pull/49162
179+
[49184]: https://github.com/rust-lang/rust/pull/49184
180+
[49234]: https://github.com/rust-lang/rust/pull/49234
181+
[49255]: https://github.com/rust-lang/rust/pull/49255
182+
[49299]: https://github.com/rust-lang/rust/pull/49299
183+
[49305]: https://github.com/rust-lang/rust/pull/49305
184+
[49394]: https://github.com/rust-lang/rust/pull/49394
185+
[49458]: https://github.com/rust-lang/rust/pull/49458
186+
[`*const T::add`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.add
187+
[`*const T::copy_to_nonoverlapping`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.copy_to_nonoverlapping
188+
[`*const T::copy_to`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.copy_to
189+
[`*const T::read_unaligned`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.read_unaligned
190+
[`*const T::read_volatile`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.read_volatile
191+
[`*const T::read`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.read
192+
[`*const T::sub`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.sub
193+
[`*const T::wrapping_add`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.wrapping_add
194+
[`*const T::wrapping_sub`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.wrapping_sub
195+
[`*mut T::add`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.add-1
196+
[`*mut T::copy_to_nonoverlapping`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.copy_to_nonoverlapping-1
197+
[`*mut T::copy_to`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.copy_to-1
198+
[`*mut T::read_unaligned`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.read_unaligned-1
199+
[`*mut T::read_volatile`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.read_volatile-1
200+
[`*mut T::read`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.read-1
201+
[`*mut T::replace`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.replace
202+
[`*mut T::sub`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.sub-1
203+
[`*mut T::swap`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.swap
204+
[`*mut T::wrapping_add`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.wrapping_add-1
205+
[`*mut T::wrapping_sub`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.wrapping_sub-1
206+
[`*mut T::write_bytes`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.write_bytes
207+
[`*mut T::write_unaligned`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.write_unaligned
208+
[`*mut T::write_volatile`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.write_volatile
209+
[`*mut T::write`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.write
210+
[`Box::leak`]: https://doc.rust-lang.org/std/boxed/struct.Box.html#method.leak
211+
[`FromUtf8Error::as_bytes`]: https://doc.rust-lang.org/std/string/struct.FromUtf8Error.html#method.as_bytes
212+
[`LocalKey::try_with`]: https://doc.rust-lang.org/std/thread/struct.LocalKey.html#method.try_with
213+
[`Option::cloned`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.cloned
214+
[`btree_map::Entry::and_modify`]: https://doc.rust-lang.org/std/collections/btree_map/enum.Entry.html#method.and_modify
215+
[`fs::read_to_string`]: https://doc.rust-lang.org/std/fs/fn.read_to_string.html
216+
[`fs::read`]: https://doc.rust-lang.org/std/fs/fn.read.html
217+
[`fs::write`]: https://doc.rust-lang.org/std/fs/fn.write.html
218+
[`hash_map::Entry::and_modify`]: https://doc.rust-lang.org/std/collections/hash_map/enum.Entry.html#method.and_modify
219+
[`iter::FusedIterator`]: https://doc.rust-lang.org/std/iter/trait.FusedIterator.html
220+
[`ops::RangeInclusive`]: https://doc.rust-lang.org/std/ops/struct.RangeInclusive.html
221+
[`ops::RangeToInclusive`]: https://doc.rust-lang.org/std/ops/struct.RangeToInclusive.html
222+
[`process::id`]: https://doc.rust-lang.org/std/process/fn.id.html
223+
[`slice::rotate_left`]: https://doc.rust-lang.org/std/primitive.slice.html#method.rotate_left
224+
[`slice::rotate_right`]: https://doc.rust-lang.org/std/primitive.slice.html#method.rotate_right
225+
[`String::retain`]: https://doc.rust-lang.org/std/string/struct.String.html#method.retain
226+
[cargo/5041]: https://github.com/rust-lang/cargo/pull/5041
227+
[cargo/5083]: https://github.com/rust-lang/cargo/pull/5083
228+
[cargo/5093]: https://github.com/rust-lang/cargo/pull/5093
229+
230+
1231
Version 1.25.0 (2018-03-29)
2232
==========================
3233

0 commit comments

Comments
 (0)