Recommended update for rust, rust1.71
| Announcement ID: | SUSE-RU-2023:2978-1 |
|---|---|
| Rating: | moderate |
| References: | |
| Affected Products: |
|
An update that contains one feature can now be installed.
Description:
This update for rust and rust1.71 fixes the following issues:
This update ships rust1.71.
Version 1.71.0 (2023-07-13)
Language
- Stabilize
raw-dylib,link_ordinal,import_name_typeand-Cdlltool. - Uplift
clippy::{drop,forget}_{ref,copy}lints. - Type inference is more conservative around constrained vars.
- Use fulfillment to check
Dropimpl compatibility
Compiler
- Evaluate place expression in
PlaceMentionmakinglet _ =patterns more consistent with respect to the borrow checker. - Add
--print deployment-targetflag for Apple targets. - Stabilize
extern "C-unwind"and friends. The existingextern "C"etc. may change behavior for cross-language unwinding in a future release. - Update the version of musl used on
*-linux-musltargets to 1.2.3 enabling time64 on 32-bit systems. - Stabilize
debugger_visualizerfor embedding metadata like Microsoft's Natvis. - Enable flatten-format-args by default.
- Make
Selfrespect tuple constructor privacy. - Improve niche placement by trying two strategies and picking the better result.
- Use
apple-m1as the target CPU foraarch64-apple-darwin. - Add Tier 3 support for the
x86_64h-apple-darwintarget. - Promote
loongarch64-unknown-linux-gnuto Tier 2 with host tools.
Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.
Libraries
- Rework handling of recursive panics.
Additional panics are allowed while unwinding, as long as they are caught before escaping
a
Dropimplementation, but panicking within a panic hook is now an immediate abort. - Loosen
From<&[T]> for Box<[T]>bound toT: Clone. - Remove unnecessary
T: Sendbound inError for mpsc::SendError<T>andTrySendError<T>. - Fix docs for
alloc::reallocto matchLayoutrequirements that the size must not exceedisize::MAX. - Document
const {}syntax forstd::thread_local. This syntax was stabilized in Rust 1.59, but not previously mentioned in release notes.
Stabilized APIs
CStr::is_empty](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.is_empty)BuildHasher::hash_one](https://doc.rust-lang.org/stable/std/hash/trait.BuildHasher.html#method.hash_one)NonZeroI*::is_positive](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_positive)NonZeroI*::is_negative](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_negative)NonZeroI*::checked_neg](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.checked_neg)NonZeroI*::overflowing_neg](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.overflowing_neg)NonZeroI*::saturating_neg](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.saturating_neg)NonZeroI*::wrapping_neg](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.wrapping_neg)Neg for NonZeroI*](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-NonZeroI32)Neg for &NonZeroI*](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-%26NonZeroI32)From<[T; N]> for (T...)](https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C%5BT;+1%5D%3E-for-(T,)) (array to N-tuple for N in 1..=12)From<(T...)> for [T; N]](https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C(T,)%3E-for-%5BT;+1%5D) (N-tuple to array for N in 1..=12)windows::io::AsHandle for Box<T>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Box%3CT%3E)windows::io::AsHandle for Rc<T>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Rc%3CT%3E)windows::io::AsHandle for Arc<T>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Arc%3CT%3E)windows::io::AsSocket for Box<T>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Box%3CT%3E)windows::io::AsSocket for Rc<T>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Rc%3CT%3E)windows::io::AsSocket for Arc<T>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Arc%3CT%3E)
These APIs are now stable in const contexts:
<*const T>::read](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read)<*const T>::read_unaligned](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned)<*mut T>::read](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read-1)<*mut T>::read_unaligned](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned-1)ptr::read](https://doc.rust-lang.org/stable/std/ptr/fn.read.html)ptr::read_unaligned](https://doc.rust-lang.org/stable/std/ptr/fn.read_unaligned.html)<[T]>::split_at](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_at)
Cargo
- Allow named debuginfo options in
Cargo.toml. - Add
workspace_default_membersto the output ofcargo metadata. cargo addnow considersrust-versionwhen selecting packages.- Automatically inherit workspace fields when running
cargo new/cargo init.
Rustdoc
- Add a new
rustdoc::unescaped_backtickslint for broken inline code. - Support strikethrough with single tildes.](https://github.com/rust-lang/rust/pull/111152/) (
~~old~~vs.~new~)
Misc
Compatibility Notes
- Remove structural match from
TypeId. Code that uses a constantTypeIdin a pattern will potentially be broken. Known cases have already been fixed -- in particular, users of thelogcrate'skv_unstablefeature should update tolog v0.4.18or later. - Add a
sysrootcrate to represent the standard library crates. This does not affect stable users, but may require adjustment in tools that build their own standard library. - Cargo optimizes its usage under
rustup. When Cargo detects it will runrustcpointing to a rustup proxy, it'll try bypassing the proxy and use the underlying binary directly. There are assumptions around the interaction with rustup andRUSTUP_TOOLCHAIN. However, it's not expected to affect normal users. - When querying a package, Cargo tries only the original name, all hyphens, and all underscores to handle misspellings. Previously, Cargo tried each combination of hyphens and underscores, causing excessive requests to crates.io.
- Cargo now disallows
RUSTUP_HOMEandRUSTUP_TOOLCHAINin the[env]configuration table. This is considered to be not a use case Cargo would like to support, since it will likely cause problems or lead to confusion.
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.4
zypper in -t patch SUSE-2023-2978=1 openSUSE-SLE-15.4-2023-2978=1 -
openSUSE Leap 15.5
zypper in -t patch openSUSE-SLE-15.5-2023-2978=1 -
Development Tools Module 15-SP4
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP4-2023-2978=1 -
Development Tools Module 15-SP5
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP5-2023-2978=1
Package List:
-
openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 i586)
- cargo-1.71.0-150400.24.21.1
- cargo1.71-1.71.0-150400.9.3.1
- cargo1.71-debuginfo-1.71.0-150400.9.3.1
- rust-1.71.0-150400.24.21.1
- rust1.71-debuginfo-1.71.0-150400.9.3.1
-
openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 i586 nosrc)
- rust1.71-1.71.0-150400.9.3.1
-
openSUSE Leap 15.4 (nosrc)
- rust1.71-test-1.71.0-150400.9.3.1
-
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64)
- cargo-1.71.0-150400.24.21.1
- cargo1.71-1.71.0-150400.9.3.1
- cargo1.71-debuginfo-1.71.0-150400.9.3.1
- rust-1.71.0-150400.24.21.1
- rust1.71-debuginfo-1.71.0-150400.9.3.1
-
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.71-1.71.0-150400.9.3.1
-
Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64)
- cargo-1.71.0-150400.24.21.1
- cargo1.71-1.71.0-150400.9.3.1
- cargo1.71-debuginfo-1.71.0-150400.9.3.1
- rust-1.71.0-150400.24.21.1
- rust1.71-debuginfo-1.71.0-150400.9.3.1
-
Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.71-1.71.0-150400.9.3.1
-
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
- cargo-1.71.0-150400.24.21.1
- cargo1.71-1.71.0-150400.9.3.1
- cargo1.71-debuginfo-1.71.0-150400.9.3.1
- rust-1.71.0-150400.24.21.1
- rust1.71-debuginfo-1.71.0-150400.9.3.1
-
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.71-1.71.0-150400.9.3.1