Ed Page
ed74f4ebbb
chore(ci): Update from windows-2019
2025-06-09 11:08:54 -05:00
Ed Page
37c62d07ec
chore: Update from _rust/main template
2025-06-05 09:58:22 -05:00
renovate[bot]
b8a7ea49d9
chore(deps): Update Rust Stable to v1.87 ( #18 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://redirect.github.com/rust-lang/rust ) | minor | `1.76`
-> `1.87` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.87`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1870-2025-05-15 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.86.0...1.87.0 )
\==========================
<a id="1.87.0-Language"></a>
## Language
- [Stabilize `asm_goto`
feature](https://redirect.github.com/rust-lang/rust/pull/133870 )
- [Allow parsing open beginning ranges (`..EXPR`) after unary operators
`!`, `-`, and
`*`](https://redirect.github.com/rust-lang/rust/pull/134900 ).
- [Don't require method impls for methods with `Self: Sized` bounds in
`impl`s for unsized
types](https://redirect.github.com/rust-lang/rust/pull/135480 )
- [Stabilize `feature(precise_capturing_in_traits)` allowing `use<...>`
bounds on return position `impl Trait` in
`trait`s](https://redirect.github.com/rust-lang/rust/pull/138128 )
<a id="1.87.0-Compiler"></a>
## Compiler
- [x86: make SSE2 required for i686 targets and use it to pass SIMD
types](https://redirect.github.com/rust-lang/rust/pull/135408 )
<a id="1.87.0-Platform-Support"></a>
## Platform Support
- [Remove `i586-pc-windows-msvc`
target](https://redirect.github.com/rust-lang/rust/pull/137957 )
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
<a id="1.87.0-Libraries"></a>
## Libraries
- [Stabilize the anonymous pipe
API](https://redirect.github.com/rust-lang/rust/issues/127154 )
- [Add support for unbounded left/right shift
operations](https://redirect.github.com/rust-lang/rust/issues/129375 )
- [Print pointer metadata in `Debug` impl of raw
pointers](https://redirect.github.com/rust-lang/rust/pull/135080 )
- [`Vec::with_capacity` guarantees it allocates with the amount
requested, even if `Vec::capacity` returns a different
number.](https://redirect.github.com/rust-lang/rust/pull/135933 )
- Most `std::arch` intrinsics which don't take pointer arguments can now
be called from safe code if the caller has the appropriate target
features already enabled
([https://github.com/rust-lang/stdarch/pull/1714 ](https://redirect.github.com/rust-lang/stdarch/pull/1714 ),
[https://github.com/rust-lang/stdarch/pull/1716 ](https://redirect.github.com/rust-lang/stdarch/pull/1716 ),
[https://github.com/rust-lang/stdarch/pull/1717 ](https://redirect.github.com/rust-lang/stdarch/pull/1717 ))
- [Undeprecate
`env::home_dir`](https://redirect.github.com/rust-lang/rust/pull/137327 )
- [Denote `ControlFlow` as
`#[must_use]`](https://redirect.github.com/rust-lang/rust/pull/137449 )
- [Macros such as `assert_eq!` and `vec!` now support `const {...}`
expressions](https://redirect.github.com/rust-lang/rust/pull/138162 )
<a id="1.87.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`Vec::extract_if`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.extract_if )
-
[`vec::ExtractIf`](https://doc.rust-lang.org/stable/std/vec/struct.ExtractIf.html )
-
[`LinkedList::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.LinkedList.html#method.extract_if )
-
[`linked_list::ExtractIf`](https://doc.rust-lang.org/stable/std/collections/linked_list/struct.ExtractIf.html )
-
[`<[T]>::split_off`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off )
-
[`<[T]>::split_off_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_mut )
-
[`<[T]>::split_off_first`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first )
-
[`<[T]>::split_off_first_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first_mut )
-
[`<[T]>::split_off_last`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last )
-
[`<[T]>::split_off_last_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last_mut )
-
[`String::extend_from_within`](https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.extend_from_within )
-
[`os_str::Display`](https://doc.rust-lang.org/stable/std/ffi/os_str/struct.Display.html )
-
[`OsString::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.display )
-
[`OsStr::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.display )
- [`io::pipe`](https://doc.rust-lang.org/stable/std/io/fn.pipe.html )
-
[`io::PipeReader`](https://doc.rust-lang.org/stable/std/io/struct.PipeReader.html )
-
[`io::PipeWriter`](https://doc.rust-lang.org/stable/std/io/struct.PipeWriter.html )
- [`impl From<PipeReader> for
OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle )
- [`impl From<PipeWriter> for
OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle )
- [`impl From<PipeReader> for
Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html )
- [`impl From<PipeWriter> for
Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio )
- [`impl From<PipeReader> for
OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd )
- [`impl From<PipeWriter> for
OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd )
-
[`Box<MaybeUninit<T>>::write`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.write )
- [`impl TryFrom<Vec<u8>> for
String`](https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String )
- [`<*const
T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned )
- [`<*const
T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned )
- [`<*mut
T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned-1 )
- [`<*mut
T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned-1 )
-
[`NonNull::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.offset_from_unsigned )
-
[`NonNull::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned )
-
[`<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.cast_signed )
-
[`NonZero::<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_signed-5 ).
-
[`<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.cast_unsigned ).
-
[`NonZero::<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_unsigned-5 ).
-
[`<uN>::is_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.is_multiple_of )
-
[`<uN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shl )
-
[`<uN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shr )
-
[`<iN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shl )
-
[`<iN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shr )
-
[`<iN>::midpoint`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.midpoint )
-
[`<str>::from_utf8`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8 )
-
[`<str>::from_utf8_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8\_mut )
-
[`<str>::from_utf8_unchecked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8\_unchecked )
-
[`<str>::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8\_unchecked_mut )
These previously stable APIs are now stable in const contexts:
-
[`core::str::from_utf8_mut`](https://doc.rust-lang.org/stable/std/str/fn.from_utf8\_mut.html )
-
[`<[T]>::copy_from_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.copy_from_slice )
-
[`SocketAddr::set_ip`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_ip )
-
[`SocketAddr::set_port`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_port ),
-
[`SocketAddrV4::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_ip )
-
[`SocketAddrV4::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_port ),
-
[`SocketAddrV6::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_ip )
-
[`SocketAddrV6::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_port )
-
[`SocketAddrV6::set_flowinfo`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_flowinfo )
-
[`SocketAddrV6::set_scope_id`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_scope_id )
-
[`char::is_digit`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_digit )
-
[`char::is_whitespace`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_whitespace )
- [`<[[T;
N]]>::as_flattened`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened )
- [`<[[T;
N]]>::as_flattened_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened_mut )
-
[`String::into_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_bytes )
-
[`String::as_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_str )
-
[`String::capacity`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.capacity )
-
[`String::as_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_bytes )
-
[`String::len`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.len )
-
[`String::is_empty`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.is_empty )
-
[`String::as_mut_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_str )
-
[`String::as_mut_vec`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_vec )
-
[`Vec::as_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_ptr )
-
[`Vec::as_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_slice )
-
[`Vec::capacity`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.capacity )
-
[`Vec::len`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.len )
-
[`Vec::is_empty`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.is_empty )
-
[`Vec::as_mut_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_slice )
-
[`Vec::as_mut_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_ptr )
<a id="1.87.0-Cargo"></a>
## Cargo
- [Add terminal integration via ANSI OSC 9;4
sequences](https://redirect.github.com/rust-lang/cargo/pull/14615/ )
- [chore: bump openssl to
v3](https://redirect.github.com/rust-lang/cargo/pull/15232/ )
- [feat(package): add --exclude-lockfile
flag](https://redirect.github.com/rust-lang/cargo/pull/15234/ )
<a id="1.87.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Rust now raises an error for macro invocations inside the
`#![crate_name]`
attribute](https://redirect.github.com/rust-lang/rust/pull/127581 )
- [Unstable fields are now always considered to be
inhabited](https://redirect.github.com/rust-lang/rust/pull/133889 )
- [Macro arguments of unary operators followed by open beginning ranges
may now be matched
differently](https://redirect.github.com/rust-lang/rust/pull/134900 )
- [Make `Debug` impl of raw pointers print metadata if
present](https://redirect.github.com/rust-lang/rust/pull/135080 )
- [Warn against function pointers using unsupported ABI strings in
dependencies](https://redirect.github.com/rust-lang/rust/pull/135767 )
- [Associated types on `dyn` types are no longer
deduplicated](https://redirect.github.com/rust-lang/rust/pull/136458 )
- [Forbid attributes on `..` inside of struct patterns (`let Struct {
#[attribute] .. })
=`](https://redirect.github.com/rust-lang/rust/pull/136490 )
- [Make `ptr_cast_add_auto_to_object` lint into hard
error](https://redirect.github.com/rust-lang/rust/pull/136764 )
- Many `std::arch` intrinsics are now safe to call in some contexts,
there may now be new `unused_unsafe` warnings in existing codebases.
- [Limit `width` and `precision` formatting options to 16 bits on all
targets](https://redirect.github.com/rust-lang/rust/pull/136932 )
- [Turn order dependent trait objects future incompat warning into a
hard error](https://redirect.github.com/rust-lang/rust/pull/136968 )
- [Denote `ControlFlow` as
`#[must_use]`](https://redirect.github.com/rust-lang/rust/pull/137449 )
- [Windows: The standard library no longer links `advapi32`, except on
win7.](https://redirect.github.com/rust-lang/rust/pull/138233 ) Code such
as C libraries that were relying on this assumption may need to
explicitly link advapi32.
- [Proc macros can no longer observe expanded `cfg(true)`
attributes.](https://redirect.github.com/rust-lang/rust/pull/138844 )
- [Start changing the internal representation of pasted
tokens](https://redirect.github.com/rust-lang/rust/pull/124141 ). 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.
- [Don't allow flattened format_args in
const.](https://redirect.github.com/rust-lang/rust/pull/139624 )
<a id="1.87.0-Internal-Changes"></a>
## 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.
- [Update to LLVM
20](https://redirect.github.com/rust-lang/rust/pull/135763 )
###
[`v1.86`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1860-2025-04-03 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.85.0...1.86.0 )
\==========================
<a id="1.86.0-Language"></a>
## Language
- [Stabilize upcasting trait objects to
supertraits.](https://redirect.github.com/rust-lang/rust/pull/134367 )
- [Allow safe functions to be marked with the `#[target_feature]`
attribute.](https://redirect.github.com/rust-lang/rust/pull/134090 )
- [The `missing_abi` lint now
warns-by-default.](https://redirect.github.com/rust-lang/rust/pull/132397 )
- Rust now lints about double negations, to catch cases that might have
intended to be a prefix decrement operator (`--x`) as written in other
languages. This was previously a clippy lint, `clippy::double_neg`, and
is [now available directly in Rust as
`double_negations`.](https://redirect.github.com/rust-lang/rust/pull/126604 )
- [More pointers are now detected as definitely not-null based on their
alignment in const
eval.](https://redirect.github.com/rust-lang/rust/pull/133700 )
- [Empty `repr()` attribute applied to invalid items are now correctly
rejected.](https://redirect.github.com/rust-lang/rust/pull/133925 )
- [Inner attributes `#![test]` and `#![rustfmt::skip]` are no longer
accepted in more places than
intended.](https://redirect.github.com/rust-lang/rust/pull/134276 )
<a id="1.86.0-Compiler"></a>
## Compiler
- [Debug-assert that raw pointers are non-null on
access.](https://redirect.github.com/rust-lang/rust/pull/134424 )
- [Change `-O` to mean `-C opt-level=3` instead of `-C opt-level=2` to
match Cargo's
defaults.](https://redirect.github.com/rust-lang/rust/pull/135439 )
- [Fix emission of `overflowing_literals` under certain macro
environments.](https://redirect.github.com/rust-lang/rust/pull/136393 )
<a id="1.86.0-Platform-Support"></a>
## Platform Support
- [Replace `i686-unknown-redox` target with
`i586-unknown-redox`.](https://redirect.github.com/rust-lang/rust/pull/136698 )
- [Increase baseline CPU of `i686-unknown-hurd-gnu` to Pentium
4.](https://redirect.github.com/rust-lang/rust/pull/136700 )
- New tier 3 targets:
-
[`{aarch64-unknown,x86_64-pc}-nto-qnx710_iosock`](https://redirect.github.com/rust-lang/rust/pull/133631 ).
For supporting Neutrino QNX 7.1 with `io-socket` network stack.
-
[`{aarch64-unknown,x86_64-pc}-nto-qnx800`](https://redirect.github.com/rust-lang/rust/pull/133631 ).
For supporting Neutrino QNX 8.0 (`no_std`-only).
-
[`{x86_64,i686}-win7-windows-gnu`](https://redirect.github.com/rust-lang/rust/pull/134609 ).
Intended for backwards compatibility with Windows 7.
`{x86_64,i686}-win7-windows-msvc` are the Windows MSVC counterparts that
already exist as Tier 3 targets.
-
[`amdgcn-amd-amdhsa`](https://redirect.github.com/rust-lang/rust/pull/134740 ).
-
[`x86_64-pc-cygwin`](https://redirect.github.com/rust-lang/rust/pull/134999 ).
-
[`{mips,mipsel}-mti-none-elf`](https://redirect.github.com/rust-lang/rust/pull/135074 ).
Initial bare-metal support.
-
[`m68k-unknown-none-elf`](https://redirect.github.com/rust-lang/rust/pull/135085 ).
- [`armv7a-nuttx-{eabi,eabihf}`, `aarch64-unknown-nuttx`, and
`thumbv7a-nuttx-{eabi,eabihf}`](https://redirect.github.com/rust-lang/rust/pull/135757 ).
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.86.0-Libraries"></a>
## Libraries
- The type of `FromBytesWithNulError` in
`CStr::from_bytes_with_nul(bytes: &[u8]) -> Result<&Self,
FromBytesWithNulError>` was [changed from an opaque struct to an
enum](https://redirect.github.com/rust-lang/rust/pull/134143 ), allowing
users to examine why the conversion failed.
- [Remove `RustcDecodable` and
`RustcEncodable`.](https://redirect.github.com/rust-lang/rust/pull/134272 )
- [Deprecate libtest's `--logfile`
option.](https://redirect.github.com/rust-lang/rust/pull/134283 )
- [On recent versions of Windows, `std::fs::remove_file` will now remove
read-only
files.](https://redirect.github.com/rust-lang/rust/pull/134679 )
<a id="1.86.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`{float}::next_down`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_down )
-
[`{float}::next_up`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_up )
-
[`<[_]>::get_disjoint_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_mut )
-
[`<[_]>::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_unchecked_mut )
-
[`slice::GetDisjointMutError`](https://doc.rust-lang.org/stable/std/slice/enum.GetDisjointMutError.html )
-
[`HashMap::get_disjoint_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_mut )
-
[`HashMap::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_unchecked_mut )
-
[`NonZero::count_ones`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.count_ones )
-
[`Vec::pop_if`](https://doc.rust-lang.org/std/vec/struct.Vec.html#method.pop_if )
-
[`sync::Once::wait`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait )
-
[`sync::Once::wait_force`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait_force )
-
[`sync::OnceLock::wait`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html#method.wait )
These APIs are now stable in const contexts:
-
[`hint::black_box`](https://doc.rust-lang.org/stable/std/hint/fn.black_box.html )
-
[`io::Cursor::get_mut`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.get_mut )
-
[`io::Cursor::set_position`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.set_position )
-
[`str::is_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.is_char_boundary )
-
[`str::split_at`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at )
-
[`str::split_at_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_checked )
-
[`str::split_at_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut )
-
[`str::split_at_mut_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut_checked )
<a id="1.86.0-Cargo"></a>
## Cargo
- [When merging, replace rather than combine configuration keys that
refer to a program path and its
arguments.](https://redirect.github.com/rust-lang/cargo/pull/15066/ )
- [Error if both `--package` and `--workspace` are passed but the
requested package is
missing.](https://redirect.github.com/rust-lang/cargo/pull/15071/ ) This
was previously silently ignored, which was considered a bug since
missing packages should be reported.
- [Deprecate the token argument in `cargo login` to avoid shell history
leaks.](https://redirect.github.com/rust-lang/cargo/pull/15057/ )
- [Simplify the implementation of `SourceID`
comparisons.](https://redirect.github.com/rust-lang/cargo/pull/14980/ )
This may potentially change behavior if the canonicalized URL compares
differently in alternative registries.
<a id="1.86.0-Rustdoc"></a>
## Rustdoc
- [Add a sans-serif font
setting.](https://redirect.github.com/rust-lang/rust/pull/133636 )
<a id="1.86.0-Compatibility-Notes"></a>
## Compatibility Notes
- [The `wasm_c_abi` future compatibility warning is now a hard
error.](https://redirect.github.com/rust-lang/rust/pull/133951 )
Users of `wasm-bindgen` should upgrade to at least version 0.2.89,
otherwise compilation will fail.
- [Remove long-deprecated no-op attributes `#![no_start]` and
`#![crate_id]`.](https://redirect.github.com/rust-lang/rust/pull/134300 )
- [The future incompatibility lint `cenum_impl_drop_cast` has been made
into a hard
error.](https://redirect.github.com/rust-lang/rust/pull/135964 ) This
means it is now an error to cast a field-less enum to an integer if the
enum implements `Drop`.
- [SSE2 is now required for "i686" 32-bit x86 hard-float targets;
disabling it causes a warning that will become a hard error
eventually.](https://redirect.github.com/rust-lang/rust/pull/137037 )
To compile for pre-SSE2 32-bit x86, use a "i586" target instead.
<a id="1.86.0-Internal-Changes"></a>
## 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.
- [Build the rustc on AArch64 Linux with ThinLTO +
PGO.](https://redirect.github.com/rust-lang/rust/pull/133807 )
The ARM 64-bit compiler (AArch64) on Linux is now optimized with ThinLTO
and PGO, similar to the optimizations we have already performed for the
x86-64 compiler on Linux. This should make it up to 30% faster.
###
[`v1.85`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1851-2025-03-18 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.84.0...1.85.0 )
\==========================
<a id="1.85.1"></a>
- [Fix the doctest-merging feature of the 2024
Edition.](https://redirect.github.com/rust-lang/rust/pull/137899/ )
- [Relax some `target_feature` checks when generating
docs.](https://redirect.github.com/rust-lang/rust/pull/137632/ )
- [Fix errors in `std::fs::rename` on Windows 10, version
1607.](https://redirect.github.com/rust-lang/rust/pull/137528/ )
- [Downgrade bootstrap `cc` to fix custom
targets.](https://redirect.github.com/rust-lang/rust/pull/137460/ )
- [Skip submodule updates when building Rust from a source
tarball.](https://redirect.github.com/rust-lang/rust/pull/137338/ )
###
[`v1.84`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1841-2025-01-30 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.83.0...1.84.0 )
\==========================
<a id="1.84.1"></a>
- [Fix ICE 132920 in duplicate-crate
diagnostics.](https://redirect.github.com/rust-lang/rust/pull/133304/ )
- [Fix errors for overlapping impls in incremental
rebuilds.](https://redirect.github.com/rust-lang/rust/pull/133828/ )
- [Fix slow compilation related to the next-generation trait
solver.](https://redirect.github.com/rust-lang/rust/pull/135618/ )
- [Fix debuginfo when LLVM's location discriminator value limit is
exceeded.](https://redirect.github.com/rust-lang/rust/pull/135643/ )
- Fixes for building Rust from source:
- [Only try to distribute `llvm-objcopy` if llvm tools are
enabled.](https://redirect.github.com/rust-lang/rust/pull/134240/ )
- [Add Profile Override for Non-Git
Sources.](https://redirect.github.com/rust-lang/rust/pull/135433/ )
- [Resolve symlinks of LLVM tool binaries before copying
them.](https://redirect.github.com/rust-lang/rust/pull/135585/ )
- [Make it possible to use ci-rustc on tarball
sources.](https://redirect.github.com/rust-lang/rust/pull/135722/ )
###
[`v1.83`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1830-2024-11-28 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.82.0...1.83.0 )
\==========================
<a id="1.83.0-Language"></a>
## Language
- [Stabilize `&mut`, `*mut`, `&Cell`, and `*const Cell` in
const.](https://redirect.github.com/rust-lang/rust/pull/129195 )
- [Allow creating references to statics in `const`
initializers.](https://redirect.github.com/rust-lang/rust/pull/129759 )
- [Implement raw lifetimes and labels
(`'r#ident`).](https://redirect.github.com/rust-lang/rust/pull/126452 )
- [Define behavior when atomic and non-atomic reads
race.](https://redirect.github.com/rust-lang/rust/pull/128778 )
- [Non-exhaustive structs may now be
empty.](https://redirect.github.com/rust-lang/rust/pull/128934 )
- [Disallow implicit coercions from places of type
`!`](https://redirect.github.com/rust-lang/rust/pull/129392 )
- [`const extern` functions can now be defined for other calling
conventions.](https://redirect.github.com/rust-lang/rust/pull/129753 )
- [Stabilize `expr_2021` macro fragment specifier in all
editions.](https://redirect.github.com/rust-lang/rust/pull/129972 )
- [The `non_local_definitions` lint now fires on less code and warns by
default.](https://redirect.github.com/rust-lang/rust/pull/127117 )
<a id="1.83.0-Compiler"></a>
## Compiler
- [Deprecate unsound `-Csoft-float`
flag.](https://redirect.github.com/rust-lang/rust/pull/129897 )
- Add many new tier 3 targets:
-
[`aarch64_unknown_nto_qnx700`](https://redirect.github.com/rust-lang/rust/pull/127897 )
-
[`arm64e-apple-tvos`](https://redirect.github.com/rust-lang/rust/pull/130614 )
-
[`armv7-rtems-eabihf`](https://redirect.github.com/rust-lang/rust/pull/127021 )
-
[`loongarch64-unknown-linux-ohos`](https://redirect.github.com/rust-lang/rust/pull/130750 )
- [`riscv32-wrs-vxworks` and
`riscv64-wrs-vxworks`](https://redirect.github.com/rust-lang/rust/pull/130549 )
-
[`riscv32{e|em|emc}-unknown-none-elf`](https://redirect.github.com/rust-lang/rust/pull/130555 )
-
[`x86_64-unknown-hurd-gnu`](https://redirect.github.com/rust-lang/rust/pull/128345 )
-
[`x86_64-unknown-trusty`](https://redirect.github.com/rust-lang/rust/pull/130453 )
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.83.0-Libraries"></a>
## Libraries
- [Implement `PartialEq` for
`ExitCode`.](https://redirect.github.com/rust-lang/rust/pull/127633 )
- [Document that `catch_unwind` can deal with foreign exceptions without
UB, although the exact behavior is
unspecified.](https://redirect.github.com/rust-lang/rust/pull/128321 )
- [Implement `Default` for `HashMap`/`HashSet` iterators that don't
already have
it.](https://redirect.github.com/rust-lang/rust/pull/128711 )
- [Bump Unicode to version
16.0.0.](https://redirect.github.com/rust-lang/rust/pull/130183 )
- [Change documentation of `ptr::add`/`sub` to not claim equivalence
with `offset`.](https://redirect.github.com/rust-lang/rust/pull/130229 )
<a id="1.83.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`BufRead::skip_until`](https://doc.rust-lang.org/stable/std/io/trait.BufRead.html#method.skip_until )
-
[`ControlFlow::break_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.break_value )
-
[`ControlFlow::continue_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.continue_value )
-
[`ControlFlow::map_break`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_break )
-
[`ControlFlow::map_continue`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_continue )
-
[`DebugList::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugList.html#method.finish_non_exhaustive )
-
[`DebugMap::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugMap.html#method.finish_non_exhaustive )
-
[`DebugSet::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugSet.html#method.finish_non_exhaustive )
-
[`DebugTuple::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugTuple.html#method.finish_non_exhaustive )
-
[`ErrorKind::ArgumentListTooLong`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ArgumentListTooLong )
-
[`ErrorKind::Deadlock`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.Deadlock )
-
[`ErrorKind::DirectoryNotEmpty`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.DirectoryNotEmpty )
-
[`ErrorKind::ExecutableFileBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ExecutableFileBusy )
-
[`ErrorKind::FileTooLarge`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.FileTooLarge )
-
[`ErrorKind::HostUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.HostUnreachable )
-
[`ErrorKind::IsADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.IsADirectory )
-
[`ErrorKind::NetworkDown`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkDown )
-
[`ErrorKind::NetworkUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkUnreachable )
-
[`ErrorKind::NotADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotADirectory )
-
[`ErrorKind::NotSeekable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotSeekable )
-
[`ErrorKind::ReadOnlyFilesystem`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ReadOnlyFilesystem )
-
[`ErrorKind::ResourceBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ResourceBusy )
-
[`ErrorKind::StaleNetworkFileHandle`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StaleNetworkFileHandle )
-
[`ErrorKind::StorageFull`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StorageFull )
-
[`ErrorKind::TooManyLinks`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.TooManyLinks )
-
[`Option::get_or_insert_default`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.get_or_insert_default )
-
[`Waker::data`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.data )
-
[`Waker::new`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.new )
-
[`Waker::vtable`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.vtable )
-
[`char::MIN`](https://doc.rust-lang.org/stable/core/primitive.char.html#associatedconstant.MIN )
-
[`hash_map::Entry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/enum.Entry.html#method.insert_entry )
-
[`hash_map::VacantEntry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/struct.VacantEntry.html#method.insert_entry )
These APIs are now stable in const contexts:
-
[`Cell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.Cell.html#method.into_inner )
-
[`Duration::as_secs_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f32 )
-
[`Duration::as_secs_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f64 )
-
[`Duration::div_duration_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f32 )
-
[`Duration::div_duration_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f64 )
-
[`MaybeUninit::as_mut_ptr`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.as_mut_ptr )
-
[`NonNull::as_mut`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.as_mut )
-
[`NonNull::copy_from`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from )
-
[`NonNull::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from_nonoverlapping )
-
[`NonNull::copy_to`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to )
-
[`NonNull::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to_nonoverlapping )
-
[`NonNull::slice_from_raw_parts`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.slice_from_raw_parts )
-
[`NonNull::write`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write )
-
[`NonNull::write_bytes`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_bytes )
-
[`NonNull::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_unaligned )
-
[`OnceCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.OnceCell.html#method.into_inner )
-
[`Option::as_mut`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_mut )
-
[`Option::expect`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.expect )
-
[`Option::replace`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.replace )
-
[`Option::take`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.take )
-
[`Option::unwrap`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap )
-
[`Option::unwrap_unchecked`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap_unchecked )
-
[`Option::<&_>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied )
- [`Option::<&mut
_>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied-1 )
-
[`Option::<Option<_>>::flatten`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.flatten )
- [`Option::<Result<_,
_>>::transpose`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.transpose )
-
[`RefCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.RefCell.html#method.into_inner )
-
[`Result::as_mut`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.as_mut )
- [`Result::<&_,
_>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied )
- [`Result::<&mut _,
_>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied-1 )
- [`Result::<Option<_>,
_>::transpose`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.transpose )
-
[`UnsafeCell::get_mut`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.get_mut )
-
[`UnsafeCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.into_inner )
-
[`array::from_mut`](https://doc.rust-lang.org/stable/core/array/fn.from_mut.html )
-
[`char::encode_utf8`](https://doc.rust-lang.org/stable/core/primitive.char.html#method.encode_utf8 )
-
[`{float}::classify`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.classify )
-
[`{float}::is_finite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_finite )
-
[`{float}::is_infinite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_infinite )
-
[`{float}::is_nan`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_nan )
-
[`{float}::is_normal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_normal )
-
[`{float}::is_sign_negative`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_negative )
-
[`{float}::is_sign_positive`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_positive )
-
[`{float}::is_subnormal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_subnormal )
-
[`{float}::from_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_bits )
-
[`{float}::from_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_be_bytes )
-
[`{float}::from_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_le_bytes )
-
[`{float}::from_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_ne_bytes )
-
[`{float}::to_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_bits )
-
[`{float}::to_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_be_bytes )
-
[`{float}::to_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_le_bytes )
-
[`{float}::to_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_ne_bytes )
-
[`mem::replace`](https://doc.rust-lang.org/stable/core/mem/fn.replace.html )
-
[`ptr::replace`](https://doc.rust-lang.org/stable/core/ptr/fn.replace.html )
-
[`ptr::slice_from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.slice_from_raw_parts_mut.html )
-
[`ptr::write`](https://doc.rust-lang.org/stable/core/ptr/fn.write.html )
-
[`ptr::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/fn.write_unaligned.html )
- [`<*const
_>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to )
- [`<*const
_>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping )
- [`<*mut
_>::copy_from`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from )
- [`<*mut
_>::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from_nonoverlapping )
- [`<*mut
_>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to-1 )
- [`<*mut
_>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping-1 )
- [`<*mut
_>::write`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write )
- [`<*mut
_>::write_bytes`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_bytes )
- [`<*mut
_>::write_unaligned`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_unaligned )
-
[`slice::from_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_mut.html )
-
[`slice::from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_raw_parts_mut.html )
-
[`<[_]>::first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_mut )
-
[`<[_]>::last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_mut )
-
[`<[_]>::first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_chunk_mut )
-
[`<[_]>::last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_chunk_mut )
-
[`<[_]>::split_at_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut )
-
[`<[_]>::split_at_mut_checked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_checked )
-
[`<[_]>::split_at_mut_unchecked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_unchecked )
-
[`<[_]>::split_first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_mut )
-
[`<[_]>::split_last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_mut )
-
[`<[_]>::split_first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_chunk_mut )
-
[`<[_]>::split_last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_chunk_mut )
-
[`str::as_bytes_mut`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_bytes_mut )
-
[`str::as_mut_ptr`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_mut_ptr )
-
[`str::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/core/str/fn.from_utf8\_unchecked_mut.html )
<a id="1.83.0-Cargo"></a>
## Cargo
- [Introduced a new `CARGO_MANIFEST_PATH` environment variable, similar
to `CARGO_MANIFEST_DIR` but pointing directly to the manifest
file.](https://redirect.github.com/rust-lang/cargo/pull/14404/ )
- [Added `package.autolib` to the manifest, allowing `[lib]`
auto-discovery to be
disabled.](https://redirect.github.com/rust-lang/cargo/pull/14591/ )
- [Declare support level for each crate in Cargo's Charter / crate
docs.](https://redirect.github.com/rust-lang/cargo/pull/14600/ )
- [Declare new Intentional Artifacts as 'small'
changes.](https://redirect.github.com/rust-lang/cargo/pull/14599/ )
<a id="1.83-Rustdoc"></a>
## Rustdoc
- [The sidebar / hamburger menu table of contents now includes the `#
headers` from the main item's doc
comment](https://redirect.github.com/rust-lang/rust/pull/120736 ). This
is similar to a third-party feature provided by the
rustdoc-search-enhancements browser extension.
<a id="1.83.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Warn against function pointers using unsupported ABI
strings.](https://redirect.github.com/rust-lang/rust/pull/128784 )
- [Check well-formedness of the source type's signature in fn pointer
casts.](https://redirect.github.com/rust-lang/rust/pull/129021 ) This
partly closes a soundness hole that comes when casting a function item
to function pointer
- [Use equality instead of subtyping when resolving type dependent
paths.](https://redirect.github.com/rust-lang/rust/pull/129073 )
- Linking on macOS now correctly includes Rust's default deployment
target. Due to a linker bug, you might have to pass
`MACOSX_DEPLOYMENT_TARGET` or fix your `#[link]` attributes to point to
the correct frameworks. See
[#​129369](https://redirect.github.com/rust-lang/rust/pull/129369 ).
- [Rust will now correctly raise an error for `repr(Rust)` written on
non-`struct`/`enum`/`union` items, since it previous did not have any
effect.](https://redirect.github.com/rust-lang/rust/pull/129422 )
- The future incompatibility lint `deprecated_cfg_attr_crate_type_name`
[has been made into a hard
error](https://redirect.github.com/rust-lang/rust/pull/129670 ). It was
used to deny usage of `#![crate_type]` and `#![crate_name]` attributes
in `#![cfg_attr]`, which required a hack in the compiler to be able to
change the used crate type and crate name after cfg expansion.
Users can use `--crate-type` instead of `#![cfg_attr(..., crate_type =
"...")]` and `--crate-name` instead of `#![cfg_attr(..., crate_name =
"...")]` when running `rustc`/`cargo rustc` on the command line.
Use of those two attributes outside of `#![cfg_attr]` continue to be
fully supported.
- Until now, paths into the sysroot were always prefixed with
`/rustc/$hash` in diagnostics, codegen, backtrace, e.g.
thread 'main' panicked at 'hello world', map-panic.rs:2:50
stack backtrace:
0: std::panicking::begin_panic
at
/rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:616:12
1: map_panic::main::{{closure}}
at ./map-panic.rs:2:50
2: core::option::Option<T>::map
at
/rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/option.rs:929:29
3: map_panic::main
at ./map-panic.rs:2:30
4: core::ops::function::FnOnce::call_once
at
/rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/ops/function.rs:248:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a
verbose backtrace.
[RFC 3127
said](https://rust-lang.github.io/rfcs/3127-trim-paths.html#changing-handling-of-sysroot-path-in-rustc )
> We want to change this behaviour such that, when `rust-src` source
files can be discovered, the virtual path is discarded and therefore the
local path will be embedded, unless there is a `--remap-path-prefix`
that causes this local path to be remapped in the usual way.
[#​129687](https://redirect.github.com/rust-lang/rust/pull/129687 )
implements this behaviour, when `rust-src` is present at compile time,
`rustc` replaces `/rustc/$hash` with a real path into the local
`rust-src` component with best effort.
To sanitize this, users must explicitly supply
`--remap-path-prefix=<path to rust-src>=foo` or not have the `rust-src`
component installed.
- The allow-by-default `missing_docs` lint used to disable itself when
invoked through `rustc --test`/`cargo test`, resulting in
`#[expect(missing_docs)]` emitting false positives due to the
expectation being wrongly unfulfilled. This behavior [has now been
removed](https://redirect.github.com/rust-lang/rust/pull/130025 ), which
allows `#[expect(missing_docs)]` to be fulfilled in all scenarios, but
will also report new `missing_docs` diagnostics for publicly reachable
`#[cfg(test)]` items, [integration
test](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests )
crate-level documentation, and publicly reachable items in integration
tests.
- [The `armv8r-none-eabihf` target now uses the Armv8-R required set of
floating-point
features.](https://redirect.github.com/rust-lang/rust/pull/130295 )
- [Fix a soundness bug where rustc wouldn't detect unconstrained
higher-ranked lifetimes in a `dyn Trait`'s associated types that occur
due to
supertraits.](https://redirect.github.com/rust-lang/rust/pull/130367 )
- [Update the minimum external LLVM version to
18.](https://redirect.github.com/rust-lang/rust/pull/130487 )
- [Remove `aarch64-fuchsia` and `x86_64-fuchsia` target aliases in favor
of `aarch64-unknown-fuchsia` and `x86_64-unknown-fuchsia`
respectively.](https://redirect.github.com/rust-lang/rust/pull/130657 )
- [The ABI-level exception class of a Rust panic is now encoded with
native-endian bytes, so it is legible in hex
dumps.](https://redirect.github.com/rust-lang/rust/pull/130897 )
- [Visual Studio 2013 is no longer supported for MSVC
targets.](https://redirect.github.com/rust-lang/rust/pull/131070 )
- [The sysroot no longer contains the `std` dynamic library in its
top-level `lib/`
dir.](https://redirect.github.com/rust-lang/rust/pull/131188 )
###
[`v1.82`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1820-2024-10-17 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.81.0...1.82.0 )
\==========================
<a id="1.82.0-Language"></a>
## Language
- [Don't make statement nonterminals match pattern
nonterminals](https://redirect.github.com/rust-lang/rust/pull/120221/ )
- [Patterns matching empty types can now be omitted in common
cases](https://redirect.github.com/rust-lang/rust/pull/122792 )
- [Enforce supertrait outlives obligations when using trait
impls](https://redirect.github.com/rust-lang/rust/pull/124336 )
- [`addr_of(_mut)!` macros and the newly stabilized `&raw (const|mut)`
are now safe to use with all static
items](https://redirect.github.com/rust-lang/rust/pull/125834 )
- [size_of_val_raw: for length 0 this is safe to
call](https://redirect.github.com/rust-lang/rust/pull/126152/ )
- [Reorder trait bound modifiers *after* `for<...>` binder in trait
bounds](https://redirect.github.com/rust-lang/rust/pull/127054/ )
- [Stabilize `+ use<'lt>` opaque type precise capturing (RFC
3617)](https://redirect.github.com/rust-lang/rust/pull/127672 )
- [Stabilize `&raw const` and `&raw mut` operators (RFC
2582)](https://redirect.github.com/rust-lang/rust/pull/127679 )
- [Stabilize unsafe extern blocks (RFC
3484)](https://redirect.github.com/rust-lang/rust/pull/127921 )
- [Stabilize nested field access in
`offset_of!`](https://redirect.github.com/rust-lang/rust/pull/128284 )
- [Do not require `T` to be live when dropping `[T;
0]`](https://redirect.github.com/rust-lang/rust/pull/128438 )
- [Stabilize `const` operands in inline
assembly](https://redirect.github.com/rust-lang/rust/pull/128570 )
- [Stabilize floating-point arithmetic in `const
fn`](https://redirect.github.com/rust-lang/rust/pull/128596 )
- [Stabilize explicit opt-in to unsafe
attributes](https://redirect.github.com/rust-lang/rust/pull/128771 )
- [Document NaN bit patterns
guarantees](https://redirect.github.com/rust-lang/rust/pull/129559 )
<a id="1.82.0-Compiler"></a>
## Compiler
- [Promote riscv64gc-unknown-linux-musl to tier
2](https://redirect.github.com/rust-lang/rust/pull/122049 )
- [Promote Mac Catalyst targets `aarch64-apple-ios-macabi` and
`x86_64-apple-ios-macabi` to Tier 2, and ship them with
rustup](https://redirect.github.com/rust-lang/rust/pull/126450 )
- [Add tier 3 NuttX based targets for RISC-V and
ARM](https://redirect.github.com/rust-lang/rust/pull/127755 )
- [Add tier 3 powerpc-unknown-linux-muslspe
target](https://redirect.github.com/rust-lang/rust/pull/127905 )
- [Improved diagnostics to explain why a pattern is
unreachable](https://redirect.github.com/rust-lang/rust/pull/128034 )
- [The compiler now triggers the unreachable code warning properly for
async functions that don't return/are `->
!`](https://redirect.github.com/rust-lang/rust/pull/128443 )
- [Promote `aarch64-apple-darwin` to Tier
1](https://redirect.github.com/rust-lang/rust/pull/128592 )
- [Add Trusty OS target `aarch64-unknown-trusty` and
`armv7-unknown-trusty` as tier 3
targets](https://redirect.github.com/rust-lang/rust/pull/129490 )
- [Promote `wasm32-wasip2` to Tier
2.](https://redirect.github.com/rust-lang/rust/pull/126967/ )
<a id="1.82.0-Libraries"></a>
## Libraries
- [Generalize `{Rc,Arc}::make_mut()` to `Path`, `OsStr`, and
`CStr`.](https://redirect.github.com/rust-lang/rust/pull/126877 )
<a id="1.82.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`std::thread::Builder::spawn_unchecked`](https://doc.rust-lang.org/stable/std/thread/struct.Builder.html#method.spawn_unchecked )
-
[`std::str::CharIndices::offset`](https://doc.rust-lang.org/nightly/std/str/struct.CharIndices.html#method.offset )
-
[`std::option::Option::is_none_or`](https://doc.rust-lang.org/nightly/std/option/enum.Option.html#method.is_none_or )
-
[`[T]::is_sorted`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted )
-
[`[T]::is_sorted_by`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted_by )
-
[`[T]::is_sorted_by_key`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted_by_key )
-
[`Iterator::is_sorted`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted )
-
[`Iterator::is_sorted_by`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted_by )
-
[`Iterator::is_sorted_by_key`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted_by_key )
-
[`std::future::Ready::into_inner`](https://doc.rust-lang.org/nightly/std/future/struct.Ready.html#method.into_inner )
-
[`std::iter::repeat_n`](https://doc.rust-lang.org/nightly/std/iter/fn.repeat_n.html )
- [`impl<T: Clone> DoubleEndedIterator for
Take<Repeat<T>>`](https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-DoubleEndedIterator-for-Take%3CRepeat%3CT%3E%3E )
- [`impl<T: Clone> ExactSizeIterator for
Take<Repeat<T>>`](https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeat%3CT%3E%3E )
- [`impl<T: Clone> ExactSizeIterator for
Take<RepeatWith<T>>`](https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeatWith%3CF%3E%3E )
- [`impl Default for
std::collections::binary_heap::Iter`](https://doc.rust-lang.org/nightly/std/collections/binary_heap/struct.Iter.html#impl-Default-for-Iter%3C'\_,+T%3E )
- [`impl Default for
std::collections::btree_map::RangeMut`](https://doc.rust-lang.org/nightly/std/collections/btree_map/struct.RangeMut.html#impl-Default-for-RangeMut%3C'\_,+K,+V%3E )
- [`impl Default for
std::collections::btree_map::ValuesMut`](https://doc.rust-lang.org/nightly/std/collections/btree_map/struct.ValuesMut.html#impl-Default-for-ValuesMut%3C'\_,+K,+V%3E )
- [`impl Default for
std::collections::vec_deque::Iter`](https://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.Iter.html#impl-Default-for-Iter%3C'\_,+T%3E )
- [`impl Default for
std::collections::vec_deque::IterMut`](https://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.IterMut.html#impl-Default-for-IterMut%3C'\_,+T%3E )
-
[`Rc<T>::new_uninit`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.new_uninit )
-
[`Rc<MaybeUninit<T>>::assume_init`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.assume_init )
-
[`Rc<[T]>::new_uninit_slice`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.new_uninit_slice )
-
[`Rc<[MaybeUninit<T>]>::assume_init`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.assume_init-1 )
-
[`Arc<T>::new_uninit`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.new_uninit )
-
[`Arc<MaybeUninit<T>>::assume_init`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.assume_init )
-
[`Arc<[T]>::new_uninit_slice`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.new_uninit_slice )
-
[`Arc<[MaybeUninit<T>]>::assume_init`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.assume_init-1 )
-
[`Box<T>::new_uninit`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.new_uninit )
-
[`Box<MaybeUninit<T>>::assume_init`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.assume_init )
-
[`Box<[T]>::new_uninit_slice`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.new_uninit_slice )
-
[`Box<[MaybeUninit<T>]>::assume_init`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.assume_init-1 )
-
[`core::arch::x86_64::_bextri_u64`](https://doc.rust-lang.org/stable/core/arch/x86\_64/fn.\_bextri_u64.html )
-
[`core::arch::x86_64::_bextri_u32`](https://doc.rust-lang.org/stable/core/arch/x86\_64/fn.\_bextri_u32.html )
-
[`core::arch::x86::_mm_broadcastsi128_si256`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_broadcastsi128\_si256.html )
-
[`core::arch::x86::_mm256_stream_load_si256`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm256\_stream_load_si256.html )
-
[`core::arch::x86::_tzcnt_u16`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_tzcnt_u16.html )
-
[`core::arch::x86::_mm_extracti_si64`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_extracti_si64.html )
-
[`core::arch::x86::_mm_inserti_si64`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_inserti_si64.html )
-
[`core::arch::x86::_mm_storeu_si16`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_storeu_si16.html )
-
[`core::arch::x86::_mm_storeu_si32`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_storeu_si32.html )
-
[`core::arch::x86::_mm_storeu_si64`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_storeu_si64.html )
-
[`core::arch::x86::_mm_loadu_si16`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_loadu_si16.html )
-
[`core::arch::x86::_mm_loadu_si32`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_loadu_si32.html )
-
[`core::arch::wasm32::u8x16_relaxed_swizzle`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u8x16\_relaxed_swizzle.html )
-
[`core::arch::wasm32::i8x16_relaxed_swizzle`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i8x16\_relaxed_swizzle.html )
-
[`core::arch::wasm32::i32x4_relaxed_trunc_f32x4`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4\_relaxed_trunc_f32x4.html )
-
[`core::arch::wasm32::u32x4_relaxed_trunc_f32x4`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4\_relaxed_trunc_f32x4.html )
-
[`core::arch::wasm32::i32x4_relaxed_trunc_f64x2_zero`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4\_relaxed_trunc_f64x2\_zero.html )
-
[`core::arch::wasm32::u32x4_relaxed_trunc_f64x2_zero`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4\_relaxed_trunc_f64x2\_zero.html )
-
[`core::arch::wasm32::f32x4_relaxed_madd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4\_relaxed_madd.html )
-
[`core::arch::wasm32::f32x4_relaxed_nmadd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4\_relaxed_nmadd.html )
-
[`core::arch::wasm32::f64x2_relaxed_madd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2\_relaxed_madd.html )
-
[`core::arch::wasm32::f64x2_relaxed_nmadd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2\_relaxed_nmadd.html )
-
[`core::arch::wasm32::i8x16_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i8x16\_relaxed_laneselect.html )
-
[`core::arch::wasm32::u8x16_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u8x16\_relaxed_laneselect.html )
-
[`core::arch::wasm32::i16x8_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8\_relaxed_laneselect.html )
-
[`core::arch::wasm32::u16x8_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8\_relaxed_laneselect.html )
-
[`core::arch::wasm32::i32x4_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4\_relaxed_laneselect.html )
-
[`core::arch::wasm32::u32x4_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4\_relaxed_laneselect.html )
-
[`core::arch::wasm32::i64x2_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i64x2\_relaxed_laneselect.html )
-
[`core::arch::wasm32::u64x2_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u64x2\_relaxed_laneselect.html )
-
[`core::arch::wasm32::f32x4_relaxed_min`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4\_relaxed_min.htm
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/epage/_rust ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjEuMCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-02 17:31:33 +00:00
renovate[bot]
d1a6f2cfc4
chore(deps): Update Rust Stable to v1.87 ( #1299 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://redirect.github.com/rust-lang/rust ) | minor | `1.86`
-> `1.87` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.87`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1870-2025-05-15 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.86.0...1.87.0 )
\==========================
<a id="1.87.0-Language"></a>
## Language
- [Stabilize `asm_goto`
feature](https://redirect.github.com/rust-lang/rust/pull/133870 )
- [Allow parsing open beginning ranges (`..EXPR`) after unary operators
`!`, `-`, and
`*`](https://redirect.github.com/rust-lang/rust/pull/134900 ).
- [Don't require method impls for methods with `Self: Sized` bounds in
`impl`s for unsized
types](https://redirect.github.com/rust-lang/rust/pull/135480 )
- [Stabilize `feature(precise_capturing_in_traits)` allowing `use<...>`
bounds on return position `impl Trait` in
`trait`s](https://redirect.github.com/rust-lang/rust/pull/138128 )
<a id="1.87.0-Compiler"></a>
## Compiler
- [x86: make SSE2 required for i686 targets and use it to pass SIMD
types](https://redirect.github.com/rust-lang/rust/pull/135408 )
<a id="1.87.0-Platform-Support"></a>
## Platform Support
- [Remove `i586-pc-windows-msvc`
target](https://redirect.github.com/rust-lang/rust/pull/137957 )
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
<a id="1.87.0-Libraries"></a>
## Libraries
- [Stabilize the anonymous pipe
API](https://redirect.github.com/rust-lang/rust/issues/127154 )
- [Add support for unbounded left/right shift
operations](https://redirect.github.com/rust-lang/rust/issues/129375 )
- [Print pointer metadata in `Debug` impl of raw
pointers](https://redirect.github.com/rust-lang/rust/pull/135080 )
- [`Vec::with_capacity` guarantees it allocates with the amount
requested, even if `Vec::capacity` returns a different
number.](https://redirect.github.com/rust-lang/rust/pull/135933 )
- Most `std::arch` intrinsics which don't take pointer arguments can now
be called from safe code if the caller has the appropriate target
features already enabled
([https://github.com/rust-lang/stdarch/pull/1714 ](https://redirect.github.com/rust-lang/stdarch/pull/1714 ),
[https://github.com/rust-lang/stdarch/pull/1716 ](https://redirect.github.com/rust-lang/stdarch/pull/1716 ),
[https://github.com/rust-lang/stdarch/pull/1717 ](https://redirect.github.com/rust-lang/stdarch/pull/1717 ))
- [Undeprecate
`env::home_dir`](https://redirect.github.com/rust-lang/rust/pull/137327 )
- [Denote `ControlFlow` as
`#[must_use]`](https://redirect.github.com/rust-lang/rust/pull/137449 )
- [Macros such as `assert_eq!` and `vec!` now support `const {...}`
expressions](https://redirect.github.com/rust-lang/rust/pull/138162 )
<a id="1.87.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`Vec::extract_if`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.extract_if )
-
[`vec::ExtractIf`](https://doc.rust-lang.org/stable/std/vec/struct.ExtractIf.html )
-
[`LinkedList::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.LinkedList.html#method.extract_if )
-
[`linked_list::ExtractIf`](https://doc.rust-lang.org/stable/std/collections/linked_list/struct.ExtractIf.html )
-
[`<[T]>::split_off`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off )
-
[`<[T]>::split_off_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_mut )
-
[`<[T]>::split_off_first`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first )
-
[`<[T]>::split_off_first_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first_mut )
-
[`<[T]>::split_off_last`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last )
-
[`<[T]>::split_off_last_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last_mut )
-
[`String::extend_from_within`](https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.extend_from_within )
-
[`os_str::Display`](https://doc.rust-lang.org/stable/std/ffi/os_str/struct.Display.html )
-
[`OsString::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.display )
-
[`OsStr::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.display )
- [`io::pipe`](https://doc.rust-lang.org/stable/std/io/fn.pipe.html )
-
[`io::PipeReader`](https://doc.rust-lang.org/stable/std/io/struct.PipeReader.html )
-
[`io::PipeWriter`](https://doc.rust-lang.org/stable/std/io/struct.PipeWriter.html )
- [`impl From<PipeReader> for
OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle )
- [`impl From<PipeWriter> for
OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle )
- [`impl From<PipeReader> for
Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html )
- [`impl From<PipeWriter> for
Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio )
- [`impl From<PipeReader> for
OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd )
- [`impl From<PipeWriter> for
OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd )
-
[`Box<MaybeUninit<T>>::write`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.write )
- [`impl TryFrom<Vec<u8>> for
String`](https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String )
- [`<*const
T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned )
- [`<*const
T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned )
- [`<*mut
T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned-1 )
- [`<*mut
T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned-1 )
-
[`NonNull::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.offset_from_unsigned )
-
[`NonNull::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned )
-
[`<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.cast_signed )
-
[`NonZero::<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_signed-5 ).
-
[`<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.cast_unsigned ).
-
[`NonZero::<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_unsigned-5 ).
-
[`<uN>::is_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.is_multiple_of )
-
[`<uN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shl )
-
[`<uN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shr )
-
[`<iN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shl )
-
[`<iN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shr )
-
[`<iN>::midpoint`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.midpoint )
-
[`<str>::from_utf8`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8 )
-
[`<str>::from_utf8_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8\_mut )
-
[`<str>::from_utf8_unchecked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8\_unchecked )
-
[`<str>::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8\_unchecked_mut )
These previously stable APIs are now stable in const contexts:
-
[`core::str::from_utf8_mut`](https://doc.rust-lang.org/stable/std/str/fn.from_utf8\_mut.html )
-
[`<[T]>::copy_from_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.copy_from_slice )
-
[`SocketAddr::set_ip`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_ip )
-
[`SocketAddr::set_port`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_port ),
-
[`SocketAddrV4::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_ip )
-
[`SocketAddrV4::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_port ),
-
[`SocketAddrV6::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_ip )
-
[`SocketAddrV6::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_port )
-
[`SocketAddrV6::set_flowinfo`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_flowinfo )
-
[`SocketAddrV6::set_scope_id`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_scope_id )
-
[`char::is_digit`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_digit )
-
[`char::is_whitespace`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_whitespace )
- [`<[[T;
N]]>::as_flattened`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened )
- [`<[[T;
N]]>::as_flattened_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened_mut )
-
[`String::into_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_bytes )
-
[`String::as_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_str )
-
[`String::capacity`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.capacity )
-
[`String::as_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_bytes )
-
[`String::len`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.len )
-
[`String::is_empty`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.is_empty )
-
[`String::as_mut_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_str )
-
[`String::as_mut_vec`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_vec )
-
[`Vec::as_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_ptr )
-
[`Vec::as_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_slice )
-
[`Vec::capacity`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.capacity )
-
[`Vec::len`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.len )
-
[`Vec::is_empty`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.is_empty )
-
[`Vec::as_mut_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_slice )
-
[`Vec::as_mut_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_ptr )
<a id="1.87.0-Cargo"></a>
## Cargo
- [Add terminal integration via ANSI OSC 9;4
sequences](https://redirect.github.com/rust-lang/cargo/pull/14615/ )
- [chore: bump openssl to
v3](https://redirect.github.com/rust-lang/cargo/pull/15232/ )
- [feat(package): add --exclude-lockfile
flag](https://redirect.github.com/rust-lang/cargo/pull/15234/ )
<a id="1.87.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Rust now raises an error for macro invocations inside the
`#![crate_name]`
attribute](https://redirect.github.com/rust-lang/rust/pull/127581 )
- [Unstable fields are now always considered to be
inhabited](https://redirect.github.com/rust-lang/rust/pull/133889 )
- [Macro arguments of unary operators followed by open beginning ranges
may now be matched
differently](https://redirect.github.com/rust-lang/rust/pull/134900 )
- [Make `Debug` impl of raw pointers print metadata if
present](https://redirect.github.com/rust-lang/rust/pull/135080 )
- [Warn against function pointers using unsupported ABI strings in
dependencies](https://redirect.github.com/rust-lang/rust/pull/135767 )
- [Associated types on `dyn` types are no longer
deduplicated](https://redirect.github.com/rust-lang/rust/pull/136458 )
- [Forbid attributes on `..` inside of struct patterns (`let Struct {
#[attribute] .. })
=`](https://redirect.github.com/rust-lang/rust/pull/136490 )
- [Make `ptr_cast_add_auto_to_object` lint into hard
error](https://redirect.github.com/rust-lang/rust/pull/136764 )
- Many `std::arch` intrinsics are now safe to call in some contexts,
there may now be new `unused_unsafe` warnings in existing codebases.
- [Limit `width` and `precision` formatting options to 16 bits on all
targets](https://redirect.github.com/rust-lang/rust/pull/136932 )
- [Turn order dependent trait objects future incompat warning into a
hard error](https://redirect.github.com/rust-lang/rust/pull/136968 )
- [Denote `ControlFlow` as
`#[must_use]`](https://redirect.github.com/rust-lang/rust/pull/137449 )
- [Windows: The standard library no longer links `advapi32`, except on
win7.](https://redirect.github.com/rust-lang/rust/pull/138233 ) Code such
as C libraries that were relying on this assumption may need to
explicitly link advapi32.
- [Proc macros can no longer observe expanded `cfg(true)`
attributes.](https://redirect.github.com/rust-lang/rust/pull/138844 )
- [Start changing the internal representation of pasted
tokens](https://redirect.github.com/rust-lang/rust/pull/124141 ). 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.
- [Don't allow flattened format_args in
const.](https://redirect.github.com/rust-lang/rust/pull/139624 )
<a id="1.87.0-Internal-Changes"></a>
## 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.
- [Update to LLVM
20](https://redirect.github.com/rust-lang/rust/pull/135763 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/crate-ci/typos ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-16 16:43:55 +00:00
Ed Page
8c5c6ad69f
chore: Fix regex for renovatebot
2025-05-07 14:06:57 -05:00
Ed Page
d1a562756a
chore: Update RenovateBot
2025-05-07 08:42:54 -05:00
Ed Page
97755b3c01
chore(ci): Improve perf at the cost of coverage
2025-04-30 20:07:18 -05:00
Ed Page
6f0717a519
chore(gh): Clarify data format justification
2025-04-14 10:50:36 -05:00
Ed Page
06061d8558
chore(ci): Report more results
2025-04-10 11:35:50 -05:00
renovate[bot]
39c73d3922
chore(deps): Update Rust Stable to v1.86 ( #1270 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://redirect.github.com/rust-lang/rust ) | minor | `1.85`
-> `1.86` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.86`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1860-2025-04-03 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.85.0...1.86.0 )
\==========================
<a id="1.86.0-Language"></a>
## Language
- [Stabilize upcasting trait objects to
supertraits.](https://redirect.github.com/rust-lang/rust/pull/134367 )
- [Allow safe functions to be marked with the `#[target_feature]`
attribute.](https://redirect.github.com/rust-lang/rust/pull/134090 )
- [The `missing_abi` lint now
warns-by-default.](https://redirect.github.com/rust-lang/rust/pull/132397 )
- Rust now lints about double negations, to catch cases that might have
intended to be a prefix decrement operator (`--x`) as written in other
languages. This was previously a clippy lint, `clippy::double_neg`, and
is [now available directly in Rust as
`double_negations`.](https://redirect.github.com/rust-lang/rust/pull/126604 )
- [More pointers are now detected as definitely not-null based on their
alignment in const
eval.](https://redirect.github.com/rust-lang/rust/pull/133700 )
- [Empty `repr()` attribute applied to invalid items are now correctly
rejected.](https://redirect.github.com/rust-lang/rust/pull/133925 )
- [Inner attributes `#![test]` and `#![rustfmt::skip]` are no longer
accepted in more places than
intended.](https://redirect.github.com/rust-lang/rust/pull/134276 )
<a id="1.86.0-Compiler"></a>
## Compiler
- [Debug-assert that raw pointers are non-null on
access.](https://redirect.github.com/rust-lang/rust/pull/134424 )
- [Change `-O` to mean `-C opt-level=3` instead of `-C opt-level=2` to
match Cargo's
defaults.](https://redirect.github.com/rust-lang/rust/pull/135439 )
- [Fix emission of `overflowing_literals` under certain macro
environments.](https://redirect.github.com/rust-lang/rust/pull/136393 )
<a id="1.86.0-Platform-Support"></a>
## Platform Support
- [Replace `i686-unknown-redox` target with
`i586-unknown-redox`.](https://redirect.github.com/rust-lang/rust/pull/136698 )
- [Increase baseline CPU of `i686-unknown-hurd-gnu` to Pentium
4.](https://redirect.github.com/rust-lang/rust/pull/136700 )
- New tier 3 targets:
-
[`{aarch64-unknown,x86_64-pc}-nto-qnx710_iosock`](https://redirect.github.com/rust-lang/rust/pull/133631 ).
For supporting Neutrino QNX 7.1 with `io-socket` network stack.
-
[`{aarch64-unknown,x86_64-pc}-nto-qnx800`](https://redirect.github.com/rust-lang/rust/pull/133631 ).
For supporting Neutrino QNX 8.0 (`no_std`-only).
-
[`{x86_64,i686}-win7-windows-gnu`](https://redirect.github.com/rust-lang/rust/pull/134609 ).
Intended for backwards compatibility with Windows 7.
`{x86_64,i686}-win7-windows-msvc` are the Windows MSVC counterparts that
already exist as Tier 3 targets.
-
[`amdgcn-amd-amdhsa`](https://redirect.github.com/rust-lang/rust/pull/134740 ).
-
[`x86_64-pc-cygwin`](https://redirect.github.com/rust-lang/rust/pull/134999 ).
-
[`{mips,mipsel}-mti-none-elf`](https://redirect.github.com/rust-lang/rust/pull/135074 ).
Initial bare-metal support.
-
[`m68k-unknown-none-elf`](https://redirect.github.com/rust-lang/rust/pull/135085 ).
- [`armv7a-nuttx-{eabi,eabihf}`, `aarch64-unknown-nuttx`, and
`thumbv7a-nuttx-{eabi,eabihf}`](https://redirect.github.com/rust-lang/rust/pull/135757 ).
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.86.0-Libraries"></a>
## Libraries
- The type of `FromBytesWithNulError` in
`CStr::from_bytes_with_nul(bytes: &[u8]) -> Result<&Self,
FromBytesWithNulError>` was [changed from an opaque struct to an
enum](https://redirect.github.com/rust-lang/rust/pull/134143 ), allowing
users to examine why the conversion failed.
- [Remove `RustcDecodable` and
`RustcEncodable`.](https://redirect.github.com/rust-lang/rust/pull/134272 )
- [Deprecate libtest's `--logfile`
option.](https://redirect.github.com/rust-lang/rust/pull/134283 )
- [On recent versions of Windows, `std::fs::remove_file` will now remove
read-only
files.](https://redirect.github.com/rust-lang/rust/pull/134679 )
<a id="1.86.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`{float}::next_down`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_down )
-
[`{float}::next_up`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_up )
-
[`<[_]>::get_disjoint_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_mut )
-
[`<[_]>::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_unchecked_mut )
-
[`slice::GetDisjointMutError`](https://doc.rust-lang.org/stable/std/slice/enum.GetDisjointMutError.html )
-
[`HashMap::get_disjoint_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_mut )
-
[`HashMap::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_unchecked_mut )
-
[`NonZero::count_ones`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.count_ones )
-
[`Vec::pop_if`](https://doc.rust-lang.org/std/vec/struct.Vec.html#method.pop_if )
-
[`sync::Once::wait`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait )
-
[`sync::Once::wait_force`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait_force )
-
[`sync::OnceLock::wait`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html#method.wait )
These APIs are now stable in const contexts:
-
[`hint::black_box`](https://doc.rust-lang.org/stable/std/hint/fn.black_box.html )
-
[`io::Cursor::get_mut`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.get_mut )
-
[`io::Cursor::set_position`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.set_position )
-
[`str::is_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.is_char_boundary )
-
[`str::split_at`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at )
-
[`str::split_at_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_checked )
-
[`str::split_at_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut )
-
[`str::split_at_mut_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut_checked )
<a id="1.86.0-Cargo"></a>
## Cargo
- [When merging, replace rather than combine configuration keys that
refer to a program path and its
arguments.](https://redirect.github.com/rust-lang/cargo/pull/15066/ )
- [Error if both `--package` and `--workspace` are passed but the
requested package is
missing.](https://redirect.github.com/rust-lang/cargo/pull/15071/ ) This
was previously silently ignored, which was considered a bug since
missing packages should be reported.
- [Deprecate the token argument in `cargo login` to avoid shell history
leaks.](https://redirect.github.com/rust-lang/cargo/pull/15057/ )
- [Simplify the implementation of `SourceID`
comparisons.](https://redirect.github.com/rust-lang/cargo/pull/14980/ )
This may potentially change behavior if the canonicalized URL compares
differently in alternative registries.
<a id="1.86.0-Rustdoc"></a>
## Rustdoc
- [Add a sans-serif font
setting.](https://redirect.github.com/rust-lang/rust/pull/133636 )
<a id="1.86.0-Compatibility-Notes"></a>
## Compatibility Notes
- [The `wasm_c_abi` future compatibility warning is now a hard
error.](https://redirect.github.com/rust-lang/rust/pull/133951 )
Users of `wasm-bindgen` should upgrade to at least version 0.2.89,
otherwise compilation will fail.
- [Remove long-deprecated no-op attributes `#![no_start]` and
`#![crate_id]`.](https://redirect.github.com/rust-lang/rust/pull/134300 )
- [The future incompatibility lint `cenum_impl_drop_cast` has been made
into a hard
error.](https://redirect.github.com/rust-lang/rust/pull/135964 ) This
means it is now an error to cast a field-less enum to an integer if the
enum implements `Drop`.
- [SSE2 is now required for "i686" 32-bit x86 hard-float targets;
disabling it causes a warning that will become a hard error
eventually.](https://redirect.github.com/rust-lang/rust/pull/137037 )
To compile for pre-SSE2 32-bit x86, use a "i586" target instead.
<a id="1.86.0-Internal-Changes"></a>
## 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.
- [Build the rustc on AArch64 Linux with ThinLTO +
PGO.](https://redirect.github.com/rust-lang/rust/pull/133807 )
The ARM 64-bit compiler (AArch64) on Linux is now optimized with ThinLTO
and PGO, similar to the optimizations we have already performed for the
x86-64 compiler on Linux. This should make it up to 30% faster.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any
time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/crate-ci/typos ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIyNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-03 11:21:01 +00:00
Yukai Chou
6b1c68673a
chore(ci): maintain major tags for GitHub Actions
...
Fixes #857 .
2025-03-04 06:22:22 +08:00
renovate[bot]
07c9e1f6fa
chore(deps): Update Rust Stable to v1.85 ( #1241 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://redirect.github.com/rust-lang/rust ) | minor | `1.84`
-> `1.85` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.85`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1850-2025-02-20 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.84.0...1.85.0 )
\==========================
<a id="1.85.0-Language"></a>
## Language
- [The 2024 Edition is now
stable.](https://redirect.github.com/rust-lang/rust/pull/133349 )
See [the edition
guide](https://doc.rust-lang.org/nightly/edition-guide/rust-2024/index.html )
for more details.
- [Stabilize async
closures](https://redirect.github.com/rust-lang/rust/pull/132706 )
See [RFC
3668](https://rust-lang.github.io/rfcs/3668-async-closures.html ) for
more details.
- [Stabilize
`#[diagnostic::do_not_recommend]`](https://redirect.github.com/rust-lang/rust/pull/132056 )
- [Add `unpredictable_function_pointer_comparisons` lint to warn against
function pointer
comparisons](https://redirect.github.com/rust-lang/rust/pull/118833 )
- [Lint on combining `#[no_mangle]` and `#[export_name]`
attributes.](https://redirect.github.com/rust-lang/rust/pull/131558 )
<a id="1.85.0-Compiler"></a>
## Compiler
- [The unstable flag `-Zpolymorphize` has been
removed](https://redirect.github.com/rust-lang/rust/pull/133883 ), see
[https://github.com/rust-lang/compiler-team/issues/810 ](https://redirect.github.com/rust-lang/compiler-team/issues/810 )
for some background.
<a id="1.85.0-Platform-Support"></a>
## Platform Support
- [Promote `powerpc64le-unknown-linux-musl` to tier 2 with host
tools](https://redirect.github.com/rust-lang/rust/pull/133801 )
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.85.0-Libraries"></a>
## Libraries
- [Panics in the standard library now have a leading `library/` in their
path](https://redirect.github.com/rust-lang/rust/pull/132390 )
- [`std::env::home_dir()` on Windows now ignores the non-standard
`$HOME` environment
variable](https://redirect.github.com/rust-lang/rust/pull/132515 )
It will be un-deprecated in a subsequent release.
- [Add `AsyncFn*` to the prelude in all
editions.](https://redirect.github.com/rust-lang/rust/pull/132611 )
<a id="1.85.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`BuildHasherDefault::new`](https://doc.rust-lang.org/stable/std/hash/struct.BuildHasherDefault.html#method.new )
-
[`ptr::fn_addr_eq`](https://doc.rust-lang.org/std/ptr/fn.fn_addr_eq.html )
-
[`io::ErrorKind::QuotaExceeded`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.QuotaExceeded )
-
[`io::ErrorKind::CrossesDevices`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.CrossesDevices )
-
[`{float}::midpoint`](https://doc.rust-lang.org/core/primitive.f32.html#method.midpoint )
- [Unsigned
`{integer}::midpoint`](https://doc.rust-lang.org/std/primitive.u64.html#method.midpoint )
-
[`NonZeroU*::midpoint`](https://doc.rust-lang.org/std/num/type.NonZeroU32.html#method.midpoint )
- [impl `std::iter::Extend` for tuples with arity 1 through
12](https://doc.rust-lang.org/stable/std/iter/trait.Extend.html#impl-Extend%3C\(A,\)%3E-for-\(EA,\) )
- [`FromIterator<(A, ...)>` for tuples with arity 1 through
12](https://doc.rust-lang.org/stable/std/iter/trait.FromIterator.html#impl-FromIterator%3C\(EA,\)%3E-for-\(A,\) )
-
[`std::task::Waker::noop`](https://doc.rust-lang.org/stable/std/task/struct.Waker.html#method.noop )
These APIs are now stable in const contexts:
-
[`mem::size_of_val`](https://doc.rust-lang.org/stable/std/mem/fn.size_of_val.html )
-
[`mem::align_of_val`](https://doc.rust-lang.org/stable/std/mem/fn.align_of_val.html )
-
[`Layout::for_value`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.for_value )
-
[`Layout::align_to`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.align_to )
-
[`Layout::pad_to_align`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.pad_to_align )
-
[`Layout::extend`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.extend )
-
[`Layout::array`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.array )
-
[`std::mem::swap`](https://doc.rust-lang.org/stable/std/mem/fn.swap.html )
-
[`std::ptr::swap`](https://doc.rust-lang.org/stable/std/ptr/fn.swap.html )
-
[`NonNull::new`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.new )
-
[`HashMap::with_hasher`](https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.with_hasher )
-
[`HashSet::with_hasher`](https://doc.rust-lang.org/stable/std/collections/struct.HashSet.html#method.with_hasher )
-
[`BuildHasherDefault::new`](https://doc.rust-lang.org/stable/std/hash/struct.BuildHasherDefault.html#method.new )
-
[`<float>::recip`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.recip )
-
[`<float>::to_degrees`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.to_degrees )
-
[`<float>::to_radians`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.to_radians )
-
[`<float>::max`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.max )
-
[`<float>::min`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.min )
-
[`<float>::clamp`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.clamp )
-
[`<float>::abs`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.abs )
-
[`<float>::signum`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.signum )
-
[`<float>::copysign`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.copysign )
-
[`MaybeUninit::write`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.write )
<a id="1.85.0-Cargo"></a>
## Cargo
- [Add future-incompatibility warning against keywords in cfgs and add
raw-idents](https://redirect.github.com/rust-lang/cargo/pull/14671/ )
- [Stabilize higher precedence trailing
flags](https://redirect.github.com/rust-lang/cargo/pull/14900/ )
- [Pass `CARGO_CFG_FEATURE` to build
scripts](https://redirect.github.com/rust-lang/cargo/pull/14902/ )
<a id="1.85.0-Rustdoc"></a>
## Rustdoc
- [Doc comment on impl blocks shows the first line, even when the impl
block is
collapsed](https://redirect.github.com/rust-lang/rust/pull/132155 )
<a id="1.85.0-Compatibility-Notes"></a>
## Compatibility Notes
- [`rustc` no longer treats the `test` cfg as a well known
check-cfg](https://redirect.github.com/rust-lang/rust/pull/131729 ),
instead it is up to the build systems and users of
`--check-cfg`\[^check-cfg] to set it as a well known cfg using
`--check-cfg=cfg(test)`.
This is done to enable build systems like Cargo to set it conditionally,
as not all source files are suitable for unit tests.
[Cargo (for now) unconditionally sets the `test` cfg as a well known
cfg](https://redirect.github.com/rust-lang/cargo/pull/14963 ).
\[^check-cfg]: https://doc.rust-lang.org/nightly/rustc/check-cfg.html
- [Disable potentially incorrect type inference if there are trivial and
non-trivial
where-clauses](https://redirect.github.com/rust-lang/rust/pull/132325 )
- `std::env::home_dir()` has been deprecated for years, because it can
give surprising results in some Windows configurations if the `HOME`
environment variable is set (which is not the normal configuration on
Windows). We had previously avoided changing its behavior, out of
concern for compatibility with code depending on this non-standard
configuration. Given how long this function has been deprecated, we're
now fixing its behavior as a bugfix. A subsequent release will remove
the deprecation for this function.
- [Make `core::ffi::c_char` signedness more closely match that of the
platform-default
`char`](https://redirect.github.com/rust-lang/rust/pull/132975 )
This changed `c_char` from an `i8` to `u8` or vice versa on many Tier 2
and 3
targets (mostly Arm and RISC-V embedded targets). The new definition may
result in compilation failures but fixes compatibility issues with C.
The `libc` crate matches this change as of its 0.2.169 release.
- [When compiling a nested `macro_rules` macro from an external crate,
the content of the inner `macro_rules` is now built with the edition of
the external crate, not the local
crate.](https://redirect.github.com/rust-lang/rust/pull/133274 )
- [Increase `sparcv9-sun-solaris` and `x86_64-pc-solaris` Solaris
baseline to
11.4.](https://redirect.github.com/rust-lang/rust/pull/133293 )
- [Show `abi_unsupported_vector_types` lint in future breakage
reports](https://redirect.github.com/rust-lang/rust/pull/133374 )
- [Error if multiple super-trait instantiations of `dyn Trait` need
associated types to be specified but only one is
provided](https://redirect.github.com/rust-lang/rust/pull/133392 )
- [Change `powerpc64-ibm-aix` default `codemodel` to
large](https://redirect.github.com/rust-lang/rust/pull/133811 )
<a id="1.85.0-Internal-Changes"></a>
## 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.
- [Build `x86_64-unknown-linux-gnu` with LTO for C/C++ code (e.g.,
`jemalloc`)](https://redirect.github.com/rust-lang/rust/pull/134690 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any
time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/crate-ci/typos ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-20 18:59:32 +00:00
Ed Page
298a143ed0
chore(gh): Fix links
2025-02-20 08:21:08 -06:00
Ed Page
d7059d7796
chore(gh): Fix links
2025-02-20 08:20:20 -06:00
Ed Page
636d59beef
chore(gh): Encourage people to check for dupes
2025-02-20 08:19:19 -06:00
Ed Page
51cd88f328
chore(gh): Add a data template
2025-02-20 08:16:14 -06:00
Ed Page
c11cf6c0e1
chore(gh): Try to clarify template
2025-02-20 08:12:50 -06:00
Ed Page
7d208aa2d3
chore(ci): Check wasm builds
...
Fixes #571
2025-02-19 11:27:16 -06:00
Ed Page
4b96e0d5fe
chore(ci): Add Linux arm builds
2025-02-19 10:00:20 -06:00
Ed Page
fba5c9d4d3
chore(gh): Call out the monthly issue
2025-02-19 09:09:46 -06:00
Ed Page
2d7aab4dda
chore(gh): False-positive template
2025-02-19 09:07:30 -06:00
Ed Page
dd593f49ac
chore(gh): Label all new issues
2025-02-19 09:03:38 -06:00
Ed Page
c89d673ca1
chore(ci): Update builder image
2025-02-11 11:09:05 -06:00
renovate[bot]
3683264986
chore(deps): Update Rust Stable to v1.84 ( #1216 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://redirect.github.com/rust-lang/rust ) | minor | `1.83`
-> `1.84` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.84`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1840-2025-01-09 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.83.0...1.84.0 )
\==========================
<a id="
Language"></a>
## Language
- [Allow `#[deny]` inside `#[forbid]` as a
no-op](https://redirect.github.com/rust-lang/rust/pull/121560/ )
- [Show a warning when `-Ctarget-feature` is used to toggle features
that can lead to unsoundness due to ABI
mismatches](https://redirect.github.com/rust-lang/rust/pull/129884 )
- [Use the next-generation trait solver in
coherence](https://redirect.github.com/rust-lang/rust/pull/130654 )
- [Allow coercions to drop the principal of trait
objects](https://redirect.github.com/rust-lang/rust/pull/131857 )
- [Support `/` as the path separator for `include!()` in all cases on
Windows](https://redirect.github.com/rust-lang/rust/pull/125205 )
- [Taking a raw ref (`raw (const|mut)`) of a deref of a pointer (`*ptr`)
is now safe](https://redirect.github.com/rust-lang/rust/pull/129248 )
- [Stabilize s390x inline
assembly](https://redirect.github.com/rust-lang/rust/pull/131258 )
- [Stabilize Arm64EC inline
assembly](https://redirect.github.com/rust-lang/rust/pull/131781 )
- [Lint against creating pointers to immediately dropped
temporaries](https://redirect.github.com/rust-lang/rust/pull/128985 )
- [Execute drop glue when unwinding in an `extern "C"`
function](https://redirect.github.com/rust-lang/rust/pull/129582 )
<a id="1.84.0-Compiler"></a>
## Compiler
- [Add `--print host-tuple` flag to print the host target tuple and
affirm the "target tuple" terminology over "target
triple"](https://redirect.github.com/rust-lang/rust/pull/125579 )
- [Declaring functions with a calling convention not supported on the
current target now triggers a hard
error](https://redirect.github.com/rust-lang/rust/pull/129935 )
- [Set up indirect access to external data for
`loongarch64-unknown-linux-{musl,ohos}`](https://redirect.github.com/rust-lang/rust/pull/131583 )
- [Enable XRay instrumentation for LoongArch Linux
targets](https://redirect.github.com/rust-lang/rust/pull/131818 )
- [Extend the `unexpected_cfgs` lint to also warn in external
macros](https://redirect.github.com/rust-lang/rust/pull/132577 )
- [Stabilize WebAssembly `multivalue`, `reference-types`, and
`tail-call` target
features](https://redirect.github.com/rust-lang/rust/pull/131080 )
- [Added Tier 2 support for the `wasm32v1-none`
target](https://redirect.github.com/rust-lang/rust/pull/131487 )
<a id="1.84.0-Libraries"></a>
## Libraries
- [Implement `From<&mut {slice}>` for
`Box/Rc/Arc<{slice}>`](https://redirect.github.com/rust-lang/rust/pull/129329 )
- [Move `<float>::copysign`, `<float>::abs`, `<float>::signum` to
`core`](https://redirect.github.com/rust-lang/rust/pull/131304 )
- [Add `LowerExp` and `UpperExp` implementations to
`NonZero`](https://redirect.github.com/rust-lang/rust/pull/131377 )
- [Implement `FromStr` for `CString` and `TryFrom<CString>` for
`String`](https://redirect.github.com/rust-lang/rust/pull/130608 )
- [`std::os::darwin` has been made
public](https://redirect.github.com/rust-lang/rust/pull/123723 )
<a id="1.84.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`Ipv6Addr::is_unique_local`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unique_local )
-
[`Ipv6Addr::is_unicast_link_local`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unicast_link_local )
-
[`core::ptr::with_exposed_provenance`](https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance.html )
-
[`core::ptr::with_exposed_provenance_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance_mut.html )
-
[`<ptr>::addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.addr )
-
[`<ptr>::expose_provenance`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.expose_provenance )
-
[`<ptr>::with_addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.with_addr )
-
[`<ptr>::map_addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.map_addr )
-
[`<int>::isqrt`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.isqrt )
-
[`<int>::checked_isqrt`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.checked_isqrt )
-
[`<uint>::isqrt`](https://doc.rust-lang.org/stable/core/primitive.u32.html#method.isqrt )
-
[`NonZero::isqrt`](https://doc.rust-lang.org/stable/core/num/struct.NonZero.html#impl-NonZero%3Cu128%3E/method.isqrt )
-
[`core::ptr::without_provenance`](https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance.html )
-
[`core::ptr::without_provenance_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance_mut.html )
-
[`core::ptr::dangling`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling.html )
-
[`core::ptr::dangling_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling_mut.html )
These APIs are now stable in const contexts
-
[`AtomicBool::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.from_ptr )
-
[`AtomicPtr::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicPtr.html#method.from_ptr )
-
[`AtomicU8::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU8.html#method.from_ptr )
-
[`AtomicU16::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU16.html#method.from_ptr )
-
[`AtomicU32::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU32.html#method.from_ptr )
-
[`AtomicU64::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU64.html#method.from_ptr )
-
[`AtomicUsize::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.from_ptr )
-
[`AtomicI8::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI8.html#method.from_ptr )
-
[`AtomicI16::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI16.html#method.from_ptr )
-
[`AtomicI32::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI32.html#method.from_ptr )
-
[`AtomicI64::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI64.html#method.from_ptr )
-
[`AtomicIsize::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicIsize.html#method.from_ptr )
-
[`<ptr>::is_null`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_null-1 )
-
[`<ptr>::as_ref`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_ref-1 )
-
[`<ptr>::as_mut`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_mut )
-
[`Pin::new`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new )
-
[`Pin::new_unchecked`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new_unchecked )
-
[`Pin::get_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_ref )
-
[`Pin::into_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.into_ref )
-
[`Pin::get_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_mut )
-
[`Pin::get_unchecked_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_unchecked_mut )
-
[`Pin::static_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_ref )
-
[`Pin::static_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_mut )
<a id="1.84.0-Cargo"></a>
## Cargo
- [Stabilize MSRV-aware resolver
config](https://redirect.github.com/rust-lang/cargo/pull/14639/ )
- [Stabilize resolver
v3](https://redirect.github.com/rust-lang/cargo/pull/14754/ )
<a id="1.84-Rustdoc"></a>
## Rustdoc
- [rustdoc-search: improve type-driven
search](https://redirect.github.com/rust-lang/rust/pull/127589 )
<a id="1.84.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Enable by default the `LSX` target feature for LoongArch Linux
targets](https://redirect.github.com/rust-lang/rust/pull/132140 )
- [The unstable `-Zprofile` flag (“gcov-style” coverage instrumentation)
has been
removed.](https://redirect.github.com/rust-lang/rust/pull/131829 ) This
does not affect the stable flags for coverage instrumentation
(`-Cinstrument-coverage`) and profile-guided optimization
(`-Cprofile-generate`, `-Cprofile-use`), which are unrelated and remain
available.
- Support for the target named `wasm32-wasi` has been removed as the
target is now named `wasm32-wasip1`. This completes the
[transition](https://redirect.github.com/rust-lang/compiler-team/issues/607 )
[plan](https://redirect.github.com/rust-lang/compiler-team/issues/695 )
for this target following [the introduction of
`wasm32-wasip1`](https://redirect.github.com/rust-lang/rust/pull/120468 )
in Rust 1.78. Compiler warnings on [use of
`wasm32-wasi`](https://redirect.github.com/rust-lang/rust/pull/126662 )
introduced in Rust 1.81 are now gone as well as the target is removed.
- [The syntax `&pin (mut|const) T` is now parsed as a type which in
theory could affect macro expansion results in some edge
cases](https://redirect.github.com/rust-lang/rust/pull/130635#issuecomment-2375462821 )
- [Legacy syntax for calling `std::arch` functions is no longer
permitted to declare items or bodies (such as closures, inline consts,
or async
blocks).](https://redirect.github.com/rust-lang/rust/pull/130443#issuecomment-2445678945 )
- The `wasm32-unknown-emscripten` target's binary release of the
standard library is now [built with the latest emsdk
3.1.68](https://redirect.github.com/rust-lang/rust/pull/131533 ), which
fixes an ABI-incompatibility with Emscripten >= 3.1.42. If you are
locally using a version of emsdk with an incompatible ABI (e.g. before
3.1.42 or a future one), you should build your code with `-Zbuild-std`
to ensure that `std` uses the correct ABI.
- [Declaring functions with a calling convention not supported on the
current target now triggers a hard
error](https://redirect.github.com/rust-lang/rust/pull/129935 )
- [The next-generation trait solver is now enabled for coherence, fixing
multiple soundness
issues](https://redirect.github.com/rust-lang/rust/pull/130654 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any
time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/crate-ci/typos ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 19:10:40 +00:00
renovate[bot]
ceec6be0e0
chore(deps): Update Rust Stable to v1.83 ( #1161 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://redirect.github.com/rust-lang/rust ) | minor |
`1.82.0` -> `1.83` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.83`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1830-2024-11-28 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.82.0...1.83.0 )
\==========================
<a id="1.83.0-Language"></a>
## Language
- [Stabilize `&mut`, `*mut`, `&Cell`, and `*const Cell` in
const.](https://redirect.github.com/rust-lang/rust/pull/129195 )
- [Allow creating references to statics in `const`
initializers.](https://redirect.github.com/rust-lang/rust/pull/129759 )
- [Implement raw lifetimes and labels
(`'r#ident`).](https://redirect.github.com/rust-lang/rust/pull/126452 )
- [Define behavior when atomic and non-atomic reads
race.](https://redirect.github.com/rust-lang/rust/pull/128778 )
- [Non-exhaustive structs may now be
empty.](https://redirect.github.com/rust-lang/rust/pull/128934 )
- [Disallow implicit coercions from places of type
`!`](https://redirect.github.com/rust-lang/rust/pull/129392 )
- [`const extern` functions can now be defined for other calling
conventions.](https://redirect.github.com/rust-lang/rust/pull/129753 )
- [Stabilize `expr_2021` macro fragment specifier in all
editions.](https://redirect.github.com/rust-lang/rust/pull/129972 )
- [The `non_local_definitions` lint now fires on less code and warns by
default.](https://redirect.github.com/rust-lang/rust/pull/127117 )
<a id="1.83.0-Compiler"></a>
## Compiler
- [Deprecate unsound `-Csoft-float`
flag.](https://redirect.github.com/rust-lang/rust/pull/129897 )
- Add many new tier 3 targets:
-
[`aarch64_unknown_nto_qnx700`](https://redirect.github.com/rust-lang/rust/pull/127897 )
-
[`arm64e-apple-tvos`](https://redirect.github.com/rust-lang/rust/pull/130614 )
-
[`armv7-rtems-eabihf`](https://redirect.github.com/rust-lang/rust/pull/127021 )
-
[`loongarch64-unknown-linux-ohos`](https://redirect.github.com/rust-lang/rust/pull/130750 )
- [`riscv32-wrs-vxworks` and
`riscv64-wrs-vxworks`](https://redirect.github.com/rust-lang/rust/pull/130549 )
-
[`riscv32{e|em|emc}-unknown-none-elf`](https://redirect.github.com/rust-lang/rust/pull/130555 )
-
[`x86_64-unknown-hurd-gnu`](https://redirect.github.com/rust-lang/rust/pull/128345 )
-
[`x86_64-unknown-trusty`](https://redirect.github.com/rust-lang/rust/pull/130453 )
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.83.0-Libraries"></a>
## Libraries
- [Implement `PartialEq` for
`ExitCode`.](https://redirect.github.com/rust-lang/rust/pull/127633 )
- [Document that `catch_unwind` can deal with foreign exceptions without
UB, although the exact behavior is
unspecified.](https://redirect.github.com/rust-lang/rust/pull/128321 )
- [Implement `Default` for `HashMap`/`HashSet` iterators that don't
already have
it.](https://redirect.github.com/rust-lang/rust/pull/128711 )
- [Bump Unicode to version
16.0.0.](https://redirect.github.com/rust-lang/rust/pull/130183 )
- [Change documentation of `ptr::add`/`sub` to not claim equivalence
with `offset`.](https://redirect.github.com/rust-lang/rust/pull/130229 )
<a id="1.83.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`BufRead::skip_until`](https://doc.rust-lang.org/stable/std/io/trait.BufRead.html#method.skip_until )
-
[`ControlFlow::break_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.break_value )
-
[`ControlFlow::continue_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.continue_value )
-
[`ControlFlow::map_break`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_break )
-
[`ControlFlow::map_continue`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_continue )
-
[`DebugList::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugList.html#method.finish_non_exhaustive )
-
[`DebugMap::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugMap.html#method.finish_non_exhaustive )
-
[`DebugSet::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugSet.html#method.finish_non_exhaustive )
-
[`DebugTuple::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugTuple.html#method.finish_non_exhaustive )
-
[`ErrorKind::ArgumentListTooLong`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ArgumentListTooLong )
-
[`ErrorKind::Deadlock`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.Deadlock )
-
[`ErrorKind::DirectoryNotEmpty`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.DirectoryNotEmpty )
-
[`ErrorKind::ExecutableFileBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ExecutableFileBusy )
-
[`ErrorKind::FileTooLarge`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.FileTooLarge )
-
[`ErrorKind::HostUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.HostUnreachable )
-
[`ErrorKind::IsADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.IsADirectory )
-
[`ErrorKind::NetworkDown`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkDown )
-
[`ErrorKind::NetworkUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkUnreachable )
-
[`ErrorKind::NotADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotADirectory )
-
[`ErrorKind::NotSeekable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotSeekable )
-
[`ErrorKind::ReadOnlyFilesystem`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ReadOnlyFilesystem )
-
[`ErrorKind::ResourceBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ResourceBusy )
-
[`ErrorKind::StaleNetworkFileHandle`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StaleNetworkFileHandle )
-
[`ErrorKind::StorageFull`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StorageFull )
-
[`ErrorKind::TooManyLinks`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.TooManyLinks )
-
[`Option::get_or_insert_default`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.get_or_insert_default )
-
[`Waker::data`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.data )
-
[`Waker::new`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.new )
-
[`Waker::vtable`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.vtable )
-
[`char::MIN`](https://doc.rust-lang.org/stable/core/primitive.char.html#associatedconstant.MIN )
-
[`hash_map::Entry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/enum.Entry.html#method.insert_entry )
-
[`hash_map::VacantEntry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/struct.VacantEntry.html#method.insert_entry )
These APIs are now stable in const contexts:
-
[`Cell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.Cell.html#method.into_inner )
-
[`Duration::as_secs_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f32 )
-
[`Duration::as_secs_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f64 )
-
[`Duration::div_duration_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f32 )
-
[`Duration::div_duration_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f64 )
-
[`MaybeUninit::as_mut_ptr`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.as_mut_ptr )
-
[`NonNull::as_mut`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.as_mut )
-
[`NonNull::copy_from`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from )
-
[`NonNull::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from_nonoverlapping )
-
[`NonNull::copy_to`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to )
-
[`NonNull::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to_nonoverlapping )
-
[`NonNull::slice_from_raw_parts`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.slice_from_raw_parts )
-
[`NonNull::write`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write )
-
[`NonNull::write_bytes`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_bytes )
-
[`NonNull::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_unaligned )
-
[`OnceCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.OnceCell.html#method.into_inner )
-
[`Option::as_mut`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_mut )
-
[`Option::expect`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.expect )
-
[`Option::replace`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.replace )
-
[`Option::take`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.take )
-
[`Option::unwrap`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap )
-
[`Option::unwrap_unchecked`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap_unchecked )
-
[`Option::<&_>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied )
- [`Option::<&mut
_>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied-1 )
-
[`Option::<Option<_>>::flatten`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.flatten )
- [`Option::<Result<_,
_>>::transpose`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.transpose )
-
[`RefCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.RefCell.html#method.into_inner )
-
[`Result::as_mut`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.as_mut )
- [`Result::<&_,
_>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied )
- [`Result::<&mut _,
_>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied-1 )
- [`Result::<Option<_>,
_>::transpose`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.transpose )
-
[`UnsafeCell::get_mut`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.get_mut )
-
[`UnsafeCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.into_inner )
-
[`array::from_mut`](https://doc.rust-lang.org/stable/core/array/fn.from_mut.html )
-
[`char::encode_utf8`](https://doc.rust-lang.org/stable/core/primitive.char.html#method.encode_utf8 )
-
[`{float}::classify`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.classify )
-
[`{float}::is_finite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_finite )
-
[`{float}::is_infinite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_infinite )
-
[`{float}::is_nan`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_nan )
-
[`{float}::is_normal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_normal )
-
[`{float}::is_sign_negative`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_negative )
-
[`{float}::is_sign_positive`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_positive )
-
[`{float}::is_subnormal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_subnormal )
-
[`{float}::from_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_bits )
-
[`{float}::from_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_be_bytes )
-
[`{float}::from_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_le_bytes )
-
[`{float}::from_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_ne_bytes )
-
[`{float}::to_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_bits )
-
[`{float}::to_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_be_bytes )
-
[`{float}::to_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_le_bytes )
-
[`{float}::to_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_ne_bytes )
-
[`mem::replace`](https://doc.rust-lang.org/stable/core/mem/fn.replace.html )
-
[`ptr::replace`](https://doc.rust-lang.org/stable/core/ptr/fn.replace.html )
-
[`ptr::slice_from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.slice_from_raw_parts_mut.html )
-
[`ptr::write`](https://doc.rust-lang.org/stable/core/ptr/fn.write.html )
-
[`ptr::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/fn.write_unaligned.html )
- [`<*const
_>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to )
- [`<*const
_>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping )
- [`<*mut
_>::copy_from`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from )
- [`<*mut
_>::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from_nonoverlapping )
- [`<*mut
_>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to-1 )
- [`<*mut
_>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping-1 )
- [`<*mut
_>::write`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write )
- [`<*mut
_>::write_bytes`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_bytes )
- [`<*mut
_>::write_unaligned`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_unaligned )
-
[`slice::from_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_mut.html )
-
[`slice::from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_raw_parts_mut.html )
-
[`<[_]>::first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_mut )
-
[`<[_]>::last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_mut )
-
[`<[_]>::first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_chunk_mut )
-
[`<[_]>::last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_chunk_mut )
-
[`<[_]>::split_at_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut )
-
[`<[_]>::split_at_mut_checked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_checked )
-
[`<[_]>::split_at_mut_unchecked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_unchecked )
-
[`<[_]>::split_first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_mut )
-
[`<[_]>::split_last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_mut )
-
[`<[_]>::split_first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_chunk_mut )
-
[`<[_]>::split_last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_chunk_mut )
-
[`str::as_bytes_mut`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_bytes_mut )
-
[`str::as_mut_ptr`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_mut_ptr )
-
[`str::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/core/str/fn.from_utf8\_unchecked_mut.html )
<a id="1.83.0-Cargo"></a>
## Cargo
- [Introduced a new `CARGO_MANIFEST_PATH` environment variable, similar
to `CARGO_MANIFEST_DIR` but pointing directly to the manifest
file.](https://redirect.github.com/rust-lang/cargo/pull/14404/ )
- [Added `package.autolib` to the manifest, allowing `[lib]`
auto-discovery to be
disabled.](https://redirect.github.com/rust-lang/cargo/pull/14591/ )
- [Declare support level for each crate in Cargo's Charter / crate
docs.](https://redirect.github.com/rust-lang/cargo/pull/14600/ )
- [Declare new Intentional Artifacts as 'small'
changes.](https://redirect.github.com/rust-lang/cargo/pull/14599/ )
<a id="1.83-Rustdoc"></a>
## Rustdoc
- [The sidebar / hamburger menu table of contents now includes the `#
headers` from the main item's doc
comment](https://redirect.github.com/rust-lang/rust/pull/120736 ). This
is similar to a third-party feature provided by the
rustdoc-search-enhancements browser extension.
<a id="1.83.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Warn against function pointers using unsupported ABI
strings.](https://redirect.github.com/rust-lang/rust/pull/128784 )
- [Check well-formedness of the source type's signature in fn pointer
casts.](https://redirect.github.com/rust-lang/rust/pull/129021 ) This
partly closes a soundness hole that comes when casting a function item
to function pointer
- [Use equality instead of subtyping when resolving type dependent
paths.](https://redirect.github.com/rust-lang/rust/pull/129073 )
- Linking on macOS now correctly includes Rust's default deployment
target. Due to a linker bug, you might have to pass
`MACOSX_DEPLOYMENT_TARGET` or fix your `#[link]` attributes to point to
the correct frameworks. See
[#​129369](https://redirect.github.com/rust-lang/rust/pull/129369 ).
- [Rust will now correctly raise an error for `repr(Rust)` written on
non-`struct`/`enum`/`union` items, since it previous did not have any
effect.](https://redirect.github.com/rust-lang/rust/pull/129422 )
- The future incompatibility lint `deprecated_cfg_attr_crate_type_name`
[has been made into a hard
error](https://redirect.github.com/rust-lang/rust/pull/129670 ). It was
used to deny usage of `#![crate_type]` and `#![crate_name]` attributes
in `#![cfg_attr]`, which required a hack in the compiler to be able to
change the used crate type and crate name after cfg expansion.
Users can use `--crate-type` instead of `#![cfg_attr(..., crate_type =
"...")]` and `--crate-name` instead of `#![cfg_attr(..., crate_name =
"...")]` when running `rustc`/`cargo rustc` on the command line.
Use of those two attributes outside of `#![cfg_attr]` continue to be
fully supported.
- Until now, paths into the sysroot were always prefixed with
`/rustc/$hash` in diagnostics, codegen, backtrace, e.g.
thread 'main' panicked at 'hello world', map-panic.rs:2:50
stack backtrace:
0: std::panicking::begin_panic
at
/rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:616:12
1: map_panic::main::{{closure}}
at ./map-panic.rs:2:50
2: core::option::Option<T>::map
at
/rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/option.rs:929:29
3: map_panic::main
at ./map-panic.rs:2:30
4: core::ops::function::FnOnce::call_once
at
/rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/ops/function.rs:248:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a
verbose backtrace.
[RFC 3127
said](https://rust-lang.github.io/rfcs/3127-trim-paths.html#changing-handling-of-sysroot-path-in-rustc )
> We want to change this behaviour such that, when `rust-src` source
files can be discovered, the virtual path is discarded and therefore the
local path will be embedded, unless there is a `--remap-path-prefix`
that causes this local path to be remapped in the usual way.
[#​129687](https://redirect.github.com/rust-lang/rust/pull/129687 )
implements this behaviour, when `rust-src` is present at compile time,
`rustc` replaces `/rustc/$hash` with a real path into the local
`rust-src` component with best effort.
To sanitize this, users must explicitly supply
`--remap-path-prefix=<path to rust-src>=foo` or not have the `rust-src`
component installed.
- The allow-by-default `missing_docs` lint used to disable itself when
invoked through `rustc --test`/`cargo test`, resulting in
`#[expect(missing_docs)]` emitting false positives due to the
expectation being wrongly unfulfilled. This behavior [has now been
removed](https://redirect.github.com/rust-lang/rust/pull/130025 ), which
allows `#[expect(missing_docs)]` to be fulfilled in all scenarios, but
will also report new `missing_docs` diagnostics for publicly reachable
`#[cfg(test)]` items, [integration
test](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests )
crate-level documentation, and publicly reachable items in integration
tests.
- [The `armv8r-none-eabihf` target now uses the Armv8-R required set of
floating-point
features.](https://redirect.github.com/rust-lang/rust/pull/130295 )
- [Fix a soundness bug where rustc wouldn't detect unconstrained
higher-ranked lifetimes in a `dyn Trait`'s associated types that occur
due to
supertraits.](https://redirect.github.com/rust-lang/rust/pull/130367 )
- [Update the minimum external LLVM version to
18.](https://redirect.github.com/rust-lang/rust/pull/130487 )
- [Remove `aarch64-fuchsia` and `x86_64-fuchsia` target aliases in favor
of `aarch64-unknown-fuchsia` and `x86_64-unknown-fuchsia`
respectively.](https://redirect.github.com/rust-lang/rust/pull/130657 )
- [The ABI-level exception class of a Rust panic is now encoded with
native-endian bytes, so it is legible in hex
dumps.](https://redirect.github.com/rust-lang/rust/pull/130897 )
- [Visual Studio 2013 is no longer supported for MSVC
targets.](https://redirect.github.com/rust-lang/rust/pull/131070 )
- [The sysroot no longer contains the `std` dynamic library in its
top-level `lib/`
dir.](https://redirect.github.com/rust-lang/rust/pull/131188 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any
time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/crate-ci/typos ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuNDIuNCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 17:44:26 +00:00
Ed Page
9b241e15e1
chore: Update from _rust template
2024-12-02 11:30:24 -06:00
Ed Page
006f98fb3a
chore(ci): Report deprecations in the review
2024-11-18 13:48:49 -06:00
renovate[bot]
1c7775d62b
chore(deps): Update dependency STABLE to v1.82.0
2024-11-01 02:16:40 +00:00
Ed Page
e5385b07a0
chore(ci): Fix new release process
2024-10-24 12:24:49 -05:00
Ed Page
e6e172498c
chore(ci): Fix new release process
2024-10-24 12:19:00 -05:00
Ed Page
f981a1cd20
chore(ci): Fix new release process
2024-10-24 12:10:58 -05:00
Ed Page
d3dcaaeb2d
chore(ci): Fix new release process
2024-10-24 12:05:53 -05:00
Ed Page
88ea8ea67d
chore(ci): Stage releases until done
2024-10-24 12:04:19 -05:00
Ed Page
e121dd6ef9
chore(ci): Fix STABLE updates
...
See rust-lang/cargo#14704
2024-10-21 15:39:54 +08:00
renovate[bot]
003cb76937
chore(deps): Update dependency STABLE to v1.81.0
2024-10-01 01:28:29 +00:00
Ed Page
0870bb7207
chore: Update from _rust template
2024-09-27 13:33:54 -05:00
Ed Page
6e193aa09a
chore: Ensure pre-commit gets non-system Python
...
This is needed with the ubuntu-24.04 images so that `setup-python` will
install a version of Python that the pre-commit action can install into.
See pre-commit/action#210 for more of an analysis of this.
2024-09-26 21:10:02 -05:00
zyf722
264f549c13
feat(action): Add Windows support to actions
2024-09-04 13:38:08 +08:00
renovate[bot]
37cf1085bc
chore(deps): Update EmbarkStudios/cargo-deny-action action to v2
2024-09-01 01:02:47 +00:00
renovate[bot]
340058181b
chore(deps): Update EmbarkStudios/cargo-deny-action action to v2
2024-09-01 00:41:53 +00:00
renovate[bot]
0d9c778a8c
chore(deps): Update Rust Stable to v1.80 ( #1064 )
...
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://togithub.com/rust-lang/rust ) | minor | `1.79` ->
`1.80` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.80`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1800-2024-07-25 )
[Compare
Source](https://togithub.com/rust-lang/rust/compare/1.79.0...1.80.0 )
\==========================
<a id="1.80-Language"></a>
## Language
- [Document maximum allocation
size](https://togithub.com/rust-lang/rust/pull/116675/ )
- [Allow zero-byte offsets and ZST read/writes on arbitrary
pointers](https://togithub.com/rust-lang/rust/pull/117329/ )
- [Support C23's variadics without a named
parameter](https://togithub.com/rust-lang/rust/pull/124048/ )
- [Stabilize `exclusive_range_pattern`
feature](https://togithub.com/rust-lang/rust/pull/124459/ )
- [Guarantee layout and ABI of `Result` in some
scenarios](https://togithub.com/rust-lang/rust/pull/124870 )
<a id="1.80-Compiler"></a>
## Compiler
- [Update cc crate to v1.0.97 allowing additional spectre mitigations on
MSVC targets](https://togithub.com/rust-lang/rust/pull/124892/ )
- [Allow field reordering on types marked
`repr(packed(1))`](https://togithub.com/rust-lang/rust/pull/125360/ )
- [Add a lint against never type fallback affecting unsafe
code](https://togithub.com/rust-lang/rust/pull/123939/ )
- [Disallow cast with trailing braced macro in
let-else](https://togithub.com/rust-lang/rust/pull/125049/ )
- [Expand `for_loops_over_fallibles` lint to lint on fallibles behind
references.](https://togithub.com/rust-lang/rust/pull/125156/ )
- [self-contained linker: retry linking without `-fuse-ld=lld` on CCs
that don't support it](https://togithub.com/rust-lang/rust/pull/125417/ )
- [Do not parse CVarArgs (`...`) as a type in trait
bounds](https://togithub.com/rust-lang/rust/pull/125863/ )
- Improvements to LLDB formatting
[#​124458](https://togithub.com/rust-lang/rust/pull/124458 )
[#​124500](https://togithub.com/rust-lang/rust/pull/124500 )
- [For the wasm32-wasip2 target default to PIC and do not use
`-fuse-ld=lld`](https://togithub.com/rust-lang/rust/pull/124858/ )
- [Add x86\_64-unknown-linux-none as a tier 3
target](https://togithub.com/rust-lang/rust/pull/125023/ )
- [Lint on `foo.into_iter()` resolving to `&Box<[T]>:
IntoIterator`](https://togithub.com/rust-lang/rust/pull/124097/ )
<a id="1.80-Libraries"></a>
## Libraries
- [Add `size_of` and `size_of_val` and `align_of` and `align_of_val` to
the prelude](https://togithub.com/rust-lang/rust/pull/123168/ )
- [Abort a process when FD ownership is
violated](https://togithub.com/rust-lang/rust/pull/124210/ )
- [io::Write::write_fmt: panic if the formatter fails when the stream
does not fail](https://togithub.com/rust-lang/rust/pull/125012/ )
- [Panic if `PathBuf::set_extension` would add a path
separator](https://togithub.com/rust-lang/rust/pull/125070/ )
- [Add assert_unsafe_precondition to
unchecked\_{add,sub,neg,mul,shl,shr}
methods](https://togithub.com/rust-lang/rust/pull/121571/ )
- [Update `c_char` on AIX to use the correct
type](https://togithub.com/rust-lang/rust/pull/122986/ )
- [`offset_of!` no longer returns a
temporary](https://togithub.com/rust-lang/rust/pull/124484/ )
- [Handle sigma in `str.to_lowercase`
correctly](https://togithub.com/rust-lang/rust/pull/124773/ )
- [Raise `DEFAULT_MIN_STACK_SIZE` to at least
64KiB](https://togithub.com/rust-lang/rust/pull/126059/ )
<a id="1.80-Stabilized-APIs"></a>
## Stabilized APIs
- [`impl Default for
Rc<CStr>`](https://doc.rust-lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3CCStr%3E )
- [`impl Default for
Rc<str>`](https://doc.rust-lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3Cstr%3E )
- [`impl Default for
Rc<[T]>`](https://doc.rust-lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3C%5BT%5D%3E )
- [`impl Default for
Arc<str>`](https://doc.rust-lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3Cstr%3E )
- [`impl Default for
Arc<CStr>`](https://doc.rust-lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3CCStr%3E )
- [`impl Default for
Arc<[T]>`](https://doc.rust-lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3C%5BT%5D%3E )
- [`impl IntoIterator for
Box<[T]>`](https://doc.rust-lang.org/beta/alloc/boxed/struct.Box.html#impl-IntoIterator-for-Box%3C%5BI%5D,+A%3E )
- [`impl FromIterator<String> for
Box<str>`](https://doc.rust-lang.org/beta/alloc/boxed/struct.Box.html#impl-FromIterator%3CString%3E-for-Box%3Cstr%3E )
- [`impl FromIterator<char> for
Box<str>`](https://doc.rust-lang.org/beta/alloc/boxed/struct.Box.html#impl-FromIterator%3Cchar%3E-for-Box%3Cstr%3E )
-
[`LazyCell`](https://doc.rust-lang.org/beta/core/cell/struct.LazyCell.html )
-
[`LazyLock`](https://doc.rust-lang.org/beta/std/sync/struct.LazyLock.html )
-
[`Duration::div_duration_f32`](https://doc.rust-lang.org/beta/std/time/struct.Duration.html#method.div_duration_f32 )
-
[`Duration::div_duration_f64`](https://doc.rust-lang.org/beta/std/time/struct.Duration.html#method.div_duration_f64 )
-
[`Option::take_if`](https://doc.rust-lang.org/beta/std/option/enum.Option.html#method.take_if )
-
[`Seek::seek_relative`](https://doc.rust-lang.org/beta/std/io/trait.Seek.html#method.seek_relative )
-
[`BinaryHeap::as_slice`](https://doc.rust-lang.org/beta/std/collections/struct.BinaryHeap.html#method.as_slice )
-
[`NonNull::offset`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.offset )
-
[`NonNull::byte_offset`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_offset )
-
[`NonNull::add`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.add )
-
[`NonNull::byte_add`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_add )
-
[`NonNull::sub`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.sub )
-
[`NonNull::byte_sub`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_sub )
-
[`NonNull::offset_from`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.offset_from )
-
[`NonNull::byte_offset_from`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_offset_from )
-
[`NonNull::read`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.read )
-
[`NonNull::read_volatile`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.read_volatile )
-
[`NonNull::read_unaligned`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.read_unaligned )
-
[`NonNull::write`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write )
-
[`NonNull::write_volatile`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write_volatile )
-
[`NonNull::write_unaligned`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write_unaligned )
-
[`NonNull::write_bytes`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write_bytes )
-
[`NonNull::copy_to`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_to )
-
[`NonNull::copy_to_nonoverlapping`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_to_nonoverlapping )
-
[`NonNull::copy_from`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_from )
-
[`NonNull::copy_from_nonoverlapping`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_from_nonoverlapping )
-
[`NonNull::replace`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.replace )
-
[`NonNull::swap`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.swap )
-
[`NonNull::drop_in_place`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.drop_in_place )
-
[`NonNull::align_offset`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.align_offset )
-
[`<[T]>::split_at_checked`](https://doc.rust-lang.org/beta/std/primitive.slice.html#method.split_at_checked )
-
[`<[T]>::split_at_mut_checked`](https://doc.rust-lang.org/beta/std/primitive.slice.html#method.split_at_mut_checked )
-
[`str::split_at_checked`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.split_at_checked )
-
[`str::split_at_mut_checked`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.split_at_mut_checked )
-
[`str::trim_ascii`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.trim_ascii )
-
[`str::trim_ascii_start`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.trim_ascii_start )
-
[`str::trim_ascii_end`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.trim_ascii_end )
-
[`<[u8]>::trim_ascii`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.trim_ascii )
-
[`<[u8]>::trim_ascii_start`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.trim_ascii_start )
-
[`<[u8]>::trim_ascii_end`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.trim_ascii_end )
-
[`Ipv4Addr::BITS`](https://doc.rust-lang.org/beta/core/net/struct.Ipv4Addr.html#associatedconstant.BITS )
-
[`Ipv4Addr::to_bits`](https://doc.rust-lang.org/beta/core/net/struct.Ipv4Addr.html#method.to_bits )
-
[`Ipv4Addr::from_bits`](https://doc.rust-lang.org/beta/core/net/struct.Ipv4Addr.html#method.from_bits )
-
[`Ipv6Addr::BITS`](https://doc.rust-lang.org/beta/core/net/struct.Ipv6Addr.html#associatedconstant.BITS )
-
[`Ipv6Addr::to_bits`](https://doc.rust-lang.org/beta/core/net/struct.Ipv6Addr.html#method.to_bits )
-
[`Ipv6Addr::from_bits`](https://doc.rust-lang.org/beta/core/net/struct.Ipv6Addr.html#method.from_bits )
- [`Vec::<[T;
N]>::into_flattened`](https://doc.rust-lang.org/beta/alloc/vec/struct.Vec.html#method.into_flattened )
- [`<[[T;
N]]>::as_flattened`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.as_flattened )
- [`<[[T;
N]]>::as_flattened_mut`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.as_flattened_mut )
These APIs are now stable in const contexts:
-
[`<[T]>::last_chunk`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.last_chunk )
-
[`BinaryHeap::new`](https://doc.rust-lang.org/beta/std/collections/struct.BinaryHeap.html#method.new )
<a id="1.80-Cargo"></a>
## Cargo
- [Stabilize `-Zcheck-cfg` as always
enabled](https://togithub.com/rust-lang/cargo/pull/13571/ )
- [Warn, rather than fail publish, if a target is
excluded](https://togithub.com/rust-lang/cargo/pull/13713/ )
- [Add special `check-cfg` lint config for the `unexpected_cfgs`
lint](https://togithub.com/rust-lang/cargo/pull/13913/ )
- [Stabilize `cargo update --precise
<yanked>`](https://togithub.com/rust-lang/cargo/pull/13974/ )
- [Don't change file permissions on `Cargo.toml` when using `cargo
add`](https://togithub.com/rust-lang/cargo/pull/13898/ )
- [Support using `cargo fix` on IPv6-only
networks](https://togithub.com/rust-lang/cargo/pull/13907/ )
<a id="1.80-Rustdoc"></a>
## Rustdoc
- [Allow searching for
references](https://togithub.com/rust-lang/rust/pull/124148/ )
- [Stabilize `custom_code_classes_in_docs`
feature](https://togithub.com/rust-lang/rust/pull/124577/ )
- [fix: In cross-crate scenarios show enum variants on type aliases of
enums](https://togithub.com/rust-lang/rust/pull/125300/ )
<a id="1.80-Compatibility-Notes"></a>
## Compatibility Notes
- [rustfmt estimates line lengths differently when using non-ascii
characters](https://togithub.com/rust-lang/rustfmt/issues/6203 )
- [Type aliases are now handled correctly in orphan
check](https://togithub.com/rust-lang/rust/pull/117164/ )
- [Allow instructing rustdoc to read from stdin via
`-`](https://togithub.com/rust-lang/rust/pull/124611/ )
- [`std::env::{set_var, remove_var}` can no longer be converted to safe
function pointers and no longer implement the `Fn` family of
traits](https://togithub.com/rust-lang/rust/pull/124636 )
- [Warn (or error) when `Self` constructor from outer item is referenced
in inner nested item](https://togithub.com/rust-lang/rust/pull/124187/ )
- [Turn `indirect_structural_match` and `pointer_structural_match` lints
into hard errors](https://togithub.com/rust-lang/rust/pull/124661/ )
- [Make `where_clause_object_safety` lint a regular object safety
violation](https://togithub.com/rust-lang/rust/pull/125380/ )
- [Turn `proc_macro_back_compat` lint into a hard
error.](https://togithub.com/rust-lang/rust/pull/125596/ )
- [Detect unused structs even when implementing private
traits](https://togithub.com/rust-lang/rust/pull/122382/ )
- [`std::sync::ReentrantLockGuard<T>` is no longer `Sync` if `T:
!Sync`](https://togithub.com/rust-lang/rust/pull/125527 ) which means
[`std::io::StdoutLock` and `std::io::StderrLock` are no longer
Sync](https://togithub.com/rust-lang/rust/issues/127340 )
<a id="1.80-Internal-Changes"></a>
## 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.
- Misc improvements to size of generated html by rustdoc e.g.
[#​124738](https://togithub.com/rust-lang/rust/pull/124738/ ) and
[#​123734](https://togithub.com/rust-lang/rust/pull/123734/ )
- [MSVC targets no longer depend on
libc](https://togithub.com/rust-lang/rust/pull/124050/ )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any
time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **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.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View the
[repository job log](https://developer.mend.io/github/crate-ci/typos ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzguMCIsInVwZGF0ZWRJblZlciI6IjM3LjQzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-26 23:58:00 +00:00
Ed Page
9dc8c88844
chore(ci): Don't check minimal versions for bins
2024-07-26 16:08:28 -05:00
Ed Page
063ac6d4b5
chore: Update from _rust/main template
2024-07-26 16:07:19 -05:00
Ed Page
bdb06a11df
chore(ci): Verify version requirements
2024-07-09 11:10:20 -05:00
Ed Page
2a274e149f
chore(ci): Auto-update Mac now that latest uses m1
2024-06-21 14:21:41 -04:00
Carson McManus
89fad3115d
feat[ci]: add support for mac and arm systems to the github action
2024-06-21 14:10:08 -04:00
renovate[bot]
ff7654294c
chore(deps): Update Rust Stable to v1.79 ( #1035 )
...
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://togithub.com/rust-lang/rust ) | minor | `1.78` ->
`1.79` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.79`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1790-2024-06-13 )
[Compare
Source](https://togithub.com/rust-lang/rust/compare/1.78.0...1.79.0 )
\==========================
<a id="1.79.0-Language"></a>
## Language
- [Stabilize inline `const {}`
expressions.](https://togithub.com/rust-lang/rust/pull/104087/ )
- [Prevent opaque types being instantiated twice with different regions
within the same
function.](https://togithub.com/rust-lang/rust/pull/116935/ )
- [Stabilize WebAssembly target features that are in phase 4 and
5.](https://togithub.com/rust-lang/rust/pull/117457/ )
- [Add the `redundant_lifetimes` lint to detect lifetimes which are
semantically
redundant.](https://togithub.com/rust-lang/rust/pull/118391/ )
- [Stabilize the `unnameable_types` lint for public types that can't be
named.](https://togithub.com/rust-lang/rust/pull/120144/ )
- [Enable debuginfo in macros, and stabilize `-C
collapse-macro-debuginfo` and
`#[collapse_debuginfo]`.](https://togithub.com/rust-lang/rust/pull/120845/ )
- [Propagate temporary lifetime extension into `if` and `match`
expressions.](https://togithub.com/rust-lang/rust/pull/121346/ )
- [Restrict promotion of `const fn`
calls.](https://togithub.com/rust-lang/rust/pull/121557/ )
- [Warn against refining impls of crate-private traits with
`refining_impl_trait`
lint.](https://togithub.com/rust-lang/rust/pull/121720/ )
- [Stabilize associated type bounds (RFC
2289).](https://togithub.com/rust-lang/rust/pull/122055/ )
- [Stabilize importing `main` from other modules or
crates.](https://togithub.com/rust-lang/rust/pull/122060/ )
- [Check return types of function types for
well-formedness](https://togithub.com/rust-lang/rust/pull/115538 )
- [Rework `impl Trait` lifetime
inference](https://togithub.com/rust-lang/rust/pull/116891/ )
- [Change inductive trait solver cycles to be
ambiguous](https://togithub.com/rust-lang/rust/pull/122791 )
<a id="1.79.0-Compiler"></a>
## Compiler
- [Define `-C strip` to only affect binaries, not artifacts like
`.pdb`.](https://togithub.com/rust-lang/rust/pull/115120/ )
- [Stabilize `-Crelro-level` for controlling runtime link
hardening.](https://togithub.com/rust-lang/rust/pull/121694/ )
- [Stabilize checking of `cfg` names and values at compile-time with
`--check-cfg`.](https://togithub.com/rust-lang/rust/pull/123501/ )
*Note that this only stabilizes the compiler part, the Cargo part is
still unstable in this release.*
- [Add `aarch64-apple-visionos` and `aarch64-apple-visionos-sim` tier 3
targets.](https://togithub.com/rust-lang/rust/pull/121419/ )
- [Add `riscv32ima-unknown-none-elf` tier 3
target.](https://togithub.com/rust-lang/rust/pull/122696/ )
- [Promote several Windows targets to tier
2](https://togithub.com/rust-lang/rust/pull/121712 ):
`aarch64-pc-windows-gnullvm`, `i686-pc-windows-gnullvm`, and
`x86_64-pc-windows-gnullvm`.
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.79.0-Libraries"></a>
## Libraries
- [Implement `FromIterator` for `(impl Default + Extend, impl Default +
Extend)`.](https://togithub.com/rust-lang/rust/pull/107462/ )
- [Implement `{Div,Rem}Assign<NonZero<X>>` on
`X`.](https://togithub.com/rust-lang/rust/pull/121952/ )
- [Document overrides of `clone_from()` in
core/std.](https://togithub.com/rust-lang/rust/pull/122201/ )
- [Link MSVC default lib in
core.](https://togithub.com/rust-lang/rust/pull/122268/ )
- [Caution against using `transmute` between pointers and
integers.](https://togithub.com/rust-lang/rust/pull/122379/ )
- [Enable frame pointers for the standard
library.](https://togithub.com/rust-lang/rust/pull/122646/ )
<a id="1.79.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`{integer}::unchecked_add`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.unchecked_add )
-
[`{integer}::unchecked_mul`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.unchecked_mul )
-
[`{integer}::unchecked_sub`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.unchecked_sub )
-
[`<[T]>::split_at_unchecked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_unchecked )
-
[`<[T]>::split_at_mut_unchecked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_unchecked )
-
[`<[u8]>::utf8_chunks`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.utf8\_chunks )
-
[`str::Utf8Chunks`](https://doc.rust-lang.org/stable/core/str/struct.Utf8Chunks.html )
-
[`str::Utf8Chunk`](https://doc.rust-lang.org/stable/core/str/struct.Utf8Chunk.html )
- [`<*const
T>::is_aligned`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_aligned )
- [`<*mut
T>::is_aligned`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_aligned-1 )
-
[`NonNull::is_aligned`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.is_aligned )
- [`<*const
[T]>::len`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.len )
- [`<*mut
[T]>::len`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.len-1 )
- [`<*const
[T]>::is_empty`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_empty )
- [`<*mut
[T]>::is_empty`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_empty-1 )
-
[`NonNull::<[T]>::is_empty`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.is_empty )
-
[`CStr::count_bytes`](https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes )
-
[`io::Error::downcast`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#method.downcast )
-
[`num::NonZero<T>`](https://doc.rust-lang.org/stable/core/num/struct.NonZero.html )
-
[`path::absolute`](https://doc.rust-lang.org/stable/std/path/fn.absolute.html )
-
[`proc_macro::Literal::byte_character`](https://doc.rust-lang.org/stable/proc_macro/struct.Literal.html#method.byte_character )
-
[`proc_macro::Literal::c_string`](https://doc.rust-lang.org/stable/proc_macro/struct.Literal.html#method.c_string )
These APIs are now stable in const contexts:
-
[`Atomic*::into_inner`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.into_inner )
-
[`io::Cursor::new`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.new )
-
[`io::Cursor::get_ref`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.get_ref )
-
[`io::Cursor::position`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.position )
- [`io::empty`](https://doc.rust-lang.org/stable/std/io/fn.empty.html )
- [`io::repeat`](https://doc.rust-lang.org/stable/std/io/fn.repeat.html )
- [`io::sink`](https://doc.rust-lang.org/stable/std/io/fn.sink.html )
-
[`panic::Location::caller`](https://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.caller )
-
[`panic::Location::file`](https://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.file )
-
[`panic::Location::line`](https://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.line )
-
[`panic::Location::column`](https://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.column )
<a id="1.79.0-Cargo"></a>
## Cargo
- [Prevent dashes in `lib.name`, always normalizing to
`_`.](https://togithub.com/rust-lang/cargo/pull/12783/ )
- [Stabilize MSRV-aware version requirement selection in `cargo
add`.](https://togithub.com/rust-lang/cargo/pull/13608/ )
- [Switch to using `gitoxide` by default for listing
files.](https://togithub.com/rust-lang/cargo/pull/13696/ )
- [Error on `[project]` in Edition 2024; `cargo fix --edition` will
change it to
`[package]`.](https://togithub.com/rust-lang/cargo/pull/13747/ )
<a id="1.79.0-Rustdoc"></a>
## Rustdoc
- [Always display stability version even if it's the same as the
containing item.](https://togithub.com/rust-lang/rust/pull/118441/ )
- [Show a single search result for items with multiple
paths.](https://togithub.com/rust-lang/rust/pull/119912/ )
- [Support typing `/` in docs to begin a
search.](https://togithub.com/rust-lang/rust/pull/123355/ )
<a id="1.79.0-Misc"></a>
## Misc
<a id="1.79.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Update the minimum external LLVM to
17.](https://togithub.com/rust-lang/rust/pull/122649/ )
- [`RustcEncodable` and `RustcDecodable` are soft-destabilized, to be
removed
from the prelude in next
edition.](https://togithub.com/rust-lang/rust/pull/116016/ )
- [The `wasm_c_abi` future-incompatibility lint will warn about use of
the
non-spec-compliant C
ABI.](https://togithub.com/rust-lang/rust/pull/117918/ )
Use `wasm-bindgen v0.2.88` to generate forward-compatible bindings.
- [Check return types of function types for
well-formedness](https://togithub.com/rust-lang/rust/pull/115538 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any
time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **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.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View
repository job log
[here](https://developer.mend.io/github/crate-ci/typos ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-13 15:12:16 +00:00
Ed Page
dc4ac38a10
chore(ci): Drop arm64
2024-06-12 10:47:24 -05:00
Ed Page
9d10c4ded9
chore(ci): Fix release target for arm64
2024-06-12 10:33:14 -05:00
smerle33
fadf0cc5f1
feat(release): Add linux arm64 build to matrix
2024-06-12 08:08:44 +02:00