Chapter 5. Changes in Rust 1.88.0 Toolset
RHEL provides Rust Toolset in version 1.88.0. Notable enhancements since the previously available version 1.84.1 include:
-
Rust 2024 Edition: The Rust 2024 Edition is now stable. It introduces changes such as refined capture rules for
impl Trait, and saferexternblocks which now require theunsafekeyword. -
Async Closures: The
asyncclosures are now stable. -
Let Chains: This feature allows using
&&to chain multipleletstatements withinifandwhileconditions, enabling more concise complex conditional checks. This feature is available only in the Rust 2024 Edition. -
Naked Functions: Developers can now define "naked functions" using the
#[unsafe(naked)]attribute. These functions do not have a compiler-generated prologue or epilogue, providing full control over the assembly code. -
High-performance computing: When you enable target features, you can call multiple
std::archintrinsics directly in safe Rust, which gives you direct access to specific CPU features. - Trait Upcasting: It is now possible to upcast trait objects to their supertraits, improving flexibility when working with trait objects.
Standard Library Improvements:
- Anonymous Pipes: Access to anonymous pipes is now available in the standard library.
Mutable Multiple Element Indexing: `HashMap`s and slices now support safely retrieving mutable references to multiple elements simultaneously.
- Compatibility notes
-
The
#[bench]attribute has been fully de-stabilized and its usage will result in a hard error. -
The
wasm_c_abifuture compatibility warning is now a hard error. -
The
missing_abilint is now warn-by-default, and explicitly specify the ABI inexternblocks.
Rust Toolset is a rolling Application Stream, and Red Hat only supports the latest version. For more information, see the Red Hat Enterprise Linux Application Streams Life Cycle document.