chore(deps): update dependency rust to v1.86.0 #159
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.83.0
->1.86.0
Release Notes
rust-lang/rust (rust)
v1.86.0
Compare Source
==========================
Language
#[target_feature]
attribute.missing_abi
lint now warns-by-default.--x
) as written in other languages. This was previously a clippy lint,clippy::double_neg
, and is now available directly in Rust asdouble_negations
.repr()
attribute applied to invalid items are now correctly rejected.#![test]
and#![rustfmt::skip]
are no longer accepted in more places than intended.Compiler
-O
to mean-C opt-level=3
instead of-C opt-level=2
to match Cargo's defaults.overflowing_literals
under certain macro environments.Platform Support
i686-unknown-redox
target withi586-unknown-redox
.i686-unknown-hurd-gnu
to Pentium 4.{aarch64-unknown,x86_64-pc}-nto-qnx710_iosock
.For supporting Neutrino QNX 7.1 with
io-socket
network stack.{aarch64-unknown,x86_64-pc}-nto-qnx800
.For supporting Neutrino QNX 8.0 (
no_std
-only).{x86_64,i686}-win7-windows-gnu
.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
.x86_64-pc-cygwin
.{mips,mipsel}-mti-none-elf
.Initial bare-metal support.
m68k-unknown-none-elf
.armv7a-nuttx-{eabi,eabihf}
,aarch64-unknown-nuttx
, andthumbv7a-nuttx-{eabi,eabihf}
.Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
Libraries
FromBytesWithNulError
inCStr::from_bytes_with_nul(bytes: &[u8]) -> Result<&Self, FromBytesWithNulError>
was changed from an opaque struct to an enum, allowing users to examine why the conversion failed.RustcDecodable
andRustcEncodable
.--logfile
option.std::fs::remove_file
will now remove read-only files.Stabilized APIs
{float}::next_down
{float}::next_up
<[_]>::get_disjoint_mut
<[_]>::get_disjoint_unchecked_mut
slice::GetDisjointMutError
HashMap::get_disjoint_mut
HashMap::get_disjoint_unchecked_mut
NonZero::count_ones
Vec::pop_if
sync::Once::wait
sync::Once::wait_force
sync::OnceLock::wait
These APIs are now stable in const contexts:
hint::black_box
io::Cursor::get_mut
io::Cursor::set_position
str::is_char_boundary
str::split_at
str::split_at_checked
str::split_at_mut
str::split_at_mut_checked
Cargo
--package
and--workspace
are passed but the requested package is missing. This was previously silently ignored, which was considered a bug since missing packages should be reported.cargo login
to avoid shell history leaks.SourceID
comparisons. This may potentially change behavior if the canonicalized URL compares differently in alternative registries.Rustdoc
Compatibility Notes
wasm_c_abi
future compatibility warning is now a hard error.Users of
wasm-bindgen
should upgrade to at least version 0.2.89, otherwise compilation will fail.#![no_start]
and#![crate_id]
.cenum_impl_drop_cast
has been made into a hard error. This means it is now an error to cast a field-less enum to an integer if the enum implementsDrop
.To compile for pre-SSE2 32-bit x86, use a "i586" target instead.
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.
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.1
Compare Source
==========================
target_feature
checks when generating docs.std::fs::rename
on Windows 10, version 1607.cc
to fix custom targets.v1.85.0
Compare Source
==========================
Language
See the edition guide for more details.
See RFC 3668 for more details.
#[diagnostic::do_not_recommend]
unpredictable_function_pointer_comparisons
lint to warn against function pointer comparisons#[no_mangle]
and#[export_name]
attributes.Compiler
-Zpolymorphize
has been removed, see https://github.com/rust-lang/compiler-team/issues/810 for some background.Platform Support
powerpc64le-unknown-linux-musl
to tier 2 with host toolsRefer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
Libraries
Panics in the standard library now have a leading
library/
in their pathstd::env::home_dir()
on Windows now ignores the non-standard$HOME
environment variableIt will be un-deprecated in a subsequent release.
Add
AsyncFn*
to the prelude in all editions.Stabilized APIs
BuildHasherDefault::new
ptr::fn_addr_eq
io::ErrorKind::QuotaExceeded
io::ErrorKind::CrossesDevices
{float}::midpoint
{integer}::midpoint
NonZeroU*::midpoint
std::iter::Extend
for tuples with arity 1 through 12FromIterator<(A, ...)>
for tuples with arity 1 through 12std::task::Waker::noop
These APIs are now stable in const contexts:
mem::size_of_val
mem::align_of_val
Layout::for_value
Layout::align_to
Layout::pad_to_align
Layout::extend
Layout::array
std::mem::swap
std::ptr::swap
NonNull::new
HashMap::with_hasher
HashSet::with_hasher
BuildHasherDefault::new
<float>::recip
<float>::to_degrees
<float>::to_radians
<float>::max
<float>::min
<float>::clamp
<float>::abs
<float>::signum
<float>::copysign
MaybeUninit::write
Cargo
CARGO_CFG_FEATURE
to build scriptsRustdoc
Compatibility Notes
rustc
no longer treats thetest
cfg as a well known check-cfg, 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.[^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
std::env::home_dir()
has been deprecated for years, because it can give surprising results in some Windows configurations if theHOME
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-defaultchar
This changed
c_char
from ani8
tou8
or vice versa on many Tier 2 and 3targets (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 innermacro_rules
is now built with the edition of the external crate, not the local crate.Increase
sparcv9-sun-solaris
andx86_64-pc-solaris
Solaris baseline to 11.4.Show
abi_unsupported_vector_types
lint in future breakage reportsError if multiple super-trait instantiations of
dyn Trait
need associated types to be specified but only one is providedChange
powerpc64-ibm-aix
defaultcodemodel
to largeInternal 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.
x86_64-unknown-linux-gnu
with LTO for C/C++ code (e.g.,jemalloc
)v1.84.1
Compare Source
==========================
llvm-objcopy
if llvm tools are enabled.v1.84.0
Compare Source
==========================
Language
#[deny]
inside#[forbid]
as a no-op-Ctarget-feature
is used to toggle features that can lead to unsoundness due to ABI mismatches/
as the path separator forinclude!()
in all cases on Windowsraw (const|mut)
) of a deref of a pointer (*ptr
) is now safeextern "C"
functionCompiler
--print host-tuple
flag to print the host target tuple and affirm the "target tuple" terminology over "target triple"loongarch64-unknown-linux-{musl,ohos}
unexpected_cfgs
lint to also warn in external macrosmultivalue
,reference-types
, andtail-call
target featureswasm32v1-none
targetLibraries
From<&mut {slice}>
forBox/Rc/Arc<{slice}>
<float>::copysign
,<float>::abs
,<float>::signum
tocore
LowerExp
andUpperExp
implementations toNonZero
FromStr
forCString
andTryFrom<CString>
forString
std::os::darwin
has been made publicStabilized APIs
Ipv6Addr::is_unique_local
Ipv6Addr::is_unicast_link_local
core::ptr::with_exposed_provenance
core::ptr::with_exposed_provenance_mut
<ptr>::addr
<ptr>::expose_provenance
<ptr>::with_addr
<ptr>::map_addr
<int>::isqrt
<int>::checked_isqrt
<uint>::isqrt
NonZero::isqrt
core::ptr::without_provenance
core::ptr::without_provenance_mut
core::ptr::dangling
core::ptr::dangling_mut
Pin::as_deref_mut
These APIs are now stable in const contexts
AtomicBool::from_ptr
AtomicPtr::from_ptr
AtomicU8::from_ptr
AtomicU16::from_ptr
AtomicU32::from_ptr
AtomicU64::from_ptr
AtomicUsize::from_ptr
AtomicI8::from_ptr
AtomicI16::from_ptr
AtomicI32::from_ptr
AtomicI64::from_ptr
AtomicIsize::from_ptr
<ptr>::is_null
<ptr>::as_ref
<ptr>::as_mut
Pin::new
Pin::new_unchecked
Pin::get_ref
Pin::into_ref
Pin::get_mut
Pin::get_unchecked_mut
Pin::static_ref
Pin::static_mut
Cargo
Rustdoc
Compatibility Notes
LSX
target feature for LoongArch Linux targets-Zprofile
flag (“gcov-style” coverage instrumentation) has been removed. 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.wasm32-wasi
has been removed as the target is now namedwasm32-wasip1
. This completes the transition plan for this target following the introduction ofwasm32-wasip1
in Rust 1.78. Compiler warnings on use ofwasm32-wasi
introduced in Rust 1.81 are now gone as well as the target is removed.&pin (mut|const) T
is now parsed as a type which in theory could affect macro expansion results in some edge casesstd::arch
functions is no longer permitted to declare items or bodies (such as closures, inline consts, or async blocks).Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.