rust-lang/rust (STABLE)
### [`v1.77`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1770-2024-03-21)
[Compare Source](https://togithub.com/rust-lang/rust/compare/1.76.0...1.77.0)
\==========================
## Language
- [Reveal opaque types within the defining body for exhaustiveness checking.](https://togithub.com/rust-lang/rust/pull/116821/)
- [Stabilize C-string literals.](https://togithub.com/rust-lang/rust/pull/117472/)
- [Stabilize THIR unsafeck.](https://togithub.com/rust-lang/rust/pull/117673/)
- [Add lint `static_mut_refs` to warn on references to mutable statics.](https://togithub.com/rust-lang/rust/pull/117556/)
- [Support async recursive calls (as long as they have indirection).](https://togithub.com/rust-lang/rust/pull/117703/)
- [Undeprecate lint `unstable_features` and make use of it in the compiler.](https://togithub.com/rust-lang/rust/pull/118639/)
- [Make inductive cycles in coherence ambiguous always.](https://togithub.com/rust-lang/rust/pull/118649/)
- [Get rid of type-driven traversal in const-eval interning](https://togithub.com/rust-lang/rust/pull/119044/),
only as a [future compatiblity lint](https://togithub.com/rust-lang/rust/pull/122204) for now.
- [Deny braced macro invocations in let-else.](https://togithub.com/rust-lang/rust/pull/119062/)
## Compiler
- [Include lint `soft_unstable` in future breakage reports.](https://togithub.com/rust-lang/rust/pull/116274/)
- [Make `i128` and `u128` 16-byte aligned on x86-based targets.](https://togithub.com/rust-lang/rust/pull/116672/)
- [Use `--verbose` in diagnostic output.](https://togithub.com/rust-lang/rust/pull/119129/)
- [Improve spacing between printed tokens.](https://togithub.com/rust-lang/rust/pull/120227/)
- [Merge the `unused_tuple_struct_fields` lint into `dead_code`.](https://togithub.com/rust-lang/rust/pull/118297/)
- [Error on incorrect implied bounds in well-formedness check](https://togithub.com/rust-lang/rust/pull/118553/),
with a temporary exception for Bevy.
- [Fix coverage instrumentation/reports for non-ASCII source code.](https://togithub.com/rust-lang/rust/pull/119033/)
- [Fix `fn`/`const` items implied bounds and well-formedness check.](https://togithub.com/rust-lang/rust/pull/120019/)
- [Promote `riscv32{im|imafc}-unknown-none-elf` targets to tier 2.](https://togithub.com/rust-lang/rust/pull/118704/)
- Add several new tier 3 targets:
- [`aarch64-unknown-illumos`](https://togithub.com/rust-lang/rust/pull/112936/)
- [`hexagon-unknown-none-elf`](https://togithub.com/rust-lang/rust/pull/117601/)
- [`riscv32imafc-esp-espidf`](https://togithub.com/rust-lang/rust/pull/119738/)
- [`riscv32im-risc0-zkvm-elf`](https://togithub.com/rust-lang/rust/pull/117958/)
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
## Libraries
- [Implement `From<&[T; N]>` for `Cow<[T]>`.](https://togithub.com/rust-lang/rust/pull/113489/)
- [Remove special-case handling of `vec.split_off(0)`.](https://togithub.com/rust-lang/rust/pull/119917/)
## Stabilized APIs
- [`array::each_ref`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_ref)
- [`array::each_mut`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_mut)
- [`core::net`](https://doc.rust-lang.org/stable/core/net/index.html)
- [`f32::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.round_ties_even)
- [`f64::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.round_ties_even)
- [`mem::offset_of!`](https://doc.rust-lang.org/stable/std/mem/macro.offset_of.html)
- [`slice::first_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk)
- [`slice::first_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk_mut)
- [`slice::split_first_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk)
- [`slice::split_first_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk_mut)
- [`slice::last_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk)
- [`slice::last_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk_mut)
- [`slice::split_last_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk)
- [`slice::split_last_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk_mut)
- [`slice::chunk_by`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by)
- [`slice::chunk_by_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by_mut)
- [`Bound::map`](https://doc.rust-lang.org/stable/std/ops/enum.Bound.html#method.map)
- [`File::create_new`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.create_new)
- [`Mutex::clear_poison`](https://doc.rust-lang.org/stable/std/sync/struct.Mutex.html#method.clear_poison)
- [`RwLock::clear_poison`](https://doc.rust-lang.org/stable/std/sync/struct.RwLock.html#method.clear_poison)
## Cargo
- [Extend the build directive syntax with `cargo::`.](https://togithub.com/rust-lang/cargo/pull/12201/)
- [Stabilize metadata `id` format as `PackageIDSpec`.](https://togithub.com/rust-lang/cargo/pull/12914/)
- [Pull out `cargo-util-schemas` as a crate.](https://togithub.com/rust-lang/cargo/pull/13178/)
- [Strip all debuginfo when debuginfo is not requested.](https://togithub.com/rust-lang/cargo/pull/13257/)
- [Inherit jobserver from env for all kinds of runners.](https://togithub.com/rust-lang/cargo/pull/12776/)
- [Deprecate rustc plugin support in cargo.](https://togithub.com/rust-lang/cargo/pull/13248/)
## Rustdoc
- [Allows links in markdown headings.](https://togithub.com/rust-lang/rust/pull/117662/)
- [Search for tuples and unit by type with `()`.](https://togithub.com/rust-lang/rust/pull/118194/)
- [Clean up the source sidebar's hide button.](https://togithub.com/rust-lang/rust/pull/119066/)
- [Prevent JS injection from `localStorage`.](https://togithub.com/rust-lang/rust/pull/120250/)
## Misc
- [Recommend version-sorting for all sorting in style guide.](https://togithub.com/rust-lang/rust/pull/115046/)
## 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.
- [Add more weirdness to `weird-exprs.rs`.](https://togithub.com/rust-lang/rust/pull/119028/)
Configuration
📅 Schedule: Branch creation - " *" (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.76
->1.77
Release Notes
rust-lang/rust (STABLE)
### [`v1.77`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1770-2024-03-21) [Compare Source](https://togithub.com/rust-lang/rust/compare/1.76.0...1.77.0) \========================== ## Language - [Reveal opaque types within the defining body for exhaustiveness checking.](https://togithub.com/rust-lang/rust/pull/116821/) - [Stabilize C-string literals.](https://togithub.com/rust-lang/rust/pull/117472/) - [Stabilize THIR unsafeck.](https://togithub.com/rust-lang/rust/pull/117673/) - [Add lint `static_mut_refs` to warn on references to mutable statics.](https://togithub.com/rust-lang/rust/pull/117556/) - [Support async recursive calls (as long as they have indirection).](https://togithub.com/rust-lang/rust/pull/117703/) - [Undeprecate lint `unstable_features` and make use of it in the compiler.](https://togithub.com/rust-lang/rust/pull/118639/) - [Make inductive cycles in coherence ambiguous always.](https://togithub.com/rust-lang/rust/pull/118649/) - [Get rid of type-driven traversal in const-eval interning](https://togithub.com/rust-lang/rust/pull/119044/), only as a [future compatiblity lint](https://togithub.com/rust-lang/rust/pull/122204) for now. - [Deny braced macro invocations in let-else.](https://togithub.com/rust-lang/rust/pull/119062/) ## Compiler - [Include lint `soft_unstable` in future breakage reports.](https://togithub.com/rust-lang/rust/pull/116274/) - [Make `i128` and `u128` 16-byte aligned on x86-based targets.](https://togithub.com/rust-lang/rust/pull/116672/) - [Use `--verbose` in diagnostic output.](https://togithub.com/rust-lang/rust/pull/119129/) - [Improve spacing between printed tokens.](https://togithub.com/rust-lang/rust/pull/120227/) - [Merge the `unused_tuple_struct_fields` lint into `dead_code`.](https://togithub.com/rust-lang/rust/pull/118297/) - [Error on incorrect implied bounds in well-formedness check](https://togithub.com/rust-lang/rust/pull/118553/), with a temporary exception for Bevy. - [Fix coverage instrumentation/reports for non-ASCII source code.](https://togithub.com/rust-lang/rust/pull/119033/) - [Fix `fn`/`const` items implied bounds and well-formedness check.](https://togithub.com/rust-lang/rust/pull/120019/) - [Promote `riscv32{im|imafc}-unknown-none-elf` targets to tier 2.](https://togithub.com/rust-lang/rust/pull/118704/) - Add several new tier 3 targets: - [`aarch64-unknown-illumos`](https://togithub.com/rust-lang/rust/pull/112936/) - [`hexagon-unknown-none-elf`](https://togithub.com/rust-lang/rust/pull/117601/) - [`riscv32imafc-esp-espidf`](https://togithub.com/rust-lang/rust/pull/119738/) - [`riscv32im-risc0-zkvm-elf`](https://togithub.com/rust-lang/rust/pull/117958/) Refer to Rust's \[platform support page]\[platform-support-doc] for more information on Rust's tiered platform support. ## Libraries - [Implement `From<&[T; N]>` for `Cow<[T]>`.](https://togithub.com/rust-lang/rust/pull/113489/) - [Remove special-case handling of `vec.split_off(0)`.](https://togithub.com/rust-lang/rust/pull/119917/) ## Stabilized APIs - [`array::each_ref`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_ref) - [`array::each_mut`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_mut) - [`core::net`](https://doc.rust-lang.org/stable/core/net/index.html) - [`f32::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.round_ties_even) - [`f64::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.round_ties_even) - [`mem::offset_of!`](https://doc.rust-lang.org/stable/std/mem/macro.offset_of.html) - [`slice::first_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk) - [`slice::first_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk_mut) - [`slice::split_first_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk) - [`slice::split_first_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk_mut) - [`slice::last_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk) - [`slice::last_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk_mut) - [`slice::split_last_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk) - [`slice::split_last_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk_mut) - [`slice::chunk_by`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by) - [`slice::chunk_by_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by_mut) - [`Bound::map`](https://doc.rust-lang.org/stable/std/ops/enum.Bound.html#method.map) - [`File::create_new`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.create_new) - [`Mutex::clear_poison`](https://doc.rust-lang.org/stable/std/sync/struct.Mutex.html#method.clear_poison) - [`RwLock::clear_poison`](https://doc.rust-lang.org/stable/std/sync/struct.RwLock.html#method.clear_poison) ## Cargo - [Extend the build directive syntax with `cargo::`.](https://togithub.com/rust-lang/cargo/pull/12201/) - [Stabilize metadata `id` format as `PackageIDSpec`.](https://togithub.com/rust-lang/cargo/pull/12914/) - [Pull out `cargo-util-schemas` as a crate.](https://togithub.com/rust-lang/cargo/pull/13178/) - [Strip all debuginfo when debuginfo is not requested.](https://togithub.com/rust-lang/cargo/pull/13257/) - [Inherit jobserver from env for all kinds of runners.](https://togithub.com/rust-lang/cargo/pull/12776/) - [Deprecate rustc plugin support in cargo.](https://togithub.com/rust-lang/cargo/pull/13248/) ## Rustdoc - [Allows links in markdown headings.](https://togithub.com/rust-lang/rust/pull/117662/) - [Search for tuples and unit by type with `()`.](https://togithub.com/rust-lang/rust/pull/118194/) - [Clean up the source sidebar's hide button.](https://togithub.com/rust-lang/rust/pull/119066/) - [Prevent JS injection from `localStorage`.](https://togithub.com/rust-lang/rust/pull/120250/) ## Misc - [Recommend version-sorting for all sorting in style guide.](https://togithub.com/rust-lang/rust/pull/115046/) ## 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. - [Add more weirdness to `weird-exprs.rs`.](https://togithub.com/rust-lang/rust/pull/119028/)Configuration
📅 Schedule: Branch creation - " *" (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.