Skip to content

Releases: rust-lang/rust

Rust 1.59.0

24 Feb 17:00
Compare
Choose a tag to compare

Language

Compiler

This release disables incremental compilation, unless the user has explicitly opted in via the newly added RUSTC_FORCE_INCREMENTAL=1 environment variable. This is due to a known and relatively frequently occurring bug in incremental compilation, which causes builds to issue internal compiler errors. This particular bug is already fixed on nightly, but that fix has not yet rolled out to stable and is deemed too risky for a direct stable backport.

As always, we encourage users to test with nightly and report bugs so that we can track failures and fix issues earlier.

See 94124 for more details.

Libraries

Stabilized APIs

Const-stable:

Cargo

Compatibility Notes

Internal Changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Rust 1.58.1

20 Jan 21:54
Compare
Choose a tag to compare

Rust 1.58.0

13 Jan 17:15
Compare
Choose a tag to compare

Language

Compiler

* Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries

Stabilized APIs

These APIs are now usable in const contexts:

Cargo

Rustdoc

Compatibility Notes

Internal Changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Rust 1.57.0

02 Dec 14:56
Compare
Choose a tag to compare

Language

Compiler

* Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries

Stabilised APIs

These APIs are now usable in const contexts:

Cargo

Compatibility notes

Internal changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Rust 1.56.1

01 Nov 14:00
Compare
Choose a tag to compare
  • New lints to detect the presence of bidirectional-override Unicode codepoints in the compiled source code (CVE-2021-42574)

Rust 1.56.0

21 Oct 14:58
Compare
Choose a tag to compare

Language

Compiler

* Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries

Stabilised APIs

These APIs are now usable in const contexts:

Cargo

Compatibility notes

Internal changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Rust 1.55.0

09 Sep 14:19
Compare
Choose a tag to compare

Language

Compiler

* Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries

Stabilised APIs

The following previously stable functions are now const.

Cargo

Rustdoc

Compatibility Notes

Rust 1.54.0

29 Jul 14:17
Compare
Choose a tag to compare

Language

Compiler

* Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries

Stabilized APIs

Cargo

Compatibility Notes

Rust 1.53.0

17 Jun 14:43
Compare
Choose a tag to compare

Language

  • You can now use unicode for identifiers. This allows multilingual identifiers but still doesn't allow glyphs that are not considered characters such as or 🦀. More specifically you can now use any identifier that matches the UAX #31 "Unicode Identifier and Pattern Syntax" standard. This is the same standard as languages like Python, however Rust uses NFC normalization which may be different from other languages.
  • You can now specify "or patterns" inside pattern matches. Previously you could only use | (OR) on complete patterns. E.g.
    let x = Some(2u8);
    // Before
    matches!(x, Some(1) | Some(2));
    // Now
    matches!(x, Some(1 | 2));
  • Added the :pat_param macro_rules! matcher. This matcher has the same semantics as the :pat matcher. This is to allow :pat to change semantics to being a pattern fragment in a future edition.

Compiler

* Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries

Stabilised APIs

Cargo

Rustdoc

Compatibility Notes

Internal Only

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Rust 1.52.1

18 May 20:50
Compare
Choose a tag to compare

This release disables incremental compilation, unless the user has explicitly opted in via the newly added RUSTC_FORCE_INCREMENTAL=1 environment variable.

This is due to the widespread, and frequently occurring, breakage encountered by Rust users due to newly enabled incremental verification in 1.52.0. Notably, Rust users should upgrade to 1.52.0 or 1.52.1: the bugs that are detected by newly added incremental verification are still present in past stable versions, and are not yet fixed on any channel. These bugs can lead to miscompilation of Rust binaries.

These problems only affect incremental builds, so release builds with Cargo should not be affected unless the user has explicitly opted into incremental. Debug and check builds are affected.

See 84970 for more details.