Skip to content

Commit 5fb4111

Browse files
committed
Updated RELEASES.md for 1.39.0
1 parent 18f00b9 commit 5fb4111

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed

RELEASES.md

+124
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,127 @@
1+
Version 1.39.0 (2019-11-07)
2+
===========================
3+
4+
Language
5+
--------
6+
- [You can now create `async` functions and blocks with `async fn`, `async move {}`, and
7+
`async {}` respectively, and you can now call `.await` on async expressions.][63209]
8+
- [You can now use certain attributes on function, closure, and function pointer
9+
parameters.][64010] These attributes include `cfg`, `cfg_attr`, `allow`, `warn`,
10+
`deny`, `forbid` as well as inert helper attributes used by procedural macro
11+
attributes applied to items. e.g.
12+
```rust
13+
fn len(
14+
#[cfg(windows)] slice: &[u16],
15+
#[cfg(not(windows))] slice: &[u8],
16+
) -> usize {
17+
slice.len()
18+
}
19+
```
20+
- [You can now take shared references to bind-by-move patterns in the `if` guards
21+
of `match` arms.][63118] e.g.
22+
```rust
23+
fn main() {
24+
let array: Box<[u8; 4]> = Box::new([1, 2, 3, 4]);
25+
26+
match array {
27+
nums
28+
// ---- `nums` is bound by move.
29+
if nums.iter().sum::<u8>() == 10
30+
// ^------ `.iter()` implicitly takes a reference to `nums`.
31+
=> {
32+
drop(nums);
33+
// ----------- Legal as `nums` was bound by move and so we have ownership.
34+
}
35+
_ => unreachable!(),
36+
}
37+
}
38+
```
39+
40+
41+
42+
Compiler
43+
--------
44+
- [Added tier 3\* support for the `i686-unknown-uefi` target.][64334]
45+
- [Added tier 3 support for the `sparc64-unknown-openbsd` target.][63595]
46+
- [rustc will now trim code snippets in diagnostics to fit in your terminal.][63402]
47+
**Note** Cargo currently doesn't use this feature. Refer to
48+
[cargo#7315][cargo/7315] to track this feature's progress.
49+
- [You can now pass `--show-output` argument to test binaries to print the
50+
output of successful tests.][62600]
51+
52+
53+
\* Refer to Rust's [platform support page][forge-platform-support] for more
54+
information on Rust's tiered platform support.
55+
56+
Libraries
57+
---------
58+
- [`Vec::new` and `String::new` are now `const` functions.][64028]
59+
- [`LinkedList::new` is now a `const` function.][63684]
60+
- [`str::len`, `[T]::len` and `str::as_bytes` are now `const` functions.][63770]
61+
- [The `abs`, `wrapping_abs`, and `overflowing_abs` numeric functions are
62+
now `const`.][63786]
63+
64+
Stabilized APIs
65+
---------------
66+
- [`Pin::into_inner`]
67+
- [`Instant::checked_duration_since`]
68+
- [`Instant::saturating_duration_since`]
69+
70+
Cargo
71+
-----
72+
- [You can now publish git dependencies if supplied with a `version`.][cargo/7237]
73+
- [The `--all` flag has been renamed to `--workspace`.][cargo/7241] Using
74+
`--all` is now deprecated.
75+
76+
Misc
77+
----
78+
- [You can now pass `-Clinker` to rustdoc to control the linker used
79+
for compiling doctests.][63834]
80+
81+
Compatibility Notes
82+
-------------------
83+
- [Code that was previously accepted by the old borrow checker, but rejected by
84+
the NLL borrow checker is now a hard error in Rust 2018.][63565] This was
85+
previously a warning, and will also become a hard error in the Rust 2015
86+
edition in the 1.40.0 release.
87+
- [`rustdoc` now requires `rustc` to be installed and in the same directory to
88+
run tests.][63827] This should improve performance when running a large
89+
amount of doctests.
90+
- [The `try!` macro will now issue a deprecation warning.][62672] It is
91+
recommended to use the `?` operator instead.
92+
- [`asinh(-0.0)` now correctly returns `-0.0`.][63698] Previously this
93+
returned `0.0`.
94+
95+
[62600]: https://github.com/rust-lang/rust/pull/62600/
96+
[62672]: https://github.com/rust-lang/rust/pull/62672/
97+
[63118]: https://github.com/rust-lang/rust/pull/63118/
98+
[63209]: https://github.com/rust-lang/rust/pull/63209/
99+
[63402]: https://github.com/rust-lang/rust/pull/63402/
100+
[63565]: https://github.com/rust-lang/rust/pull/63565/
101+
[63595]: https://github.com/rust-lang/rust/pull/63595/
102+
[63684]: https://github.com/rust-lang/rust/pull/63684/
103+
[63698]: https://github.com/rust-lang/rust/pull/63698/
104+
[63770]: https://github.com/rust-lang/rust/pull/63770/
105+
[63786]: https://github.com/rust-lang/rust/pull/63786/
106+
[63827]: https://github.com/rust-lang/rust/pull/63827/
107+
[63834]: https://github.com/rust-lang/rust/pull/63834/
108+
[63927]: https://github.com/rust-lang/rust/pull/63927/
109+
[63933]: https://github.com/rust-lang/rust/pull/63933/
110+
[63934]: https://github.com/rust-lang/rust/pull/63934/
111+
[63938]: https://github.com/rust-lang/rust/pull/63938/
112+
[63940]: https://github.com/rust-lang/rust/pull/63940/
113+
[63941]: https://github.com/rust-lang/rust/pull/63941/
114+
[63945]: https://github.com/rust-lang/rust/pull/63945/
115+
[64010]: https://github.com/rust-lang/rust/pull/64010/
116+
[64028]: https://github.com/rust-lang/rust/pull/64028/
117+
[64334]: https://github.com/rust-lang/rust/pull/64334/
118+
[cargo/7237]: https://github.com/rust-lang/cargo/pull/7237/
119+
[cargo/7241]: https://github.com/rust-lang/cargo/pull/7241/
120+
[cargo/7315]: https://github.com/rust-lang/cargo/pull/7315/
121+
[`Pin::into_inner`]: https://doc.rust-lang.org/std/pin/struct.Pin.html#method.into_inner
122+
[`Instant::checked_duration_since`]: https://doc.rust-lang.org/std/time/struct.Instant.html#method.checked_duration_since
123+
[`Instant::saturating_duration_since`]: https://doc.rust-lang.org/std/time/struct.Instant.html#method.saturating_duration_since
124+
1125
Version 1.38.0 (2019-09-26)
2126
==========================
3127

0 commit comments

Comments
 (0)