Recommended update for rust, rust1.79
| Announcement ID: | SUSE-RU-2024:2188-1 |
|---|---|
| Rating: | moderate |
| References: | |
| Affected Products: |
|
An update that contains one feature can now be installed.
Description:
This update for rust, rust1.79 fixes the following issues:
Changes in rust1.79:
Version 1.79.0 (2024-06-13)
Language
- Stabilize inline
const {}expressions. - Prevent opaque types being instantiated twice with different regions within the same function.
- Stabilize WebAssembly target features that are in phase 4 and 5.
- Add the
redundant_lifetimeslint to detect lifetimes which are semantically redundant. - Stabilize the
unnameable_typeslint for public types that can't be named. - Enable debuginfo in macros, and stabilize
-C collapse-macro-debuginfoand#[collapse_debuginfo]. - Propagate temporary lifetime extension into
ifandmatchexpressions. - Restrict promotion of
const fncalls. - Warn against refining impls of crate-private traits with
refining_impl_traitlint. - Stabilize associated type bounds (RFC 2289).
- Stabilize importing
mainfrom other modules or crates. - Check return types of function types for well-formedness
- Rework
impl Traitlifetime inference - Change inductive trait solver cycles to be ambiguous
Compiler
- Define
-C stripto only affect binaries, not artifacts like.pdb. - Stabilize
-Crelro-levelfor controlling runtime link hardening. - Stabilize checking of
cfgnames and values at compile-time with--check-cfg. Note that this only stabilizes the compiler part, the Cargo part is still unstable in this release. - Add
aarch64-apple-visionosandaarch64-apple-visionos-simtier 3 targets. - Add
riscv32ima-unknown-none-elftier 3 target. - Promote several Windows targets to tier 2:
aarch64-pc-windows-gnullvm,i686-pc-windows-gnullvm, andx86_64-pc-windows-gnullvm.
Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.
Libraries
- Implement
FromIteratorfor(impl Default + Extend, impl Default + Extend). - Implement
{Div,Rem}Assign<NonZero<X>>onX. - Document overrides of
clone_from()in core/std. - Link MSVC default lib in core.
- Caution against using
transmutebetween pointers and integers. - Enable frame pointers for the standard library.
Stabilized APIs
{integer}::unchecked_addhttps://doc.rust-lang.org/stable/core/primitive.i32.html#method.unchecked_add){integer}::unchecked_mulhttps://doc.rust-lang.org/stable/core/primitive.i32.html#method.unchecked_mul){integer}::unchecked_subhttps://doc.rust-lang.org/stable/core/primitive.i32.html#method.unchecked_sub)<[T]>::split_at_uncheckedhttps://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_unchecked)<[T]>::split_at_mut_uncheckedhttps://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_unchecked)<[u8]>::utf8_chunkshttps://doc.rust-lang.org/stable/core/primitive.slice.html#method.utf8_chunks)str::Utf8Chunkshttps://doc.rust-lang.org/stable/core/str/struct.Utf8Chunks.html)str::Utf8Chunkhttps://doc.rust-lang.org/stable/core/str/struct.Utf8Chunk.html)<*const T>::is_alignedhttps://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_aligned)<*mut T>::is_alignedhttps://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_aligned-1)NonNull::is_alignedhttps://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.is_aligned)<*const [T]>::lenhttps://doc.rust-lang.org/stable/core/primitive.pointer.html#method.len)<*mut [T]>::lenhttps://doc.rust-lang.org/stable/core/primitive.pointer.html#method.len-1)<*const [T]>::is_emptyhttps://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_empty)<*mut [T]>::is_emptyhttps://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_empty-1)NonNull::<[T]>::is_emptyhttps://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.is_empty)CStr::count_byteshttps://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes)io::Error::downcasthttps://doc.rust-lang.org/stable/std/io/struct.Error.html#method.downcast)num::NonZero<T>https://doc.rust-lang.org/stable/core/num/struct.NonZero.html)path::absolutehttps://doc.rust-lang.org/stable/std/path/fn.absolute.html)proc_macro::Literal::byte_characterhttps://doc.rust-lang.org/stable/proc_macro/struct.Literal.html#method.byte_character)proc_macro::Literal::c_stringhttps://doc.rust-lang.org/stable/proc_macro/struct.Literal.html#method.c_string)
These APIs are now stable in const contexts:
Atomic*::into_innerhttps://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.into_inner)io::Cursor::newhttps://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.new)io::Cursor::get_refhttps://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.get_ref)io::Cursor::positionhttps://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.position)io::emptyhttps://doc.rust-lang.org/stable/std/io/fn.empty.html)io::repeathttps://doc.rust-lang.org/stable/std/io/fn.repeat.html)io::sinkhttps://doc.rust-lang.org/stable/std/io/fn.sink.html)panic::Location::callerhttps://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.caller)panic::Location::filehttps://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.file)panic::Location::linehttps://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.line)panic::Location::columnhttps://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.column)
Cargo
- Prevent dashes in
lib.name, always normalizing to_. - Stabilize MSRV-aware version requirement selection in
cargo add. - Switch to using
gitoxideby default for listing files. - Error on
[project]in Edition 2024;cargo fix --editionwill change it to[package].
Rustdoc
- Always display stability version even if it's the same as the containing item.
- Show a single search result for items with multiple paths.
- Support typing
/in docs to begin a search.
Compatibility Notes
- Update the minimum external LLVM to 17.
RustcEncodableandRustcDecodableare soft-destabilized, to be removed from the prelude in next edition.- The
wasm_c_abifuture-incompatibility lint will warn about use of the non-spec-compliant C ABI. Usewasm-bindgen v0.2.88to generate forward-compatible bindings. - Check return types of function types for well-formedness
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.5
zypper in -t patch SUSE-2024-2188=1 openSUSE-SLE-15.5-2024-2188=1 -
openSUSE Leap 15.6
zypper in -t patch openSUSE-SLE-15.6-2024-2188=1 -
Development Tools Module 15-SP5
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP5-2024-2188=1 -
Development Tools Module 15-SP6
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP6-2024-2188=1
Package List:
-
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
- rust1.79-debuginfo-1.79.0-150500.11.3.1
- cargo-1.79.0-150500.27.15.1
- cargo1.79-debuginfo-1.79.0-150500.11.3.1
- cargo1.79-1.79.0-150500.11.3.1
- rust-1.79.0-150500.27.15.1
-
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586 nosrc)
- rust1.79-1.79.0-150500.11.3.1
-
openSUSE Leap 15.5 (nosrc)
- rust1.79-test-1.79.0-150500.11.3.1
-
openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64)
- rust1.79-debuginfo-1.79.0-150500.11.3.1
- cargo-1.79.0-150500.27.15.1
- cargo1.79-debuginfo-1.79.0-150500.11.3.1
- cargo1.79-1.79.0-150500.11.3.1
- rust-1.79.0-150500.27.15.1
-
openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.79-1.79.0-150500.11.3.1
-
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
- rust1.79-debuginfo-1.79.0-150500.11.3.1
- cargo-1.79.0-150500.27.15.1
- cargo1.79-debuginfo-1.79.0-150500.11.3.1
- cargo1.79-1.79.0-150500.11.3.1
- rust-1.79.0-150500.27.15.1
-
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.79-1.79.0-150500.11.3.1
-
Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64)
- rust1.79-debuginfo-1.79.0-150500.11.3.1
- cargo-1.79.0-150500.27.15.1
- cargo1.79-debuginfo-1.79.0-150500.11.3.1
- cargo1.79-1.79.0-150500.11.3.1
- rust-1.79.0-150500.27.15.1
-
Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.79-1.79.0-150500.11.3.1