Skip to content
Permalink
master
Switch branches/tags
Go to file
124 contributors

Users who have contributed to this file

@XAMPPRocky @brson @pietroalbini @Mark-Simulacrum @steveklabnik @cuviper @tmandry @Centril @JohnTitor @ehuss @jonas-schievink @bors
11510 lines (10326 sloc) 569 KB

Version 1.62.0 (2022-06-30)

Language

Compiler

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

Libraries

Stabilized APIs

Clippy

Cargo

  • Added the cargo add command for adding dependencies to Cargo.toml from the command-line. docs
  • Package ID specs now support name@version syntax in addition to the previous name:version to align with the behavior in cargo add and other tools. cargo install and cargo yank also now support this syntax so the version does not need to passed as a separate flag.
  • The git and registry directories in Cargo's home directory (usually ~/.cargo) are now marked as cache directories so that they are not included in backups or content indexing (on Windows).
  • Added automatic @ argfile support, which will use "response files" if the command-line to rustc exceeds the operating system's limit.

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.

Version 1.61.0 (2022-05-19)

Language

Compiler

Libraries

Stabilized APIs

These APIs are now usable in const contexts:

Cargo

No feature changes, but see compatibility notes.

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.

Version 1.60.0 (2022-04-07)

Language

Compiler

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

Libraries

Stabilized APIs

Cargo

Misc

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.

Version 1.59.0 (2022-02-24)

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.

Version 1.58.1 (2022-01-19)

Version 1.58.0 (2022-01-13)

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.

Version 1.57.0 (2021-12-02)

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.

Version 1.56.1 (2021-11-01)

  • New lints to detect the presence of bidirectional-override Unicode codepoints in the compiled source code (CVE-2021-42574)

Version 1.56.0 (2021-10-21)

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.

Version 1.55.0 (2021-09-09)

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

Version 1.54.0 (2021-07-29)

Language

Compiler

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

Libraries

Stabilized APIs

Cargo

Compatibility Notes

Version 1.53.0 (2021-06-17)

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.

Version 1.52.1 (2021-05-10)

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.

Version 1.52.0 (2021-05-06)

Language

Compiler

Added tier 3* support for the following targets.

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

Libraries

Stabilised APIs

The following previously stable APIs are now const.

Rustdoc

Misc

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.

Compatibility Notes

Version 1.51.0 (2021-03-25)

Language

Compiler

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

Libraries

Stabilized APIs

Cargo

Rustdoc

Various improvements to intra-doc links:

Misc

Compatibility Notes

Internal Only

Version 1.50.0 (2021-02-11)

Language

Compiler

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

Libraries

Stabilized APIs

The following previously stable methods are now const.

Cargo

Misc

Compatibility Notes

Version 1.49.0 (2020-12-31)

Language

Compiler

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

Libraries

Stabilized APIs

The following previously stable methods are now const.

Cargo

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.

Version 1.48.0 (2020-11-19)

Language

Compiler

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

Libraries

Stabilized APIs

The following previously stable methods are now const fn's:

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.

Version 1.47.0 (2020-10-08)

Language

Compiler

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

Libraries

Stabilized APIs

The following previously stable APIs have now been made const.

Cargo

Misc

Compatibility Notes

Internal Only

Version 1.46.0 (2020-08-27)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Added a number of new environment variables that are now available when compiling your crate.

Compatibility Notes

Version 1.45.2 (2020-08-03)

Version 1.45.1 (2020-07-30)

Version 1.45.0 (2020-07-16)

Language

Compiler

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

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Internals Only

Version 1.44.1 (2020-06-18)

Version 1.44.0 (2020-06-04)

Language

Syntax-only changes

#[cfg(FALSE)]
mod foo {
    mod bar {
        mod baz; // `foo/bar/baz.rs` doesn't exist, but no error!
    }
}

These are still rejected semantically, so you will likely receive an error but these changes can be seen and parsed by macros and conditional compilation.

Compiler

Libraries

Stabilized APIs

Cargo

  • Added the cargo tree command which will print a tree graph of your dependencies. E.g.
      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
    ...
    
    You can also display dependencies on multiple versions of the same crate with cargo tree -d (short for cargo tree --duplicates).

Misc

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.

Version 1.43.1 (2020-05-07)

Version 1.43.0 (2020-04-23)

Language

Syntax only changes

These are still rejected semantically, so you will likely receive an error but these changes can be seen and parsed by macros and conditional compilation.

Compiler

Libraries

Stabilized APIs

Cargo

Misc

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.

Version 1.42.0 (2020-03-12)

Language

Compiler

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

Libraries

Stabilized APIs

Cargo

Compatibility Notes

Version 1.41.1 (2020-02-27)

Version 1.41.0 (2020-01-30)

Language

Compiler

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

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.40.0 (2019-12-19)

Language

Compiler

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

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.39.0 (2019-11-07)

Language

Compiler

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

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.38.0 (2019-09-26)

Language

Compiler

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

Libraries

Stabilized APIs

Cargo

Rustdoc

Misc

Compatibility Notes

Version 1.37.0 (2019-08-15)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.36.0 (2019-07-04)

Language

Libraries

Stabilized APIs

Cargo

You can find further change's in Cargo's 1.36.0 release notes.

Clippy

There have been numerous additions and fixes to clippy, see Clippy's 1.36.0 release notes for more details.

Misc

Compatibility Notes

  • With the stabilisation of mem::MaybeUninit, mem::uninitialized use is no longer recommended, and will be deprecated in 1.39.0.

Version 1.35.0 (2019-05-23)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Version 1.34.2 (2019-05-14)

Version 1.34.1 (2019-04-25)

Version 1.34.0 (2019-04-11)

Language

Compiler

Libraries

Stabilized APIs

std & core

std

Cargo

Misc

Compatibility Notes

Version 1.33.0 (2019-02-28)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Compatibility Notes

Version 1.32.0 (2019-01-17)

Language

2018 edition

All editions

Compiler

Libraries

The following APIs are now const functions and can be used in a const context.

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.31.1 (2018-12-20)

Version 1.31.0 (2018-12-06)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Version 1.30.1 (2018-11-08)

Version 1.30.0 (2018-10-25)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Version 1.29.2 (2018-10-11)

Version 1.29.1 (2018-09-25)

Security Notes

  • The standard library's str::repeat function contained an out of bounds write caused by an integer overflow. This has been fixed by deterministically panicking when an overflow happens.

    Thank you to Scott McMurray for responsibly disclosing this vulnerability to us.

Version 1.29.0 (2018-09-13)

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.28.0 (2018-08-02)

Language

Compiler

Libraries

Stabilized APIs