File _patchinfo of Package patchinfo.27661
<patchinfo incident="27661">
<issue tracker="jsc" id="SLE-18626"/>
<packager>firstyear</packager>
<rating>moderate</rating>
<category>recommended</category>
<summary>Recommended update for rust, rust1.67</summary>
<description>This update for rust, rust1.67 fixes the following issues:
Rust is shipped in version 1.67.0.
Changes in rust1.67:
Version 1.67.0 (2023-01-26)
==========================
Language
--------
- Make `Sized` predicates coinductive, allowing cycles.
- #[must_use]` annotations on `async fn` also affect the `Future::Output`.
- Elaborate supertrait obligations when deducing closure signatures.
- Invalid literals are no longer an error under `cfg(FALSE)`.
- Unreserve braced enum variants in value namespace.
Compiler
--------
- Enable varargs support for calling conventions other than `C` or `cdecl`.
- Add new MIR constant propagation based on dataflow analysis.
- Optimize field ordering by grouping m\*2^n-sized fields with equivalently aligned ones.
- Stabilize native library modifier `verbatim`.
Added and removed targets:
- Remove tier 3 `linuxkernel` targets
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries
---------
- Merge `crossbeam-channel` into `std::sync::mpsc`.
- Fix inconsistent rounding of 0.5 when formatted to 0 decimal places.
- Derive `Eq` and `Hash` for `ControlFlow`.
- Don't build `compiler_builtins` with `-C panic=abort`.
Stabilized APIs
---------------
- {integer}::checked_ilog
- {integer}::checked_ilog2
- {integer}::checked_ilog10
- {integer}::ilog
- {integer}::ilog2
- {integer}::ilog10
- NonZeroU*::ilog2
- NonZeroU*::ilog10
- NonZero*::BITS
These APIs are now stable in const contexts:
- char::from_u32
- char::from_digit
- char::to_digit
- core::char::from_u32
- core::char::from_digit
Compatibility Notes
-------------------
- The layout of `repr(Rust)` types now groups m\*2^n-sized fields with
equivalently aligned ones.
This is intended to be an optimization, but it is also known to increase type
sizes in a few cases for the placement of enum tags. As a reminder, the layout
of `repr(Rust)` types is an implementation detail, subject to change.
- 0.5 now rounds to 0 when formatted to 0 decimal places.
This makes it consistent with the rest of floating point formatting that
rounds ties toward even digits.
- Chains of `&&` and `||` will now drop temporaries from their sub-expressions in
evaluation order, left-to-right.
Previously, it was "twisted" such that the _first_ expression dropped its
temporaries _last_, after all of the other expressions dropped in order.
- Underscore suffixes on string literals are now a hard error.
This has been a future-compatibility warning since 1.20.0.
- Stop passing `-export-dynamic` to `wasm-ld`.
- main` is now mangled as `__main_void` on `wasm32-wasi`.
- Cargo now emits an error if there are multiple registries in the configuration
with the same index URL.
</description>
</patchinfo>