File _patchinfo of Package patchinfo.39484

<patchinfo incident="39484">
  <issue tracker="jsc" id="SLE-18626"/>
  <issue tracker="jsc" id="PED-11411"/>
  <packager>firstyear</packager>
  <rating>moderate</rating>
  <category>recommended</category>
  <summary>Recommended update for rust, rust1.88</summary>
  <description>This update for rust fixes the following issues:

- Update to version 1.88.0 - for details see the rust1.88 package

Version 1.88.0 (2025-06-26)
==========================

Language:

- Stabilize `#![feature(let_chains)]` in the 2024 edition.
  This feature allows `&amp;&amp;`-chaining `let` statements inside `if` and `while`, allowing intermixture with boolean expressions. The patterns inside the `let` sub-expressions can be irrefutable or refutable.
- Stabilize `#![feature(naked_functions)]`.
  Naked functions allow writing functions with no compiler-generated epilogue and prologue, allowing full control over the generated assembly for a particular function.
- Stabilize `#![feature(cfg_boolean_literals)]`.
  This allows using boolean literals as `cfg` predicates, e.g. `#[cfg(true)]` and `#[cfg(false)]`.
- Fully de-stabilize the `#[bench]` attribute. Usage of `#[bench]` without `#![feature(custom_test_frameworks)]` already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.
- Add warn-by-default `dangerous_implicit_autorefs` lint against implicit autoref of raw pointer dereference.
  The lint will be bumped to deny-by-default in the next version of Rust.
- Add `invalid_null_arguments` lint to prevent invalid usage of null pointers.
  This lint is uplifted from `clippy::invalid_null_ptr_usage`.
- Change trait impl candidate preference for builtin impls and trivial where-clauses.
- Check types of generic const parameter defaults

Compiler:

- Stabilize `-Cdwarf-version` for selecting the version of DWARF debug information to generate.


Platform Support:

- Demote `i686-pc-windows-gnu` to Tier 2.


Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.

[platform-support-doc]: https://doc.rust-lang.org/rustc/platform-support.html

Libraries:

- Remove backticks from `#[should_panic]` test failure message.
- Guarantee that `[T; N]::from_fn` is generated in order of increasing indices, for those passing it a stateful closure.
- The libtest flag `--nocapture` is deprecated in favor of the more consistent `--no-capture` flag.
- Guarantee that `{float}::NAN` is a quiet NaN.


Stabilized APIs:

- `Cell::update` https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.update
- `impl Default for *const T` https://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*const+T
- `impl Default for *mut T` https://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*mut+T
- `HashMap::extract_if` https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.extract_if
- `HashSet::extract_if` https://doc.rust-lang.org/stable/std/collections/struct.HashSet.html#method.extract_if
- `proc_macro::Span::line` https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.line
- `proc_macro::Span::column` https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.column
- `proc_macro::Span::start` https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.start
- `proc_macro::Span::end` https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.end
- `proc_macro::Span::file` https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.file
- `proc_macro::Span::local_file` https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.local_file

These previously stable APIs are now stable in const contexts:

- `NonNull&lt;T>::replace` https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.replace
- `&lt;*mut T>::replace` https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.replace
- `std::ptr::swap_nonoverlapping`
- `Cell::{replace, get, get_mut, from_mut, as_slice_of_cells}`


Cargo:

- Stabilize automatic garbage collection.
- use `zlib-rs` for gzip compression in rust code

Rustdoc:

- Doctests can be ignored based on target names using `ignore-*` attributes.
- Stabilize the `--test-runtool` and `--test-runtool-arg` CLI options to specify a program (like qemu) and its arguments to run a doctest.

Compatibility Notes:

- Finish changing the internal representation of pasted tokens. Certain invalid declarative macros that were previously accepted in obscure circumstances are now correctly rejected by the compiler. Use of a `tt` fragment specifier can often fix these macros.
- Fully de-stabilize the `#[bench]` attribute. Usage of `#[bench]` without `#![feature(custom_test_frameworks)]` already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.
- Fix borrow checking some always-true patterns.
  The borrow checker was overly permissive in some cases, allowing programs that shouldn't have compiled.
- Update the minimum external LLVM to 19.
- Make it a hard error to use a vector type with a non-Rust ABI without enabling the required target feature.

</description>
</patchinfo>
openSUSE Build Service is sponsored by