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


This update for rust, rust1.87 fixes the following issues: Version 1.87.0 (2025-05-15) ========================== Language -------- - Stabilize asm_goto feature - Allow parsing open beginning ranges (..EXPR) after unary operators !, -, and *. - Don't require method impls for methods with Self: Sized bounds in impls for unsized types - Stabilize feature(precise_capturing_in_traits) allowing use<...> bounds on return position impl Trait in traits Compiler -------- - x86: make SSE2 required for i686 targets and use it to pass SIMD types Libraries --------- - Stabilize the anonymous pipe API - Add support for unbounded left/right shift operations - Print pointer metadata in Debug impl of raw pointers - Vec::with_capacity guarantees it allocates with the amount requested, even if Vec::capacity returns a different number. - Most std::arch intrinsics which don't take pointer arguments can now be called from safe code if the caller has the appropriate target features already enabled - Undeprecate env::home_dir - Denote ControlFlow as #[must_use] - Macros such as assert_eq! and vec! now support const {...} expressions Stabilized APIs - Vec::extract_if https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.extract_if - vec::ExtractIf https://doc.rust-lang.org/stable/std/vec/struct.ExtractIf.html) - LinkedList::extract_if https://doc.rust-lang.org/stable/std/collections/struct.LinkedList.html#method.extract_if - linked_list::ExtractIf https://doc.rust-lang.org/stable/std/collections/linked_list/struct.ExtractIf.html - <[T]>::split_off https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off - <[T]>::split_off_mut https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_mut - <[T]>::split_off_first https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first - <[T]>::split_off_first_mut https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first_mut - <[T]>::split_off_last https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last - <[T]>::split_off_last_mut https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last_mut - String::extend_from_within https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.extend_from_within - os_str::Display https://doc.rust-lang.org/stable/std/ffi/os_str/struct.Display.html - OsString::display https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.display - OsStr::display https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.display - io::pipe https://doc.rust-lang.org/stable/std/io/fn.pipe.html - io::PipeReader https://doc.rust-lang.org/stable/std/io/struct.PipeReader.html - io::PipeWriter https://doc.rust-lang.org/stable/std/io/struct.PipeWriter.html - impl From<PipeReader> for OwnedHandle https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle - impl From<PipeWriter> for OwnedHandle https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle - impl From<PipeReader> for Stdio https://doc.rust-lang.org/stable/std/process/struct.Stdio.html - impl From<PipeWriter> for Stdio https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio - impl From<PipeReader> for OwnedFd https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd - impl From<PipeWriter> for OwnedFd https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd - Box<MaybeUninit<T>>::write https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.write - impl TryFrom<Vec<u8>> for String https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String - <*const T>::offset_from_unsigned https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned - <*const T>::byte_offset_from_unsigned https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned - <*mut T>::offset_from_unsigned https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned-1 - <*mut T>::byte_offset_from_unsigned https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned-1 - NonNull::offset_from_unsigned https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.offset_from_unsigned - NonNull::byte_offset_from_unsigned https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned - <uN>::cast_signed https://doc.rust-lang.org/stable/std/primitive.usize.html#method.cast_signed - NonZero::<uN>::cast_signed https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_signed-5). - <iN>::cast_unsigned https://doc.rust-lang.org/stable/std/primitive.isize.html#method.cast_unsigned). - NonZero::<iN>::cast_unsigned https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_unsigned-5). - <uN>::is_multiple_of https://doc.rust-lang.org/stable/std/primitive.usize.html#method.is_multiple_of - <uN>::unbounded_shl https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shl - <uN>::unbounded_shr https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shr - <iN>::unbounded_shl https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shl - <iN>::unbounded_shr https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shr - <iN>::midpoint https://doc.rust-lang.org/stable/std/primitive.isize.html#method.midpoint - <str>::from_utf8 https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8 - <str>::from_utf8_mut https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_mut - <str>::from_utf8_unchecked https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked - <str>::from_utf8_unchecked_mut https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked_mut These previously stable APIs are now stable in const contexts: - core::str::from_utf8_mut https://doc.rust-lang.org/stable/std/str/fn.from_utf8_mut.html - <[T]>::copy_from_slice https://doc.rust-lang.org/stable/std/primitive.slice.html#method.copy_from_slice - SocketAddr::set_ip https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_ip - SocketAddr::set_port https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_port - SocketAddrV4::set_ip https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_ip - SocketAddrV4::set_port https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_port - SocketAddrV6::set_ip https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_ip - SocketAddrV6::set_port https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_port - SocketAddrV6::set_flowinfo https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_flowinfo - SocketAddrV6::set_scope_id https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_scope_id - char::is_digit https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_digit - char::is_whitespace https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_whitespace) - <[[T; N]]>::as_flattened https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened - <[[T; N]]>::as_flattened_mut https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened_mut - String::into_bytes https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_bytes - String::as_str https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_str - String::capacity https://doc.rust-lang.org/stable/std/string/struct.String.html#method.capacity - String::as_bytes https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_bytes - String::len https://doc.rust-lang.org/stable/std/string/struct.String.html#method.len - String::is_empty https://doc.rust-lang.org/stable/std/string/struct.String.html#method.is_empty - String::as_mut_str https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_str - String::as_mut_vec https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_vec - Vec::as_ptr https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_ptr - Vec::as_slice https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_slice - Vec::capacity https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.capacity - Vec::len https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.len - Vec::is_empty https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.is_empty - Vec::as_mut_slice https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_slice - Vec::as_mut_ptr https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_ptr Cargo ----- - Add terminal integration via ANSI OSC 9;4 sequences - chore: bump openssl to v3 - feat(package): add --exclude-lockfile flag Compatibility Notes - Rust now raises an error for macro invocations inside the #![crate_name] attribute - Unstable fields are now always considered to be inhabited - Macro arguments of unary operators followed by open beginning ranges may now be matched differently - Make Debug impl of raw pointers print metadata if present - Warn against function pointers using unsupported ABI strings in dependencies - Associated types on dyn types are no longer deduplicated - Forbid attributes on .. inside of struct patterns (let Struct { #[attribute] .. }) = - Make ptr_cast_add_auto_to_object lint into hard error - Many std::arch intrinsics are now safe to call in some contexts, there may now be new unused_unsafe warnings in existing codebases. - Limit width and precision formatting options to 16 bits on all targets - Turn order dependent trait objects future incompat warning into a hard error - Denote ControlFlow as #[must_use - Windows: The standard library no longer links advapi32, except on win7. Code such as C libraries that were relying on this assumption may need to explicitly link advapi32. - Proc macros can no longer observe expanded cfg(true) attributes. - Start changing the internal representation of pasted tokens. Certain invalid declarative macros that were previously accepted in obscure circumstances are now correctly rejected by the compiler. Use of a tt fragment specifier can often fix these macros. - Don't allow flattened format_args in const.

  • Release Date
    Jun 1 2025
  • References
  • Type
    recommended
  • Severity
    moderate

cloud_download Downloads

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