shield Recommended update for rust, rust1.85
SUSE-SLE-Module-Development-Tools-15-SP6-2025-773


This update for rust, rust1.85 fixes the following issues: Rust Version 1.85.0 (2025-02-20) ========================== Language -------- - The 2024 Edition is now stable. See the edition guide https://doc.rust-lang.org/nightly/edition-guide/rust-2024/index.html for more details. - Stabilize async closures See RFC 3668 https://rust-lang.github.io/rfcs/3668-async-closures.html for more details. - Stabilize `#[diagnostic::do_not_recommend]` - Add `unpredictable_function_pointer_comparisons` lint to warn against function pointer comparisons - Lint on combining `#[no_mangle]` and `#[export_name]` attributes. Compiler -------- - The unstable flag `-Zpolymorphize` has been removed, see https://github.com/rust-lang/compiler-team/issues/810 for some background. Platform Support ---------------- - Promote `powerpc64le-unknown-linux-musl` to tier 2 with host tools Refer to Rust's platform support page for more information on Rust's tiered platform support. Libraries --------- - Panics in the standard library now have a leading `library/` in their path - `std::env::home_dir()` on Windows now ignores the non-standard `$HOME` environment variable It will be un-deprecated in a subsequent release. - Add `AsyncFn*` to the prelude in all editions. Stabilized APIs --------------- - `BuildHasherDefault::new` https://doc.rust-lang.org/stable/std/hash/struct.BuildHasherDefault.html#method.new - `ptr::fn_addr_eq` https://doc.rust-lang.org/std/ptr/fn.fn_addr_eq.html - `io::ErrorKind::QuotaExceeded` https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.QuotaExceeded - `io::ErrorKind::CrossesDevices` https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.CrossesDevices - `{float}::midpoint` https://doc.rust-lang.org/core/primitive.f32.html#method.midpoint - Unsigned `{integer}::midpoint` https://doc.rust-lang.org/std/primitive.u64.html#method.midpoint - `NonZeroU*::midpoint` https://doc.rust-lang.org/std/num/type.NonZeroU32.html#method.midpoint - impl `std::iter::Extend` for tuples with arity 1 through 12 https://doc.rust-lang.org/stable/std/iter/trait.Extend.html#impl-Extend%3C(A,)%3E-for-(EA,) - `FromIterator<(A, ...)>` for tuples with arity 1 through 12 https://doc.rust-lang.org/stable/std/iter/trait.FromIterator.html#impl-FromIterator%3C(EA,)%3E-for-(A,) - `std::task::Waker::noop` https://doc.rust-lang.org/stable/std/task/struct.Waker.html#method.noop These APIs are now stable in const contexts: - `mem::size_of_val` https://doc.rust-lang.org/stable/std/mem/fn.size_of_val.html - `mem::align_of_val` https://doc.rust-lang.org/stable/std/mem/fn.align_of_val.html - `Layout::for_value` https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.for_value - `Layout::align_to` https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.align_to - `Layout::pad_to_align` https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.pad_to_align - `Layout::extend` https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.extend - `Layout::array` https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.array - `std::mem::swap` https://doc.rust-lang.org/stable/std/mem/fn.swap.html - `std::ptr::swap` https://doc.rust-lang.org/stable/std/ptr/fn.swap.html - `NonNull::new` https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.new - `HashMap::with_hasher` https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.with_hasher - `HashSet::with_hasher` https://doc.rust-lang.org/stable/std/collections/struct.HashSet.html#method.with_hasher - `BuildHasherDefault::new` https://doc.rust-lang.org/stable/std/hash/struct.BuildHasherDefault.html#method.new - `<float>::recip` https://doc.rust-lang.org/stable/std/primitive.f32.html#method.recip - `<float>::to_degrees` https://doc.rust-lang.org/stable/std/primitive.f32.html#method.to_degrees - `<float>::to_radians` https://doc.rust-lang.org/stable/std/primitive.f32.html#method.to_radians - `<float>::max` https://doc.rust-lang.org/stable/std/primitive.f32.html#method.max - `<float>::min` https://doc.rust-lang.org/stable/std/primitive.f32.html#method.min - `<float>::clamp` https://doc.rust-lang.org/stable/std/primitive.f32.html#method.clamp - `<float>::abs` https://doc.rust-lang.org/stable/std/primitive.f32.html#method.abs - `<float>::signum` https://doc.rust-lang.org/stable/std/primitive.f32.html#method.signum - `<float>::copysign` https://doc.rust-lang.org/stable/std/primitive.f32.html#method.copysign - `MaybeUninit::write` https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.write Cargo ----- - Add future-incompatibility warning against keywords in cfgs and add raw-idents - Stabilize higher precedence trailing flags - Pass `CARGO_CFG_FEATURE` to build scripts Rustdoc ----- - Doc comment on impl blocks shows the first line, even when the impl block is collapsed Compatibility Notes ------------------- - `rustc` no longer treats the `test` cfg as a well known check-cfg, instead it is up to the build systems and users of `--check-cfg`[^check-cfg] to set it as a well known cfg using `--check-cfg=cfg(test)`. his is done to enable build systems like Cargo to set it conditionally, as not all source files are suitable for unit tests. Cargo (for now) unconditionally sets the `test` cfg as a well known cfg ^check-cfg]: https://doc.rust-lang.org/nightly/rustc/check-cfg.html - Disable potentially incorrect type inference if there are trivial and non-trivial where-clauses - `std::env::home_dir()` has been deprecated for years, because it can give surprising results in some Windows configurations if the `HOME` environment variable is set (which is not the normal configuration on Windows). We had previously avoided changing its behavior, out of concern for compatibility with code depending on this non-standard configuration. Given how long this function has been deprecated, we're now fixing its behavior as a bugfix. A subsequent release will remove the deprecation for this function. - Make `core::ffi::c_char` signedness more closely match that of the platform-default `char` This changed `c_char` from an `i8` to `u8` or vice versa on many Tier 2 and 3 targets (mostly Arm and RISC-V embedded targets). The new definition may result in compilation failures but fixes compatibility issues with C. The `libc` crate matches this change as of its 0.2.169 release. - When compiling a nested `macro_rules` macro from an external crate, the content of the inner `macro_rules` is now built with the edition of the external crate, not the local crate. - Increase `sparcv9-sun-solaris` and `x86_64-pc-solaris` Solaris baseline to 11.4. - Show `abi_unsupported_vector_types` lint in future breakage reports - Error if multiple super-trait instantiations of `dyn Trait` need associated types to be specified but only one is provided - Change `powerpc64-ibm-aix` default `codemodel` to large Internal Changes ---------------- These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools. - Build `x86_64-unknown-linux-gnu` with LTO for C/C++ code (e.g., `jemalloc`)

  • Release Date
    Mar 4 2025
  • References
  • Type
    recommended
  • Severity
    moderate

