Recommended update for rust
| Announcement ID: | SUSE-RU-2022:3633-1 |
|---|---|
| Rating: | moderate |
| References: | |
| Affected Products: |
|
An update that contains one feature can now be installed.
Description:
This update for rust fixes the following issues:
Rust was updated to ship in version 1.64.0 in rust1.64.
Version 1.64.0 (2022-09-22)
Language
- Unions with mutable references or tuples of allowed types are now allowed
- It is now considered valid to deallocate memory pointed to by a shared reference
&T[if every byte inTis inside anUnsafeCell] - Unused tuple struct fields are now warned against in an allow-by-default lint, [
unused_tuple_struct_fields]
Compiler
- Add Nintendo Switch as tier 3 target
- Refer to Rust's platform support page for more information on Rust's tiered platform support.
- Only compile
#[used]as llvm.compiler.used for ELF targets - Add the
--diagnostic-widthcompiler flag to define the terminal width. - Add support for link-flavor
rust-lldfor iOS, tvOS and watchOS
Libraries
- Remove restrictions on compare-exchange memory ordering.
- You can now
write!orwriteln!into anOsString: [Implementfmt::WriteforOsString] - Make RwLockReadGuard covariant
- Implement
FusedIteratorforstd::net::[Into]Incoming impl<T: AsRawFd> AsRawFd for {Arc,Box}<T>ptr::copyandptr::swapare doing untyped copies- Add cgroupv1 support to
available_parallelism - Mitigate many incorrect uses of
mem::uninitialized
Stabilized APIs
- future::IntoFuture
- future::poll_fn
- task::ready!
- num::NonZero*::checked_mul
- num::NonZero*::checked_pow
- num::NonZero*::saturating_mul
- num::NonZero*::saturating_pow
- num::NonZeroI*::abs
- num::NonZeroI*::checked_abs
- num::NonZeroI*::overflowing_abs
- num::NonZeroI*::saturating_abs
- num::NonZeroI*::unsigned_abs
- num::NonZeroI*::wrapping_abs
- num::NonZeroU*::checked_add
- num::NonZeroU*::checked_next_power_of_two
- num::NonZeroU*::saturating_add
- os::unix::process::CommandExt::process_group
- os::windows::fs::FileTypeExt::is_symlink_dir
- os::windows::fs::FileTypeExt::is_symlink_file
These types were previously stable in std::ffi, but are now also available in core and alloc:
- core::ffi::CStr
- core::ffi::FromBytesWithNulError
- alloc::ffi::CString
- alloc::ffi::FromVecWithNulError
- alloc::ffi::IntoStringError
- alloc::ffi::NulError
These types were previously stable in std::os::raw, but are now also available in core::ffi and std::ffi:
- ffi::c_char
- ffi::c_double
- ffi::c_float
- ffi::c_int
- ffi::c_long
- ffi::c_longlong
- ffi::c_schar
- ffi::c_short
- ffi::c_uchar
- ffi::c_uint
- ffi::c_ulong
- ffi::c_ulonglong
- ffi::c_ushort
These APIs are now usable in const contexts:
- slice::from_raw_parts
Cargo
- Packages can now inherit settings from the workspace so that the settings can be centralized in one place.
- Cargo commands can now accept multiple
--targetflags to build for multiple targets at once - The --jobs argument can now take a negative number to count backwards from the max CPUs.
- cargo add will now update Cargo.lock.
- Added the --crate-type flag to
cargo rustcto override the crate type. - Significantly improved the performance fetching git dependencies from GitHub
when using a hash in the
revfield.
Misc
- The rust-analyzer rustup component is now available on the stable channel.
Compatibility Notes
- The minimum required versions for all -linux-nu` targets are now at least kernel 3.2 and glibc 2.17, for targets that previously supported older versions.
- Network primitives are now implemented with the ideal Rust layout, not the C system layout
- Add assertion that
transmute_copy'sUis not larger thanT - A soundness bug in
BTreeMapwas fixed - The Drop behavior of C-like enums cast to ints has changed
- Relate late-bound closure lifetimes to parent fn in NLL
- Errors at const-eval time are now in future incompatibility reports
- On the
thumbv6m-none-eabitarget, some incorrectasm!statements were erroneously accepted if they used the high registers (r8 to r14) as an input/output operand. This is no longer accepted. impl Traitwas accidentally accepted as the associated type value of return-positionimpl Trait, without fulfilling all the trait bounds of that associated type, as long as the hidden type satisfies said bounds. This has been fixed.
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 SUSE-2022-3633=1 -
openSUSE Leap 15.4
zypper in -t patch openSUSE-SLE-15.4-2022-3633=1 -
Development Tools Module 15-SP3
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP3-2022-3633=1 -
Development Tools Module 15-SP4
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP4-2022-3633=1
Package List:
-
openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586)
- cargo-1.64.0-150300.21.35.1
- rust-1.64.0-150300.21.35.1
- cargo1.64-debuginfo-1.64.0-150300.7.3.1
- rust1.64-1.64.0-150300.7.3.1
- cargo1.64-1.64.0-150300.7.3.1
- rust1.64-debuginfo-1.64.0-150300.7.3.1
-
openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64)
- cargo-1.64.0-150300.21.35.1
- rust-1.64.0-150300.21.35.1
- cargo1.64-debuginfo-1.64.0-150300.7.3.1
- rust1.64-1.64.0-150300.7.3.1
- cargo1.64-1.64.0-150300.7.3.1
- rust1.64-debuginfo-1.64.0-150300.7.3.1
-
Development Tools Module 15-SP3 (aarch64 ppc64le s390x x86_64)
- cargo-1.64.0-150300.21.35.1
- rust-1.64.0-150300.21.35.1
- cargo1.64-debuginfo-1.64.0-150300.7.3.1
- rust1.64-1.64.0-150300.7.3.1
- cargo1.64-1.64.0-150300.7.3.1
- rust1.64-debuginfo-1.64.0-150300.7.3.1
-
Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64)
- cargo-1.64.0-150300.21.35.1
- rust-1.64.0-150300.21.35.1
- cargo1.64-debuginfo-1.64.0-150300.7.3.1
- rust1.64-1.64.0-150300.7.3.1
- cargo1.64-1.64.0-150300.7.3.1
- rust1.64-debuginfo-1.64.0-150300.7.3.1