Skip to content

Rust 1.44 release announcement #604

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 6 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 118 additions & 0 deletions posts/2020-06-04-Rust-1.44.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
---
layout: post
title: "Announcing Rust 1.44.0"
author: The Rust Release Team
release: true
---

The Rust team is happy to announce a new version of Rust, 1.44.0. Rust is a
programming language that is empowering everyone to build reliable and
efficient software.

If you have a previous version of Rust installed via rustup, getting Rust
1.44.0 is as easy as:

```console
rustup update stable
```

If you don't have it already, you can [get `rustup`][install] from the
appropriate page on our website, and check out the [detailed release notes for
1.44.0][notes] on GitHub.

[install]: https://www.rust-lang.org/install.html
[notes]: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1440-2020-06-04

## What's in 1.44.0 stable

Rust 1.44 is a smaller release, containing almost exclusively polish and a
few new stabilized standard library APIs.

`cargo tree` is a very old, popular extension to Cargo. Originally released
in December of 2015, and with almost 50,000 downloads, [we have decided to
add it to Cargo directly][cargotree]. If you haven't used it in the past,
`cargo tree` will print your dependency tree to the console:

```text
mdbook v0.3.2 (/Users/src/rust/mdbook)
├── ammonia v3.0.0
│ ├── html5ever v0.24.0
│ │ ├── log v0.4.8
│ │ │ └── cfg-if v0.1.9
│ │ ├── mac v0.1.1
│ │ └── markup5ever v0.9.0
│ │ ├── log v0.4.8 (*)
│ │ ├── phf v0.7.24
│ │ │ └── phf_shared v0.7.24
│ │ │ ├── siphasher v0.2.3
│ │ │ └── unicase v1.4.2
│ │ │ [build-dependencies]
│ │ │ └── version_check v0.1.5
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could someone please check that with the CSS used on the blog itself, these line-drawing characters join up properly? GitHub's own CSS breaks line-drawing characters, leaving gaps between them. They should look more like this:

screenshot

...
```

In this example, the `mdbook` package depends on the `ammonia` package,
which itself depends on `html5ever`, which depends on `log`, `mac`, and
`markup5ever`... and so on.

You can also use `cargo tree -d` (shorthand for `cargo tree --duplicates`) to show any dependencies on multiple versions of the same crate. This will show one entry for each version of each dependency, and an inverted dependency tree showing how that version gets pulled in.

This release also marks an extension to `async`/`await`: [it can now be used
in `no_std` contexts][asyncawaitnostd]. The initial implemenation of this feature required
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean "implementation"?

thread local storage, but that was a temporary situation. In this release,
this requirement has been removed, meaning that `libstd` is no longer required
to use `async`/`await`.

[cargotree]: https://github.com/rust-lang/cargo/pull/8062/
[asyncawaitnostd]: https://github.com/rust-lang/rust/pull/69033/

### Library changes

[`vec![]` can now be used in `const` contexts.][70632] Note that only
empty vectors can be created; `vec![]` will compile, but `vec![1, 2, 3]` will not.

[Unicode 13 is now supported.][69929]

[`Vec<T>` now implements `From<[T; N]>`][68692] where `N` is less than 32.

Additionally, we stabilized 11 new APIs:

- [`PathBuf::with_capacity`]
- [`PathBuf::capacity`]
- [`PathBuf::clear`]
- [`PathBuf::reserve`]
- [`PathBuf::reserve_exact`]
- [`PathBuf::shrink_to_fit`]
- [`f32::to_int_unchecked`]
- [`f64::to_int_unchecked`]
- [`Layout::align_to`]
- [`Layout::pad_to_align`]
- [`Layout::array`]

[70632]: https://github.com/rust-lang/rust/pull/70632/
[69929]: https://github.com/rust-lang/rust/pull/69929/
[68692]: https://github.com/rust-lang/rust/pull/68692/
[`PathBuf::with_capacity`]: https://doc.rust-lang.org/beta/std/path/struct.PathBuf.html#method.with_capacity
[`PathBuf::capacity`]: https://doc.rust-lang.org/beta/std/path/struct.PathBuf.html#method.capacity
[`PathBuf::clear`]: https://doc.rust-lang.org/beta/std/path/struct.PathBuf.html#method.clear
[`PathBuf::reserve`]: https://doc.rust-lang.org/beta/std/path/struct.PathBuf.html#method.reserve
[`PathBuf::reserve_exact`]: https://doc.rust-lang.org/beta/std/path/struct.PathBuf.html#method.reserve_exact
[`PathBuf::shrink_to_fit`]: https://doc.rust-lang.org/beta/std/path/struct.PathBuf.html#method.shrink_to_fit
[`f32::to_int_unchecked`]: https://doc.rust-lang.org/beta/std/primitive.f32.html#method.to_int_unchecked
[`f64::to_int_unchecked`]: https://doc.rust-lang.org/beta/std/primitive.f64.html#method.to_int_unchecked
[`Layout::align_to`]: https://doc.rust-lang.org/beta/std/alloc/struct.Layout.html#method.align_to
[`Layout::pad_to_align`]: https://doc.rust-lang.org/beta/std/alloc/struct.Layout.html#method.pad_to_align
[`Layout::array`]: https://doc.rust-lang.org/beta/std/alloc/struct.Layout.html#method.array

### Other changes

[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-144-2020-06-04
[relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-144

There are other changes in the Rust 1.44.0 release: check out what changed in
[Rust][notes], [Cargo][relnotes-cargo], and [Clippy][relnotes-clippy].

## Contributors to 1.44.0

Many people came together to create Rust 1.44.0. We couldn't have done it
without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.44.0/)