rust-lang/rust
### [`v1.66.0`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1660-2022-12-15)
[Compare Source](https://togithub.com/rust-lang/rust/compare/1.65.0...1.66.0)
\==========================
## Language
- [Permit specifying explicit discriminants on all `repr(Int)` enums](https://togithub.com/rust-lang/rust/pull/95710/)
```rust
#[repr(u8)]
enum Foo {
A(u8) = 0,
B(i8) = 1,
C(bool) = 42,
}
```
- [Allow transmutes between the same type differing only in lifetimes](https://togithub.com/rust-lang/rust/pull/101520/)
- [Change constant evaluation errors from a deny-by-default lint to a hard error](https://togithub.com/rust-lang/rust/pull/102091/)
- [Trigger `must_use` on `impl Trait` for supertraits](https://togithub.com/rust-lang/rust/pull/102287/)
This makes `impl ExactSizeIterator` respect the existing `#[must_use]` annotation on `Iterator`.
- [Allow `..=X` in patterns](https://togithub.com/rust-lang/rust/pull/102275/)
- [Uplift `clippy::for_loops_over_fallibles` lint into rustc](https://togithub.com/rust-lang/rust/pull/99696/)
- [Stabilize `sym` operands in inline assembly](https://togithub.com/rust-lang/rust/pull/103168/)
- [Update to Unicode 15](https://togithub.com/rust-lang/rust/pull/101912/)
- [Opaque types no longer imply lifetime bounds](https://togithub.com/rust-lang/rust/pull/95474/)
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](https://togithub.com/rust-lang/rust/pull/101329/)
- 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](https://togithub.com/rust-lang/rust/pull/98736)
## Libraries
- [Fix `#[derive(Default)]` on a generic `#[default]` enum adding unnecessary `Default` bounds](https://togithub.com/rust-lang/rust/pull/101040/)
- [Update to Unicode 15](https://togithub.com/rust-lang/rust/pull/101821/)
## 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.](https://togithub.com/rust-lang/rust/pull/101768/)
- [`impl TryFrom> 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](https://togithub.com/rust-lang/rust/pull/101720/)
## 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](https://togithub.com/rust-lang/cargo/pull/11062)
See [detailed release notes](https://togithub.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-166-2022-12-15) for more.
## Compatibility Notes
- [Only apply `ProceduralMasquerade` hack to older versions of `rental`](https://togithub.com/rust-lang/rust/pull/94063/)
- [Don't export `__heap_base` and `__data_end` on wasm32-wasi.](https://togithub.com/rust-lang/rust/pull/102385/)
- [Don't export `__wasm_init_memory` on WebAssembly.](https://togithub.com/rust-lang/rust/pull/102426/)
- [Only export `__tls_*` on wasm32-unknown-unknown.](https://togithub.com/rust-lang/rust/pull/102440/)
- [Don't link to `libresolv` in libstd on Darwin](https://togithub.com/rust-lang/rust/pull/102766/)
- [Update libstd's libc to 0.2.135 (to make `libstd` no longer pull in `libiconv.dylib` on Darwin)](https://togithub.com/rust-lang/rust/pull/103277/)
- [Opaque types no longer imply lifetime bounds](https://togithub.com/rust-lang/rust/pull/95474/)
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](https://togithub.com/rust-lang/rust/pull/102635/)
- [Change std::process::Command spawning to default to inheriting the parent's signal mask](https://togithub.com/rust-lang/rust/pull/101077/)
## Internal Changes
These changes do not affect any public interfaces of Rust, but they represent
significant improvements to the performance or internals of rustc and related
tools.
- [Enable BOLT for LLVM compilation](https://togithub.com/rust-lang/rust/pull/94381/)
- [Enable LTO for rustc_driver.so](https://togithub.com/rust-lang/rust/pull/101403/)
Configuration
📅 Schedule: Branch creation - "before 3am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
1.65.0
->1.66.0
1.69.0
(+6)Release Notes
rust-lang/rust
### [`v1.66.0`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1660-2022-12-15) [Compare Source](https://togithub.com/rust-lang/rust/compare/1.65.0...1.66.0) \========================== ## Language - [Permit specifying explicit discriminants on all `repr(Int)` enums](https://togithub.com/rust-lang/rust/pull/95710/) ```rust #[repr(u8)] enum Foo { A(u8) = 0, B(i8) = 1, C(bool) = 42, } ``` - [Allow transmutes between the same type differing only in lifetimes](https://togithub.com/rust-lang/rust/pull/101520/) - [Change constant evaluation errors from a deny-by-default lint to a hard error](https://togithub.com/rust-lang/rust/pull/102091/) - [Trigger `must_use` on `impl Trait` for supertraits](https://togithub.com/rust-lang/rust/pull/102287/) This makes `impl ExactSizeIterator` respect the existing `#[must_use]` annotation on `Iterator`. - [Allow `..=X` in patterns](https://togithub.com/rust-lang/rust/pull/102275/) - [Uplift `clippy::for_loops_over_fallibles` lint into rustc](https://togithub.com/rust-lang/rust/pull/99696/) - [Stabilize `sym` operands in inline assembly](https://togithub.com/rust-lang/rust/pull/103168/) - [Update to Unicode 15](https://togithub.com/rust-lang/rust/pull/101912/) - [Opaque types no longer imply lifetime bounds](https://togithub.com/rust-lang/rust/pull/95474/) 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](https://togithub.com/rust-lang/rust/pull/101329/) - 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](https://togithub.com/rust-lang/rust/pull/98736) ## Libraries - [Fix `#[derive(Default)]` on a generic `#[default]` enum adding unnecessary `Default` bounds](https://togithub.com/rust-lang/rust/pull/101040/) - [Update to Unicode 15](https://togithub.com/rust-lang/rust/pull/101821/) ## 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.](https://togithub.com/rust-lang/rust/pull/101768/) - [`impl TryFromConfiguration
📅 Schedule: Branch creation - "before 3am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.