Skip to content

Releases: pietroalbini/rust

Rust 1.46.0

07 Sep 16:40
Compare
Choose a tag to compare

Language

Compiler

Libraries

Stabilized APIs

Cargo

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

Compatibility Notes

Rust 1.45.2

Rust 1.45.1

Rust 1.45.0

07 Sep 16:40
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

Misc

Compatibility Notes

Internals Only

Rust 1.44.1

Rust 1.44.0

07 Sep 16:40
Compare
Choose a tag to compare

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.

Rust 1.43.1

Rust 1.43.0

07 Sep 16:53
Compare
Choose a tag to compare

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.

Rust 1.42.0

07 Sep 16:49
Compare
Choose a tag to compare

Language

  • You can now use the slice pattern syntax with subslices. e.g.

    fn foo(words: &[&str]) {
        match words {
            ["Hello", "World", "!", ..] => println!("Hello World!"),
            ["Foo", "Bar", ..] => println!("Baz"),
            rest => println!("{:?}", rest),
        }
    }
  • You can now use #[repr(transparent)] on univariant enums. Meaning that you can create an enum that has the exact layout and ABI of the type it contains.

  • There are some syntax-only changes:

    • default is syntactically allowed before items in trait definitions.
    • Items in impls (i.e. consts, types, and fns) may syntactically leave out their bodies in favor of ;.
    • Bounds on associated types in impls are now syntactically allowed (e.g. type Foo: Ord;).
    • ... (the C-variadic type) may occur syntactically directly as the type of any function parameter.

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

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.41.1