cloud_download Downloads

Development Tools Module 15.6 ppc64le
  • Packages
    cargo
    The Rust package manager
    1.85.0-150500.27.33.1 lock rpm
    cargo1.85
    The Rust package manager
    1.85.0-150300.7.3.1 lock rpm
    rust
    A systems programming language
    1.85.0-150500.27.33.1 lock rpm lock src
    rust1.85
    A systems programming language
    1.85.0-150300.7.3.1 lock rpm lock nosrc
    rust1.85-src
    The Rust Standard Library Source
    1.85.0-150300.7.3.1 lock rpm
Development Tools Module 15.6 aarch64
  • Packages
    cargo
    The Rust package manager
    1.85.0-150500.27.33.1 lock rpm
    cargo1.85
    The Rust package manager
    1.85.0-150300.7.3.1 lock rpm
    rust
    A systems programming language
    1.85.0-150500.27.33.1 lock rpm lock src
    rust1.85
    A systems programming language
    1.85.0-150300.7.3.1 lock rpm lock nosrc
    rust1.85-src
    The Rust Standard Library Source
    1.85.0-150300.7.3.1 lock rpm
Development Tools Module 15.6 s390x
  • Packages
    cargo
    The Rust package manager
    1.85.0-150500.27.33.1 lock rpm
    cargo1.85
    The Rust package manager
    1.85.0-150300.7.3.1 lock rpm
    rust
    A systems programming language
    1.85.0-150500.27.33.1 lock rpm lock src
    rust1.85
    A systems programming language
    1.85.0-150300.7.3.1 lock rpm lock nosrc
    rust1.85-src
    The Rust Standard Library Source
    1.85.0-150300.7.3.1 lock rpm
Development Tools Module 15.6 x86_64
  • Packages
    cargo
    The Rust package manager
    1.85.0-150500.27.33.1 lock rpm
    cargo1.85
    The Rust package manager
    1.85.0-150300.7.3.1 lock rpm
    rust
    A systems programming language
    1.85.0-150500.27.33.1 lock rpm lock src
    rust1.85
    A systems programming language
    1.85.0-150300.7.3.1 lock rpm lock nosrc
    rust1.85-src
    The Rust Standard Library Source
    1.85.0-150300.7.3.1 lock rpm