Skip to content

Commit a7b2164

Browse files
Add initial 1.52.0 post
1 parent 4fa94c1 commit a7b2164

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed

posts/2021-05-06-Rust-1.52.0.md

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
---
2+
layout: post
3+
title: "Announcing Rust 1.52.0"
4+
author: The Rust Release Team
5+
release: true
6+
---
7+
8+
The Rust team is happy to announce a new version of Rust, 1.52.0. Rust is a
9+
programming language that is empowering everyone to build reliable and
10+
efficient software.
11+
12+
If you have a previous version of Rust installed via rustup, getting Rust
13+
1.52.0 is as easy as:
14+
15+
```console
16+
rustup update stable
17+
```
18+
19+
If you don't have it already, you can [get `rustup`][install]
20+
from the appropriate page on our website, and check out the
21+
[detailed release notes for 1.52.0][notes] on GitHub.
22+
23+
[install]: https://www.rust-lang.org/install.html
24+
[notes]: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1510-2021-03-25
25+
26+
## What's in 1.52.0 stable
27+
28+
This release is fairly small, primarily containing stabilizations of various APIs in the standard library.
29+
30+
This release also closes out a long-standing bug in the Rust compiler: forward progress is no longer assumed by LLVM, which means that some programs which used to compile incorrectly are now properly handled. This is due to changes in LLVM IR semantics, which no longer assume forward progress is guaranteed and optimize for that.
31+
32+
### Stabilized APIs
33+
34+
The following methods were stabilized.
35+
36+
- [`Arguments::as_str`]
37+
- [`Peekable::next_if_eq`]
38+
- [`Peekable::next_if`]
39+
- [`char::MAX`]
40+
- [`char::REPLACEMENT_CHARACTER`]
41+
- [`char::UNICODE_VERSION`]
42+
- [`char::decode_utf16`]
43+
- [`char::from_digit`]
44+
- [`char::from_u32_unchecked`]
45+
- [`char::from_u32`]
46+
- [`slice::partition_point`]
47+
- [`str::rsplit_once`]
48+
- [`str::split_once`]
49+
50+
The following previously stable APIs are now `const`.
51+
52+
- [`char::len_utf8`]
53+
- [`char::len_utf16`]
54+
- [`char::to_ascii_uppercase`]
55+
- [`char::to_ascii_lowercase`]
56+
- [`char::eq_ignore_ascii_case`]
57+
- [`u8::to_ascii_uppercase`]
58+
- [`u8::to_ascii_lowercase`]
59+
- [`u8::eq_ignore_ascii_case`]
60+
61+
[`char::MAX`]: https://doc.rust-lang.org/std/primitive.char.html#associatedconstant.MAX
62+
[`char::REPLACEMENT_CHARACTER`]: https://doc.rust-lang.org/std/primitive.char.html#associatedconstant.REPLACEMENT_CHARACTER
63+
[`char::UNICODE_VERSION`]: https://doc.rust-lang.org/std/primitive.char.html#associatedconstant.UNICODE_VERSION
64+
[`char::decode_utf16`]: https://doc.rust-lang.org/std/primitive.char.html#method.decode_utf16
65+
[`char::from_u32`]: https://doc.rust-lang.org/std/primitive.char.html#method.from_u32
66+
[`char::from_u32_unchecked`]: https://doc.rust-lang.org/std/primitive.char.html#method.from_u32_unchecked
67+
[`char::from_digit`]: https://doc.rust-lang.org/std/primitive.char.html#method.from_digit
68+
[`Peekable::next_if`]: https://doc.rust-lang.org/stable/std/iter/struct.Peekable.html#method.next_if
69+
[`Peekable::next_if_eq`]: https://doc.rust-lang.org/stable/std/iter/struct.Peekable.html#method.next_if_eq
70+
[`Arguments::as_str`]: https://doc.rust-lang.org/stable/std/fmt/struct.Arguments.html#method.as_str
71+
[`str::split_once`]: https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_once
72+
[`str::rsplit_once`]: https://doc.rust-lang.org/stable/std/primitive.str.html#method.rsplit_once
73+
[`slice::partition_point`]: https://doc.rust-lang.org/stable/std/primitive.slice.html#method.partition_point
74+
[`char::len_utf8`]: https://doc.rust-lang.org/stable/std/primitive.char.html#method.len_utf8
75+
[`char::len_utf16`]: https://doc.rust-lang.org/stable/std/primitive.char.html#method.len_utf16
76+
[`char::to_ascii_uppercase`]: https://doc.rust-lang.org/stable/std/primitive.char.html#method.to_ascii_uppercase
77+
[`char::to_ascii_lowercase`]: https://doc.rust-lang.org/stable/std/primitive.char.html#method.to_ascii_lowercase
78+
[`char::eq_ignore_ascii_case`]: https://doc.rust-lang.org/stable/std/primitive.char.html#method.eq_ignore_ascii_case
79+
[`u8::to_ascii_uppercase`]: https://doc.rust-lang.org/stable/std/primitive.u8.html#method.to_ascii_uppercase
80+
[`u8::to_ascii_lowercase`]: https://doc.rust-lang.org/stable/std/primitive.u8.html#method.to_ascii_lowercase
81+
[`u8::eq_ignore_ascii_case`]: https://doc.rust-lang.org/stable/std/primitive.u8.html#method.eq_ignore_ascii_case
82+
83+
### Other changes
84+
85+
There are other changes in the Rust 1.52.0 release: check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1520-2021-05-06), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-152-2021-05-06), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-152).
86+
87+
### Contributors to 1.52.0
88+
89+
Many people came together to create Rust 1.52.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.52.0/)

0 commit comments

Comments
 (0)