The Rust team is happy to announce a new version of Rust, 1.90.0. Rust is a programming language empowering everyone to build reliable and efficient software.
If you have a previous version of Rust installed via rustup
, you can get 1.90.0 with:
$ rustup update stable
If you don't have it already, you can get rustup
from the appropriate page on our website, and check out the detailed release notes for 1.90.0.
If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (rustup default beta
) or the nightly channel (rustup default nightly
). Please report any bugs you might come across!
What's in 1.90.0 stable
x86_64-unknown-linux-gnu
LLD is now the default linker on The x86_64-unknown-linux-gnu
target will now use the LLD linker for linking Rust crates by default. This should result in improved linking performance vs the default Linux linker (BFD), particularly for large binaries, binaries with a lot of debug information, and for incremental rebuilds.
In the vast majority of cases, LLD should be backwards compatible with BFD, and you should not see any difference other than reduced compilation time. However, if you do run into any new linker issues, you can always opt out using the -C linker-features=-lld
compiler flag. Either by adding it to the usual RUSTFLAGS
environment variable, or to a project's .cargo/config.toml
configuration file,
like so:
[]
= ["-Clinker-features=-lld"]
If you encounter any issues with the LLD linker, please let us know. You can read more about the switch to LLD, some benchmark numbers and the opt out mechanism here.
Cargo adds native support for workspace publishing
cargo publish --workspace
is now supported, automatically publishing all of
the crates in a workspace in the right order (following any dependencies
between them).
This has long been possible with external tooling or manual ordering of individual publishes, but this brings the functionality into Cargo itself.
Native integration allows Cargo's publish verification to run a build across the full set of to-be-published crates as if they were published, including during dry-runs. Note that publishes are still not atomic -- network errors or server-side failures can still lead to a partially published workspace.
x86_64-apple-darwin
to Tier 2 with host tools
Demoting GitHub will soon discontinue providing free macOS x86_64 runners for public repositories. Apple has also announced their plans for discontinuing support for the x86_64 architecture.
In accordance with these changes, as of Rust 1.90, we have demoted the x86_64-apple-darwin
target from Tier 1 with host tools to Tier 2 with host tools. This means that the target, including tools like rustc
and cargo
, will be guaranteed to build but is not guaranteed to pass our automated test suite.
For users, this change will not immediately cause impact. Builds of both the standard library and the compiler will still be distributed by the Rust Project for use via rustup
or alternative installation methods while the target remains at Tier 2. Over time, it's likely that reduced test coverage for this target will cause things to break or fall out of compatibility with no further announcements.
Stabilized APIs
u{n}::checked_sub_signed
u{n}::overflowing_sub_signed
u{n}::saturating_sub_signed
u{n}::wrapping_sub_signed
impl Copy for IntErrorKind
impl Hash for IntErrorKind
impl PartialEq<&CStr> for CStr
impl PartialEq<CString> for CStr
impl PartialEq<Cow<CStr>> for CStr
impl PartialEq<&CStr> for CString
impl PartialEq<CStr> for CString
impl PartialEq<Cow<CStr>> for CString
impl PartialEq<&CStr> for Cow<CStr>
impl PartialEq<CStr> for Cow<CStr>
impl PartialEq<CString> for Cow<CStr>
These previously stable APIs are now stable in const contexts:
<[T]>::reverse
f32::floor
f32::ceil
f32::trunc
f32::fract
f32::round
f32::round_ties_even
f64::floor
f64::ceil
f64::trunc
f64::fract
f64::round
f64::round_ties_even
Platform Support
x86_64-apple-darwin
is now a tier 2 target
Refer to Rust’s platform support page for more information on Rust’s tiered platform support.
Other changes
Check out everything that changed in Rust, Cargo, and Clippy.
Contributors to 1.90.0
Many people came together to create Rust 1.90.0. We couldn't have done it without all of you. Thanks!