Recommended update for rust, rust1.78
| Announcement ID: | SUSE-RU-2024:1761-1 |
|---|---|
| Rating: | moderate |
| References: | |
| Affected Products: |
|
An update that contains one feature can now be installed.
Description:
This update for rust, rust1.78 fixes the following issues:
rust1.78 is shipped:
Version 1.78.0 (2024-05-02)
Language
- Stabilize
#[cfg(target_abi = ...)] - Stabilize the
#[diagnostic]namespace and#[diagnostic::on_unimplemented]attribute - Make async-fn-in-trait implementable with concrete signatures
- Make matching on NaN a hard error, and remove the rest of
illegal_floating_point_literal_pattern - static mut: allow mutable reference to arbitrary types, not just slices and arrays
- Extend
invalid_reference_castingto include references casting to bigger memory layout - Add
non_contiguous_range_endpointslint for singleton gaps after exclusive ranges - Add
wasm_c_abilint for use of older wasm-bindgen versions This lint currently only works when using Cargo. - Update
indirect_structural_matchandpointer_structural_matchlints to match RFC - Make non-
PartialEq-typed consts as patterns a hard error - Split
refining_impl_traitlint into_reachable,_internalvariants - Remove unnecessary type inference when using associated types inside of higher ranked
where-bounds - Weaken eager detection of cyclic types during type inference
trait Trait: Auto {}: allow upcasting fromdyn Traittodyn Auto
Compiler
- Made
INVALID_DOC_ATTRIBUTESlint deny by default - Increase accuracy of redundant
usechecking - Suggest moving definition if non-found macro_rules! is defined later
- Lower transmutes from int to pointer type as gep on null
Target changes:
- Windows tier 1 targets now require at least Windows 10
- Enable CMPXCHG16B, SSE3, SAHF/LAHF and 128-bit Atomics in tier 1 Windows
- Add
wasm32-wasip1tier 2 (without host tools) target - Add
wasm32-wasip2tier 3 target - Rename
wasm32-wasi-preview1-threadstowasm32-wasip1-threads - Add
arm64ec-pc-windows-msvctier 3 target - Add
armv8r-none-eabihftier 3 target for the Cortex-R52 - Add
loongarch64-unknown-linux-musltier 3 target
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries
- Bump Unicode to version 15.1.0, regenerate tables
- Make align_offset, align_to well-behaved in all cases
- PartialEq, PartialOrd: document expectations for transitive chains
- Optimize away poison guards when std is built with panic=abort
- Replace pthread
RwLockwith custom implementation - Implement unwind safety for Condvar on all platforms
- Add ASCII fast-path for
char::is_grapheme_extended
Stabilized APIs
impl Read for &Stdinhttps://doc.rust-lang.org/stable/std/io/struct.Stdin.html#impl-Read-for-%26Stdin- Accept non
'staticlifetimes for severalstd::error::Errorrelated implementations - Make
impl<Fd: AsFd>impl take?Sized impl From<TryReserveError> for io::Errorhttps://doc.rust-lang.org/stable/std/io/struct.Error.html#impl-From%3CTryReserveError%3E-for-Error
These APIs are now stable in const contexts:
Barrier::new()https://doc.rust-lang.org/stable/std/sync/struct.Barrier.html#method.new
Cargo
- Stabilize lockfile v4
- Respect
rust-versionwhen generating lockfile - Control
--charsetvia auto-detecting config value - Support
target.<triple>.rustdocflagsofficially - Stabilize global cache data tracking
Misc
- rustdoc: add
--test-builder-wrapperarg to support wrappers such as RUSTC_WRAPPER when building doctests
Compatibility Notes
- Many unsafe precondition checks now run for user code with debug assertions enabled This change helps users catch undefined behavior in their code, though the details of how much is checked are generally not stable.
- riscv only supports split_debuginfo=off for now
- Consistently check bounds on hidden types of
impl Trait - Change equality of higher ranked types to not rely on subtyping
- When called, additionally check bounds on normalized function return type
- Expand coverage for
arithmetic_overflowlint - Fix detection of potential interior mutability in
constinitializers This code was accidentally accepted. The fix can break generic code that borrows a value of unknown type, as there is currently no way to declare "this type has no interior mutability". In the future, stabilizing theFreezetrait will allow proper support for such code.
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 openSUSE-SLE-15.5-2024-1761=1 SUSE-2024-1761=1 -
openSUSE Leap 15.6
zypper in -t patch openSUSE-SLE-15.6-2024-1761=1 -
Development Tools Module 15-SP5
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP5-2024-1761=1 -
Development Tools Module 15-SP6
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP6-2024-1761=1
Package List:
-
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
- rust1.78-debuginfo-1.78.0-150500.11.3.1
- rust-1.78.0-150500.27.12.1
- cargo-1.78.0-150500.27.12.1
- cargo1.78-1.78.0-150500.11.3.1
- cargo1.78-debuginfo-1.78.0-150500.11.3.1
-
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586 nosrc)
- rust1.78-1.78.0-150500.11.3.1
-
openSUSE Leap 15.5 (nosrc)
- rust1.78-test-1.78.0-150500.11.3.1
-
openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64)
- rust1.78-debuginfo-1.78.0-150500.11.3.1
- rust-1.78.0-150500.27.12.1
- cargo-1.78.0-150500.27.12.1
- cargo1.78-1.78.0-150500.11.3.1
- cargo1.78-debuginfo-1.78.0-150500.11.3.1
-
openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.78-1.78.0-150500.11.3.1
-
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
- rust1.78-debuginfo-1.78.0-150500.11.3.1
- rust-1.78.0-150500.27.12.1
- cargo-1.78.0-150500.27.12.1
- cargo1.78-1.78.0-150500.11.3.1
- cargo1.78-debuginfo-1.78.0-150500.11.3.1
-
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.78-1.78.0-150500.11.3.1
-
Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64)
- rust1.78-debuginfo-1.78.0-150500.11.3.1
- rust-1.78.0-150500.27.12.1
- cargo-1.78.0-150500.27.12.1
- cargo1.78-1.78.0-150500.11.3.1
- cargo1.78-debuginfo-1.78.0-150500.11.3.1
-
Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.78-1.78.0-150500.11.3.1