Recommended update for rust, rust1.88
| Announcement ID: | SUSE-RU-2025:39484-1 |
|---|---|
| Release Date: | 2025-07-17T15:06:50Z |
| Rating: | moderate |
| References: | |
| Affected Products: |
|
An update that contains two features can now be installed.
Description:
This update for rust fixes the following issues:
- Update to version 1.88.0 - for details see the rust1.88 package
Version 1.88.0 (2025-06-26)
Language:
- Stabilize
#![feature(let_chains)]in the 2024 edition. This feature allows&&-chainingletstatements insideifandwhile, allowing intermixture with boolean expressions. The patterns inside theletsub-expressions can be irrefutable or refutable. - Stabilize
#![feature(naked_functions)]. Naked functions allow writing functions with no compiler-generated epilogue and prologue, allowing full control over the generated assembly for a particular function. - Stabilize
#![feature(cfg_boolean_literals)]. This allows using boolean literals ascfgpredicates, e.g.#[cfg(true)]and#[cfg(false)]. - Fully de-stabilize the
#[bench]attribute. Usage of#[bench]without#![feature(custom_test_frameworks)]already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error. - Add warn-by-default
dangerous_implicit_autorefslint against implicit autoref of raw pointer dereference. The lint will be bumped to deny-by-default in the next version of Rust. - Add
invalid_null_argumentslint to prevent invalid usage of null pointers. This lint is uplifted fromclippy::invalid_null_ptr_usage. - Change trait impl candidate preference for builtin impls and trivial where-clauses.
- Check types of generic const parameter defaults
Compiler:
- Stabilize
-Cdwarf-versionfor selecting the version of DWARF debug information to generate.
Platform Support:
- Demote
i686-pc-windows-gnuto Tier 2.
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
- Remove backticks from
#[should_panic]test failure message. - Guarantee that
[T; N]::from_fnis generated in order of increasing indices, for those passing it a stateful closure. - The libtest flag
--nocaptureis deprecated in favor of the more consistent--no-captureflag. - Guarantee that
{float}::NANis a quiet NaN.
Stabilized APIs:
Cell::updatehttps://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.updateimpl Default for *const Thttps://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*const+Timpl Default for *mut Thttps://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*mut+THashMap::extract_ifhttps://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.extract_ifHashSet::extract_ifhttps://doc.rust-lang.org/stable/std/collections/struct.HashSet.html#method.extract_ifproc_macro::Span::linehttps://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.lineproc_macro::Span::columnhttps://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.columnproc_macro::Span::starthttps://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.startproc_macro::Span::endhttps://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.endproc_macro::Span::filehttps://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.fileproc_macro::Span::local_filehttps://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.local_file
These previously stable APIs are now stable in const contexts:
NonNull<T>::replacehttps://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.replace<*mut T>::replacehttps://doc.rust-lang.org/stable/std/primitive.pointer.html#method.replacestd::ptr::swap_nonoverlappingCell::{replace, get, get_mut, from_mut, as_slice_of_cells}
Cargo:
- Stabilize automatic garbage collection.
- use
zlib-rsfor gzip compression in rust code
Rustdoc:
- Doctests can be ignored based on target names using
ignore-*attributes. - Stabilize the
--test-runtooland--test-runtool-argCLI options to specify a program (like qemu) and its arguments to run a doctest.
Compatibility Notes:
- Finish 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
ttfragment specifier can often fix these macros. - Fully de-stabilize the
#[bench]attribute. Usage of#[bench]without#![feature(custom_test_frameworks)]already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error. - Fix borrow checking some always-true patterns. The borrow checker was overly permissive in some cases, allowing programs that shouldn't have compiled.
- Update the minimum external LLVM to 19.
- Make it a hard error to use a vector type with a non-Rust ABI without enabling the required target feature.
Patch Instructions:
To install this SUSE update use the SUSE recommended
installation methods like YaST online_update or "zypper patch".
Alternatively you can run the command listed for your product:
-
openSUSE Leap 15.3
zypper in -t patch 39484=1 -
openSUSE Leap 15.4
zypper in -t patch 39484=1 -
openSUSE Leap 15.5
zypper in -t patch 39484=1 -
openSUSE Leap 15.6
zypper in -t patch openSUSE-SLE-15.6-2025-39484=1 -
Development Tools Module 15-SP6
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP6-2025-39484=1 -
Development Tools Module 15-SP7
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP7-2025-39484=1 -
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4
zypper in -t patch SUSE-SLE-Product-HPC-15-SP4-ESPOS-2025-39484=1 -
SUSE Linux Enterprise High Performance Computing LTSS 15 SP4
zypper in -t patch SUSE-SLE-Product-HPC-15-SP4-LTSS-2025-39484=1 -
SUSE Linux Enterprise Server 15 SP4 LTSS
zypper in -t patch SUSE-SLE-Product-SLES-15-SP4-LTSS-2025-39484=1 -
SUSE Linux Enterprise Server for SAP Applications 15 SP4
zypper in -t patch SUSE-SLE-Product-SLES_SAP-15-SP4-2025-39484=1
Package List:
-
openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586)
- rust-1.88.0-150300.21.60.1
- cargo-1.88.0-150300.21.60.1
- rust1.88-debuginfo-1.88.0-150300.7.3.2
- cargo1.88-1.88.0-150300.7.3.2
- cargo1.88-debuginfo-1.88.0-150300.7.3.2
-
openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586 nosrc)
- rust1.88-1.88.0-150300.7.3.2
-
openSUSE Leap 15.3 (noarch)
- rust1.88-src-1.88.0-150300.7.3.2
-
openSUSE Leap 15.3 (nosrc)
- rust1.88-test-1.88.0-150300.7.3.2
-
openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 i586)
- rust-1.88.0-150400.24.51.2
- cargo-1.88.0-150400.24.51.2
-
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
- rust-1.88.0-150500.27.43.1
- cargo-1.88.0-150500.27.43.1
-
openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64)
- rust-1.88.0-150500.27.43.1
- rust1.88-debuginfo-1.88.0-150300.7.3.2
- cargo1.88-1.88.0-150300.7.3.2
- cargo-1.88.0-150500.27.43.1
- cargo1.88-debuginfo-1.88.0-150300.7.3.2
-
openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.88-1.88.0-150300.7.3.2
-
openSUSE Leap 15.6 (noarch)
- rust1.88-src-1.88.0-150300.7.3.2
-
Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64)
- rust-1.88.0-150500.27.43.1
- rust1.88-debuginfo-1.88.0-150300.7.3.2
- cargo1.88-1.88.0-150300.7.3.2
- cargo-1.88.0-150500.27.43.1
- cargo1.88-debuginfo-1.88.0-150300.7.3.2
-
Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.88-1.88.0-150300.7.3.2
-
Development Tools Module 15-SP6 (noarch)
- rust1.88-src-1.88.0-150300.7.3.2
-
Development Tools Module 15-SP7 (aarch64 ppc64le s390x x86_64)
- rust-1.88.0-150500.27.43.1
- rust1.88-debuginfo-1.88.0-150300.7.3.2
- cargo1.88-1.88.0-150300.7.3.2
- cargo-1.88.0-150500.27.43.1
- cargo1.88-debuginfo-1.88.0-150300.7.3.2
-
Development Tools Module 15-SP7 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.88-1.88.0-150300.7.3.2
-
Development Tools Module 15-SP7 (noarch)
- rust1.88-src-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (aarch64 x86_64)
- rust-1.88.0-150400.24.51.2
- rust1.88-debuginfo-1.88.0-150300.7.3.2
- cargo1.88-1.88.0-150300.7.3.2
- cargo-1.88.0-150400.24.51.2
- cargo1.88-debuginfo-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (aarch64 nosrc x86_64)
- rust1.88-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (noarch)
- rust1.88-src-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (aarch64 x86_64)
- rust-1.88.0-150400.24.51.2
- rust1.88-debuginfo-1.88.0-150300.7.3.2
- cargo1.88-1.88.0-150300.7.3.2
- cargo-1.88.0-150400.24.51.2
- cargo1.88-debuginfo-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (aarch64 nosrc x86_64)
- rust1.88-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (noarch)
- rust1.88-src-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise Server 15 SP4 LTSS (aarch64 ppc64le s390x x86_64)
- rust-1.88.0-150400.24.51.2
- rust1.88-debuginfo-1.88.0-150300.7.3.2
- cargo1.88-1.88.0-150300.7.3.2
- cargo-1.88.0-150400.24.51.2
- cargo1.88-debuginfo-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise Server 15 SP4 LTSS (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.88-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise Server 15 SP4 LTSS (noarch)
- rust1.88-src-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise Server for SAP Applications 15 SP4 (ppc64le x86_64)
- rust-1.88.0-150400.24.51.2
- rust1.88-debuginfo-1.88.0-150300.7.3.2
- cargo1.88-1.88.0-150300.7.3.2
- cargo-1.88.0-150400.24.51.2
- cargo1.88-debuginfo-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise Server for SAP Applications 15 SP4 (nosrc ppc64le x86_64)
- rust1.88-1.88.0-150300.7.3.2
-
SUSE Linux Enterprise Server for SAP Applications 15 SP4 (noarch)
- rust1.88-src-1.88.0-150300.7.3.2