Rust Toolset rebased to version 1.84.0
Rust Toolset has been updated to version 1.84.0 with the release of the link:
https://access.redhat.com/errata/xxxx-2025:xxxx[xxxx-2025:xxxx] advisory. Notable enhancements since the previously available version 1.79.0 include:
* The new `LazyCell` and `LazyLock` types delay the initialization until the first use. These extend the earlier `OnceCell` and `OnceLock` types with the initialization function included in each instance.
* The new sort implementations in the standard library improve the runtime performance and compile times. They also try to detect cases where a comparator is not producing a total order, making that panic instead of returning unsorted data.
* Precise capturing for opaque return types have been added. The new `use<..>` syntax specifies the generic parameters and lifetimes used in an `impl Trait` return type.
* Many new features for `const` code have been added, for example:
** Floating point support
** `const` immediates for inline assembly
** References to statics
** Mutable reference and pointers
* Many new features for `unsafe` code have been added, for example:
** Strict provenance APIs
** `&raw` pointer syntax
** Safely addressing statics
** Declaring safe items in unsafe `extern` blocks
* The Cargo dependency resolver is now version aware. If a dependency crate specifies its minimum supported Rust version, Cargo uses this information when it resolves the dependency graph instead of using the latest `semver`-compatible crate version.
Compatibility notes:
* The WebAssembly System Interface (WASI) target is changed from `rust-std-static-wasm32-wasi` to `rust-std-static-wasm32-wasip1`. You can select the WASI target also by using the `--target wasm32-wasip1` parameter on the command line. For more information, see the link:
https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html[Changes to Rust's WASI targets] upstream blog post.
* The split panic hook and panic handler arguments `core::panic::PanicInfo` and `std::panic::PanicInfo` are now different types.
* An abort on uncaught panics now requires to use the `extern "C-unwind"` instruction instead of `extern "C"` to allow unwinding across ABI boundaries.
Rust Toolset is a rolling Application Stream, and only the latest version is supported. For more information, see the link:
https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle[Red Hat Enterprise Linux Application Streams Life Cycle document].