SUSE-CU-2024:4555-1: Recommended update of bci/rust
sle-container-updates at lists.suse.com
sle-container-updates at lists.suse.com
Thu Sep 26 13:46:26 UTC 2024
SUSE Container Update Advisory: bci/rust
-----------------------------------------------------------------
Container Advisory ID : SUSE-CU-2024:4555-1
Container Tags : bci/rust:1.81 , bci/rust:1.81-1.2.1 , bci/rust:1.81.0 , bci/rust:1.81.0-1.2.1 , bci/rust:latest , bci/rust:stable , bci/rust:stable-1.2.1
Container Release : 2.1
Severity : moderate
Type : recommended
References :
-----------------------------------------------------------------
The container bci/rust was updated. The following patches have been included in this update:
-----------------------------------------------------------------
Advisory ID: SUSE-RU-2024:3406-1
Released: Mon Sep 23 17:33:49 2024
Summary: Recommended update for rust, rust1.81
Type: recommended
Severity: moderate
References:
This update for rust, rust1.81 fixes the following issues:
Changes in rust1.81:
- Resolve wasm32-wasi build issues
Version 1.81.0 (2024-09-05)
==========================
Language
--------
- Abort on uncaught panics in `extern 'C'` functions.
- Fix ambiguous cases of multiple `&` in elided self lifetimes.
- Stabilize `#[expect]` for lints (RFC 2383), like `#[allow]` with a warning if the lint is _not_ fulfilled.
- Change method resolution to constrain hidden types instead of rejecting method candidates.
- Bump `elided_lifetimes_in_associated_constant` to deny.
- `offset_from`: always allow pointers to point to the same address.
- Allow constraining opaque types during subtyping in the trait system.
- Allow constraining opaque types during various unsizing casts.
- Deny keyword lifetimes pre-expansion.
Compiler
--------
- Make casts of pointers to trait objects stricter.
- Check alias args for well-formedness even if they have escaping bound vars.
- Deprecate no-op codegen option `-Cinline-threshold=...`.
- Re-implement a type-size based limit.
- Properly account for alignment in `transmute` size checks.
- Remove the `box_pointers` lint.
- Ensure the interpreter checks bool/char for validity when they are used in a cast.
- Improve coverage instrumentation for functions containing nested items.
- Target changes:
- Add Tier 3 `no_std` Xtensa targets: `xtensa-esp32-none-elf`, `xtensa-esp32s2-none-elf`, `xtensa-esp32s3-none-elf`
- Add Tier 3 `std` Xtensa targets: `xtensa-esp32-espidf`, `xtensa-esp32s2-espidf`, `xtensa-esp32s3-espidf`
- Add Tier 3 i686 Redox OS target: `i686-unknown-redox`
- Promote `arm64ec-pc-windows-msvc` to Tier 2.
- Promote `loongarch64-unknown-linux-musl` to Tier 2 with host tools.
- Enable full tools and profiler for LoongArch Linux targets.
- Unconditionally warn on usage of `wasm32-wasi`. (see compatibility note below)
- Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.
Libraries
---------
- Split core's `PanicInfo` and std's `PanicInfo`. (see compatibility note below)
- Generalize `{Rc,Arc}::make_mut()` to unsized types.
- Replace sort implementations with stable `driftsort` and unstable `ipnsort`. All `slice::sort*` and `slice::select_nth*` methods are expected to see significant performance improvements. See the research project https://github.com/Voultapher/sort-research-rs for more details.
- Document behavior of `create_dir_all` with respect to empty paths.
- Fix interleaved output in the default panic hook when multiple threads panic simultaneously.
Stabilized APIs
---------------
- `core::error` https://doc.rust-lang.org/stable/core/error/index.html
- `hint::assert_unchecked` https://doc.rust-lang.org/stable/core/hint/fn.assert_unchecked.html
- `fs::exists` https://doc.rust-lang.org/stable/std/fs/fn.exists.html
- `AtomicBool::fetch_not` https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.fetch_not
- `Duration::abs_diff` https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.abs_diff
- `IoSlice::advance` https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance
- `IoSlice::advance_slices` https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance_slices
- `IoSliceMut::advance` https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance
- `IoSliceMut::advance_slices` https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance_slices
- `PanicHookInfo` https://doc.rust-lang.org/stable/std/panic/struct.PanicHookInfo.html
- `PanicInfo::message` https://doc.rust-lang.org/stable/core/panic/struct.PanicInfo.html#method.message
- `PanicMessage` https://doc.rust-lang.org/stable/core/panic/struct.PanicMessage.html
These APIs are now stable in const contexts:
- `char::from_u32_unchecked` https://doc.rust-lang.org/stable/core/char/fn.from_u32_unchecked.html (function)
- `char::from_u32_unchecked` https://doc.rust-lang.org/stable/core/primitive.char.html#method.from_u32_unchecked (method)
- `CStr::count_bytes` https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes
- `CStr::from_ptr` https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.from_ptr
Cargo
-----
- Generated `.cargo_vcs_info.json` is always included, even when `--allow-dirty` is passed.
- Disallow `package.license-file` and `package.readme` pointing to non-existent files during packaging.
- Disallow passing `--release`/`--debug` flag along with the `--profile` flag.
- Remove `lib.plugin` key support in `Cargo.toml`. Rust plugin support has been deprecated for four years and was removed in 1.75.0.
Compatibility Notes
-------------------
* Usage of the `wasm32-wasi` target will now issue a compiler warning and request users switch to the `wasm32-wasip1` target instead. Both targets are the same, `wasm32-wasi` is only being renamed, and this change to the WASI target https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html is being done to enable removing `wasm32-wasi` in January 2025.
* We have renamed `std::panic::PanicInfo` to `std::panic::PanicHookInfo`. The old name will continue to work as an alias, but will result in a deprecation warning starting in Rust 1.82.0.
`core::panic::PanicInfo` will remain unchanged, however, as this is now a *different type*.
The reason is that these types have different roles: `std::panic::PanicHookInfo` is the argument to the panic hook https://doc.rust-lang.org/stable/std/panic/fn.set_hook.html in std context (where panics can have an arbitrary payload), while `core::panic::PanicInfo` is the argument to the `#[panic_handler]` https://doc.rust-lang.org/nomicon/panic-handler.html in no_std context (where panics always carry a formatted *message*). Separating these types allows us to add more useful methods to these types, such as `std::panic::PanicHookInfo::payload_as_str()` and `core::panic::PanicInfo::message()`.
* The new sort implementations may panic if a type's implementation of `Ord` https://doc.rust-lang.org/std/cmp/trait.Ord.html (or the given comparison function) does not implement a total order https://en.wikipedia.org/wiki/Total_order as the trait requires. `Ord`'s supertraits (`PartialOrd`, `Eq`, and `PartialEq`) must also be consistent. The previous implementations would not 'notice' any problem, but the new implementations have a good chance of detecting inconsistencies, throwing a panic rather than returning knowingly unsorted data.
* In very rare cases, a change in the internal evaluation order of the trait solver may result in new fatal overflow errors.
The following package changes have been done:
- rust1.81-1.81.0-150500.11.3.1 added
- cargo1.81-1.81.0-150500.11.3.1 added
- cargo1.80-1.80.1-150500.11.6.1 removed
- rust1.80-1.80.1-150500.11.6.1 removed
More information about the sle-container-updates
mailing list