The Rust community has officially announced the release of version 1.90.0, marking another significant milestone in its journey to empower developers with reliable and efficient software development.
To update to the latest stable version, users who have previously installed Rust via rustup can simply run the command rustup update stable in their terminal. Alternatively, they can download rustup from the official website and consult the detailed release notes for 1.90.0 to stay informed about the new features and improvements.
For those eager to contribute to the development process by testing future releases, it's recommended that they consider updating locally using the beta or nightly channels by running rustup default beta or rustup default nightly, respectively. Users who encounter any bugs are encouraged to report them to help the community refine and improve Rust further.
The 1.90.0 stable release includes several key enhancements, particularly on the x86_64-unknown-linux-gnu target. As of this version, LLD has become the default linker for large binaries, those with extensive debug information, and incremental rebuilds. This change is expected to significantly boost linking performance compared to the traditional BFD linker used by Linux.
However, in cases where users encounter issues related to the new linker, they can opt out by adding the -C linker-features=-lld compiler flag to their project's configuration file or setting environment variables like RUSTFLAGS. The community has provided extensive documentation and benchmark numbers for a comprehensive understanding of the switch to LLD.
Another significant addition in Rust 1.90.0 is native support for workspace publishing within Cargo. Users can now utilize cargo publish --workspace to automatically publish all crates within their workspace, ensuring that dependencies are correctly ordered and verified during dry runs.
While publishes are still not atomic, this enhancement streamlines the process of releasing multiple crates together and facilitates a more seamless development experience. However, users should be aware of potential network errors or server-side failures that can lead to partially published workspaces.
In response to Apple's decision to discontinue support for x86_64 architecture and GitHub's discontinuation of free macOS x86_64 runners, the Rust team has demoted the x86_64-apple-darwin target from Tier 1 with host tools to Tier 2 with host tools. This change may result in reduced test coverage for this target over time, potentially causing compatibility issues or breaking the existing code.
Rust 1.90.0 also marks the stabilization of several APIs that were previously marked as stable but not const-compatible. These APIs include various implementations of traits like Copy, Hash, and PartialEq for different types, providing a more comprehensive set of tools for developers to work with Rust's extensive standard library.
Furthermore, the release stabilizes various mathematical functions for floating-point numbers, such as floor, ceil, trunc, fract, round, and round_ties_even for both f32 and f64. These additions bring significant benefits to numerical computations in Rust programs.
Lastly, it is essential to note that x86_64-apple-darwin has been demoted to a Tier 2 target, as indicated on the platform support page of the official Rust website. This change illustrates the value of staying informed about the evolving landscape of platform support and its implications for development in Rust.
Announcing Rust 1.90.0
Empowering everyone to build reliable and efficient software.
