chore(deps): Update Rust Stable to v1.82 #131
Merged
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.76->1.82Release Notes
rust-lang/rust (STABLE)
v1.82Compare Source
==========================
Language
addr_of(_mut)!macros and the newly stabilized&raw (const|mut)are now safe to use with all static itemsfor<...>binder in trait bounds&raw constand&raw mutoperators (RFC 2582)offset_of!Tto be live when dropping[T; 0]constoperands in inline assemblyconst fnCompiler
aarch64-apple-ios-macabiandx86_64-apple-ios-macabito Tier 2, and ship them with rustup-> !aarch64-apple-darwinto Tier 1aarch64-unknown-trustyandarmv7-unknown-trustyas tier 3 targetswasm32-wasip2to Tier 2.Libraries
{Rc,Arc}::make_mut()toPath,OsStr, andCStr.Stabilized APIs
std::thread::Builder::spawn_uncheckedstd::str::CharIndices::offsetstd::option::Option::is_none_or[T]::is_sorted[T]::is_sorted_by[T]::is_sorted_by_keyIterator::is_sortedIterator::is_sorted_byIterator::is_sorted_by_keystd::future::Ready::into_innerstd::iter::repeat_nimpl<T: Clone> DoubleEndedIterator for Take<Repeat<T>>impl<T: Clone> ExactSizeIterator for Take<Repeat<T>>impl<T: Clone> ExactSizeIterator for Take<RepeatWith<T>>impl Default for std::collections::binary_heap::Iterimpl Default for std::collections::btree_map::RangeMutimpl Default for std::collections::btree_map::ValuesMutimpl Default for std::collections::vec_deque::Iterimpl Default for std::collections::vec_deque::IterMutRc<T>::new_uninitRc<MaybeUninit<T>>::assume_initRc<[T]>::new_uninit_sliceRc<[MaybeUninit<T>]>::assume_initArc<T>::new_uninitArc<MaybeUninit<T>>::assume_initArc<[T]>::new_uninit_sliceArc<[MaybeUninit<T>]>::assume_initBox<T>::new_uninitBox<MaybeUninit<T>>::assume_initBox<[T]>::new_uninit_sliceBox<[MaybeUninit<T>]>::assume_initcore::arch::x86_64::_bextri_u64core::arch::x86_64::_bextri_u32core::arch::x86::_mm_broadcastsi128_si256core::arch::x86::_mm256_stream_load_si256core::arch::x86::_tzcnt_u16core::arch::x86::_mm_extracti_si64core::arch::x86::_mm_inserti_si64core::arch::x86::_mm_storeu_si16core::arch::x86::_mm_storeu_si32core::arch::x86::_mm_storeu_si64core::arch::x86::_mm_loadu_si16core::arch::x86::_mm_loadu_si32core::arch::wasm32::u8x16_relaxed_swizzlecore::arch::wasm32::i8x16_relaxed_swizzlecore::arch::wasm32::i32x4_relaxed_trunc_f32x4core::arch::wasm32::u32x4_relaxed_trunc_f32x4core::arch::wasm32::i32x4_relaxed_trunc_f64x2_zerocore::arch::wasm32::u32x4_relaxed_trunc_f64x2_zerocore::arch::wasm32::f32x4_relaxed_maddcore::arch::wasm32::f32x4_relaxed_nmaddcore::arch::wasm32::f64x2_relaxed_maddcore::arch::wasm32::f64x2_relaxed_nmaddcore::arch::wasm32::i8x16_relaxed_laneselectcore::arch::wasm32::u8x16_relaxed_laneselectcore::arch::wasm32::i16x8_relaxed_laneselectcore::arch::wasm32::u16x8_relaxed_laneselectcore::arch::wasm32::i32x4_relaxed_laneselectcore::arch::wasm32::u32x4_relaxed_laneselectcore::arch::wasm32::i64x2_relaxed_laneselectcore::arch::wasm32::u64x2_relaxed_laneselectcore::arch::wasm32::f32x4_relaxed_mincore::arch::wasm32::f32x4_relaxed_maxcore::arch::wasm32::f64x2_relaxed_mincore::arch::wasm32::f64x2_relaxed_maxcore::arch::wasm32::i16x8_relaxed_q15mulrcore::arch::wasm32::u16x8_relaxed_q15mulrcore::arch::wasm32::i16x8_relaxed_dot_i8x16_i7x16core::arch::wasm32::u16x8_relaxed_dot_i8x16_i7x16core::arch::wasm32::i32x4_relaxed_dot_i8x16_i7x16_addcore::arch::wasm32::u32x4_relaxed_dot_i8x16_i7x16_addThese APIs are now stable in const contexts:
std::task::Waker::from_rawstd::task::Context::from_wakerstd::task::Context::waker$integer::from_str_radixstd::num::ParseIntError::kindCargo
infocargo subcommandCompatibility Notes
explicit_builtin_cfgs_in_flagslint in order to prevent incoherent state, eg.windowscfg active but target is Linux based. The appropriaterustcflag should be used instead.binary_searchwhich is significantly improves performance (#128254). However when a sorted slice has multiple values which compare equal, the new implementation may select a different value among the equal ones than the old implementation.MSG_NOSIGNALwhen writing to sockets. This avoids killing the process with SIGPIPE when writing to a closed socket, which matches the existing behavior on other UNIX targets.multivalueandreference-typesare nowboth enabled by default. These two features both have subtle changes implied
for generated WebAssembly binaries. For the
multivaluefeature, WebAssemblytarget support has changed when upgrading to LLVM 19. Support for generating
functions with multiple returns no longer works and
-Ctarget-feature=+multivaluehas a different meaning than it did in LLVM 18and prior. There is no longer any supported means to generate a module that has
a function with multiple returns in WebAssembly from Rust source code. For the
reference-typesfeature the encoding of immediates in thecall_indirect, acommonly used instruction by the WebAssembly backend, has changed. Validators
and parsers which don't understand the
reference-typesproposal will nolonger accept modules produced by LLVM due to this change in encoding of
immediates. Additionally these features being enabled are encoded in the
target_featurescustom section and may affect downstream tooling such aswasm-optconsuming the module. Generating a WebAssembly module that disablesdefault features requires
-Zbuild-stdsupport from Cargo and more informationcan be found at
rust-lang/rust#128511.
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.
v1.81Compare Source
==========================
Language
extern "C"functions.&in elided self lifetimes.#[expect]for lints (RFC 2383), like#[allow]with a warning if the lint is not fulfilled.elided_lifetimes_in_associated_constantto deny.offset_from: always allow pointers to point to the same address.Compiler
-Cinline-threshold=....transmutesize checks.box_pointerslint.no_stdXtensa targets:xtensa-esp32-none-elf,xtensa-esp32s2-none-elf,xtensa-esp32s3-none-elfstdXtensa targets:xtensa-esp32-espidf,xtensa-esp32s2-espidf,xtensa-esp32s3-espidfi686-unknown-redoxarm64ec-pc-windows-msvcto Tier 2.loongarch64-unknown-linux-muslto Tier 2 with host tools.wasm32-wasi. (see compatibility note below)Libraries
PanicInfoand std'sPanicInfo. (see compatibility note below){Rc,Arc}::make_mut()to unsized types.driftsortand unstableipnsort. Allslice::sort*andslice::select_nth*methods are expected to see significant performance improvements. See the research project for more details.create_dir_allwith respect to empty paths.Stabilized APIs
core::errorhint::assert_uncheckedfs::existsAtomicBool::fetch_notDuration::abs_diffIoSlice::advanceIoSlice::advance_slicesIoSliceMut::advanceIoSliceMut::advance_slicesPanicHookInfoPanicInfo::messagePanicMessageThese APIs are now stable in const contexts:
char::from_u32_unchecked(function)char::from_u32_unchecked(method)CStr::count_bytesCStr::from_ptrCargo
.cargo_vcs_info.jsonis always included, even when--allow-dirtyis passed.package.license-fileandpackage.readmepointing to non-existent files during packaging.--release/--debugflag along with the--profileflag.lib.pluginkey support inCargo.toml. Rust plugin support has been deprecated for four years and was removed in 1.75.0.Compatibility Notes
Usage of the
wasm32-wasitarget will now issue a compiler warning and request users switch to thewasm32-wasip1target instead. Both targets are the same,wasm32-wasiis only being renamed, and this change to the WASI target is being done to enable removingwasm32-wasiin January 2025.We have renamed
std::panic::PanicInfotostd::panic::PanicHookInfo. The old name will continue to work as an alias, but will result in a deprecation warning starting in Rust 1.82.0.core::panic::PanicInfowill remain unchanged, however, as this is now a different type.The reason is that these types have different roles:
std::panic::PanicHookInfois the argument to the panic hook in std context (where panics can have an arbitrary payload), whilecore::panic::PanicInfois the argument to the#[panic_handler]in no_std context (where panics always carry a formatted message). Separating these types allows us to add more useful methods to these types, such asstd::panic::PanicHookInfo::payload_as_str()andcore::panic::PanicInfo::message().The new sort implementations may panic if a type's implementation of
Ord(or the given comparison function) does not implement a total order as the trait requires.Ord's supertraits (PartialOrd,Eq, andPartialEq) must also be consistent. The previous implementations would not "notice" any problem, but the new implementations have a good chance of detecting inconsistencies, throwing a panic rather than returning knowingly unsorted data.In very rare cases, a change in the internal evaluation order of the trait
solver may result in new fatal overflow errors.
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.
autoCI job to check kernel builds.v1.80Compare Source
===========================
dead_codelint from 1.80.0v1.79Compare Source
==========================
Language
const {}expressions.redundant_lifetimeslint to detect lifetimes which are semantically redundant.unnameable_typeslint for public types that can't be named.-C collapse-macro-debuginfoand#[collapse_debuginfo].ifandmatchexpressions.const fncalls.refining_impl_traitlint.mainfrom other modules or crates.impl Traitlifetime inferenceCompiler
-C stripto only affect binaries, not artifacts like.pdb.-Crelro-levelfor controlling runtime link hardening.cfgnames and values at compile-time with--check-cfg.Note that this only stabilizes the compiler part, the Cargo part is still unstable in this release.
aarch64-apple-visionosandaarch64-apple-visionos-simtier 3 targets.riscv32ima-unknown-none-elftier 3 target.aarch64-pc-windows-gnullvm,i686-pc-windows-gnullvm, andx86_64-pc-windows-gnullvm.Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
Libraries
FromIteratorfor(impl Default + Extend, impl Default + Extend).{Div,Rem}Assign<NonZero<X>>onX.clone_from()in core/std.transmutebetween pointers and integers.Stabilized APIs
{integer}::unchecked_add{integer}::unchecked_mul{integer}::unchecked_sub<[T]>::split_at_unchecked<[T]>::split_at_mut_unchecked<[u8]>::utf8_chunksstr::Utf8Chunksstr::Utf8Chunk<*const T>::is_aligned<*mut T>::is_alignedNonNull::is_aligned<*const [T]>::len<*mut [T]>::len<*const [T]>::is_empty<*mut [T]>::is_emptyNonNull::<[T]>::is_emptyCStr::count_bytesio::Error::downcastnum::NonZero<T>path::absoluteproc_macro::Literal::byte_characterproc_macro::Literal::c_stringThese APIs are now stable in const contexts:
Atomic*::into_innerio::Cursor::newio::Cursor::get_refio::Cursor::positionio::emptyio::repeatio::sinkpanic::Location::callerpanic::Location::filepanic::Location::linepanic::Location::columnCargo
lib.name, always normalizing to_.cargo add.gitoxideby default for listing files.Rustdoc
/in docs to begin a search.Misc
Compatibility Notes
RustcEncodableandRustcDecodableare soft-destabilized, to be removedfrom the prelude in next edition.
wasm_c_abifuture-incompatibility lint will warn about use of thenon-spec-compliant C ABI.
Use
wasm-bindgen v0.2.88to generate forward-compatible bindings.v1.78Compare Source
==========================
Language
#[cfg(target_abi = ...)]#[diagnostic]namespace and#[diagnostic::on_unimplemented]attributeillegal_floating_point_literal_patterninvalid_reference_castingto include references casting to bigger memory layoutnon_contiguous_range_endpointslint for singleton gaps after exclusive rangeswasm_c_abilint for use of older wasm-bindgen versionsThis lint currently only works when using Cargo.
indirect_structural_matchandpointer_structural_matchlints to match RFCPartialEq-typed consts as patterns a hard errorrefining_impl_traitlint into_reachable,_internalvariantswhere-boundstrait Trait: Auto {}: allow upcasting fromdyn Traittodyn Trait + AutoCompiler
INVALID_DOC_ATTRIBUTESlint deny by defaultusecheckingTarget changes:
wasm32-wasip1tier 2 (without host tools) targetwasm32-wasip2tier 3 targetwasm32-wasi-preview1-threadstowasm32-wasip1-threadsarm64ec-pc-windows-msvctier 3 targetarmv8r-none-eabihftier 3 target for the Cortex-R52loongarch64-unknown-linux-musltier 3 targetRefer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
Libraries
RwLockwith custom implementationchar::is_grapheme_extendedStabilized APIs
impl Read for &Stdin'staticlifetimes for severalstd::error::Errorrelated implementationsimpl<Fd: AsFd>impl take?Sizedimpl From<TryReserveError> for io::ErrorThese APIs are now stable in const contexts:
Barrier::new()Cargo
rust-versionwhen generating lockfile--charsetvia auto-detecting config valuetarget.<triple>.rustdocflagsofficiallyMisc
--test-builder-wrapperarg to support wrappers such as RUSTC_WRAPPER when building doctestsCompatibility Notes
This change helps users catch undefined behavior in their code, though the details of how much is checked are generally not stable.
impl Traitarithmetic_overflowlintconstinitializersThis code was accidentally accepted. The fix can break generic code that borrows a value of unknown type,
as there is currently no way to declare "this type has no interior mutability". In the future, stabilizing
the
Freezetrait will allow proper support for such code.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.
rustcwith 1CGU onx86_64-pc-windows-msvcrustcwith 1CGU onx86_64-apple-darwinrun-makeV2 infrastructure, arun_make_supportlibrary and port over 2 tests as examplev1.77Compare Source
===========================
std::process::CommandConfiguration
📅 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.
This PR was generated by Mend Renovate. View the repository job log.