File _patchinfo of Package patchinfo.26302
<patchinfo incident="26302">
<packager>firstyear</packager>
<rating>moderate</rating>
<issue tracker="jsc" id="SLE-18626"></issue>
<category>recommended</category>
<summary>Recommended update for rust</summary>
<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 in `T` is inside an `UnsafeCell`]
- 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-width` compiler flag to define the terminal width.
- Add support for link-flavor `rust-lld` for iOS, tvOS and watchOS
Libraries
---------
- Remove restrictions on compare-exchange memory ordering.
- You can now `write!` or `writeln!` into an `OsString`: [Implement `fmt::Write` for `OsString`]
- Make RwLockReadGuard covariant
- Implement `FusedIterator` for `std::net::[Into]Incoming`
- `impl<T: AsRawFd> AsRawFd for {Arc,Box}<T>`
- `ptr::copy` and `ptr::swap` are 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 `--target` flags 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 rustc` to override the crate type.
- Significantly improved the performance fetching git dependencies from GitHub
when using a hash in the `rev` field.
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`'s `U` is not larger than `T`
- A soundness bug in `BTreeMap` was 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-eabi` target, some incorrect `asm!` statements were erroneously accepted if they used the high registers (r8 to r14) as an input/output operand. This is no longer accepted.
- `impl Trait` was accidentally accepted as the associated type value of return-position `impl Trait`, without fulfilling all the trait bounds of that associated type, as long as the hidden type satisfies said bounds. This has been fixed.
</description>
</patchinfo>