File _patchinfo of Package patchinfo.27262
<patchinfo incident="27262">
<packager>firstyear</packager>
<rating>moderate</rating>
<category>recommended</category>
<summary>Recommended update for rust, rust1.66</summary>
<description>This update for rust, rust1.66 fixes the following issues:
This update ships rust 1.66.
Version 1.66.0 (2022-12-15)
==========================
Language
--------
- Permit specifying explicit discriminants on all `repr(Int)` enums
```rust
#[repr(u8)]
enum Foo {
A(u8) = 0,
B(i8) = 1,
C(bool) = 42,
}
```
- Allow transmutes between the same type differing only in lifetimes
- Change constant evaluation errors from a deny-by-default lint to a hard error
- Trigger `must_use` on `impl Trait` for supertraits
This makes `impl ExactSizeIterator` respect the existing `#[must_use]` annotation on `Iterator`.
- Allow `..X` and `..=X` in patterns
- Uplift `clippy::for_loops_over_fallibles` lint into rustc
- Stabilize `sym` operands in inline assembly
- Update to Unicode 15
- Opaque types no longer imply lifetime bounds
This is a soundness fix which may break code that was erroneously relying on this behavior.
Compiler
--------
- Add armv5te-none-eabi and thumbv5te-none-eabi tier 3 targets
- Refer to Rust's [platform support page][platform-support-doc] for more
information on Rust's tiered platform support.
- Add support for linking against macOS universal libraries
Libraries
---------
- Fix `#[derive(Default)]` on a generic `#[default]` enum adding unnecessary `Default` bounds
- Update to Unicode 15
Stabilized APIs
---------------
- `proc_macro::Span::source_text`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.source_text)
- `uX::{checked_add_signed, overflowing_add_signed, saturating_add_signed, wrapping_add_signed}`](https://doc.rust-lang.org/stable/std/primitive.u8.html#method.checked_add_signed)
- `iX::{checked_add_unsigned, overflowing_add_unsigned, saturating_add_unsigned, wrapping_add_unsigned}`](https://doc.rust-lang.org/stable/std/primitive.i8.html#method.checked_add_unsigned)
- `iX::{checked_sub_unsigned, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}`](https://doc.rust-lang.org/stable/std/primitive.i8.html#method.checked_sub_unsigned)
- `BTreeSet::{first, last, pop_first, pop_last}`](https://doc.rust-lang.org/stable/std/collections/struct.BTreeSet.html#method.first)
- `BTreeMap::{first_key_value, last_key_value, first_entry, last_entry, pop_first, pop_last}`](https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html#method.first_key_value)
- Add `AsFd` implementations for stdio lock types on WASI.
- `impl TryFrom<Vec<T>> for Box<[T; N]>`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#impl-TryFrom%3CVec%3CT%2C%20Global%3E%3E-for-Box%3C%5BT%3B%20N%5D%2C%20Global%3E)
- `core::hint::black_box`](https://doc.rust-lang.org/stable/std/hint/fn.black_box.html)
- `Duration::try_from_secs_{f32,f64}`](https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.try_from_secs_f32)
- `Option::unzip`](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.unzip)
- `std::os::fd`](https://doc.rust-lang.org/stable/std/os/fd/index.html)
Rustdoc
-------
- Add Rustdoc warning for invalid HTML tags in the documentation
Cargo
-----
- Added `cargo remove` to remove dependencies from Cargo.toml](https://doc.rust-lang.org/nightly/cargo/commands/cargo-remove.html)
- `cargo publish` now waits for the new version to be downloadable before exiting
See [detailed release notes] for more.
Compatibility Notes
-------------------
- Only apply `ProceduralMasquerade` hack to older versions of `rental`]
- Don't export `__heap_base` and `__data_end` on wasm32-wasi.]
- Don't export `__wasm_init_memory` on WebAssembly.]
- Only export `__tls_*` on wasm32-unknown-unknown.]
- Don't link to `libresolv` in libstd on Darwin]
- Update libstd's libc to 0.2.135 (to make `libstd` no longer pull in `libiconv.dylib` on Darwin)]
- Opaque types no longer imply lifetime bounds]
This is a soundness fix which may break code that was erroneously relying on this behavior.
- Make `order_dependent_trait_objects` show up in future-breakage reports]
- Change std::process::Command spawning to default to inheriting the parent's signal mask]
Changes in rust:
- Update to version 1.66.0 - for details see the rust1.66 package
</description>
</patchinfo>