-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
chore(deps): Update Rust Stable to v1.85 #18
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/stable-1.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
c6d88df
to
8caca44
Compare
8caca44
to
1cd10a2
Compare
84e39c4
to
b44e7ec
Compare
ecf3930
to
28897e9
Compare
28897e9
to
89227d6
Compare
89227d6
to
f59f1f6
Compare
f59f1f6
to
6d4612c
Compare
c450586
to
9c58349
Compare
9c58349
to
56716ed
Compare
56716ed
to
54d5858
Compare
54d5858
to
b78b094
Compare
b78b094
to
cdf480d
Compare
cdf480d
to
c841a4d
Compare
c841a4d
to
349d1a8
Compare
349d1a8
to
539b5f5
Compare
539b5f5
to
4679cea
Compare
4679cea
to
18088c3
Compare
18088c3
to
246e25e
Compare
665c504
to
d23a285
Compare
db498eb
to
d7b83a2
Compare
d7b83a2
to
7479857
Compare
7479857
to
6e7b844
Compare
6e7b844
to
08cbf8b
Compare
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Labels
None yet
0 participants
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.85
Release Notes
rust-lang/rust (STABLE)
v1.85
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
Compare Source
==========================
llvm-objcopy
if llvm tools are enabled.v1.83
Compare Source
==========================
Language
&mut
,*mut
,&Cell
, and*const Cell
in const.const
initializers.'r#ident
).!
const extern
functions can now be defined for other calling conventions.expr_2021
macro fragment specifier in all editions.non_local_definitions
lint now fires on less code and warns by default.Compiler
-Csoft-float
flag.aarch64_unknown_nto_qnx700
arm64e-apple-tvos
armv7-rtems-eabihf
loongarch64-unknown-linux-ohos
riscv32-wrs-vxworks
andriscv64-wrs-vxworks
riscv32{e|em|emc}-unknown-none-elf
x86_64-unknown-hurd-gnu
x86_64-unknown-trusty
Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
Libraries
PartialEq
forExitCode
.catch_unwind
can deal with foreign exceptions without UB, although the exact behavior is unspecified.Default
forHashMap
/HashSet
iterators that don't already have it.ptr::add
/sub
to not claim equivalence withoffset
.Stabilized APIs
BufRead::skip_until
ControlFlow::break_value
ControlFlow::continue_value
ControlFlow::map_break
ControlFlow::map_continue
DebugList::finish_non_exhaustive
DebugMap::finish_non_exhaustive
DebugSet::finish_non_exhaustive
DebugTuple::finish_non_exhaustive
ErrorKind::ArgumentListTooLong
ErrorKind::Deadlock
ErrorKind::DirectoryNotEmpty
ErrorKind::ExecutableFileBusy
ErrorKind::FileTooLarge
ErrorKind::HostUnreachable
ErrorKind::IsADirectory
ErrorKind::NetworkDown
ErrorKind::NetworkUnreachable
ErrorKind::NotADirectory
ErrorKind::NotSeekable
ErrorKind::ReadOnlyFilesystem
ErrorKind::ResourceBusy
ErrorKind::StaleNetworkFileHandle
ErrorKind::StorageFull
ErrorKind::TooManyLinks
Option::get_or_insert_default
Waker::data
Waker::new
Waker::vtable
char::MIN
hash_map::Entry::insert_entry
hash_map::VacantEntry::insert_entry
These APIs are now stable in const contexts:
Cell::into_inner
Duration::as_secs_f32
Duration::as_secs_f64
Duration::div_duration_f32
Duration::div_duration_f64
MaybeUninit::as_mut_ptr
NonNull::as_mut
NonNull::copy_from
NonNull::copy_from_nonoverlapping
NonNull::copy_to
NonNull::copy_to_nonoverlapping
NonNull::slice_from_raw_parts
NonNull::write
NonNull::write_bytes
NonNull::write_unaligned
OnceCell::into_inner
Option::as_mut
Option::expect
Option::replace
Option::take
Option::unwrap
Option::unwrap_unchecked
Option::<&_>::copied
Option::<&mut _>::copied
Option::<Option<_>>::flatten
Option::<Result<_, _>>::transpose
RefCell::into_inner
Result::as_mut
Result::<&_, _>::copied
Result::<&mut _, _>::copied
Result::<Option<_>, _>::transpose
UnsafeCell::get_mut
UnsafeCell::into_inner
array::from_mut
char::encode_utf8
{float}::classify
{float}::is_finite
{float}::is_infinite
{float}::is_nan
{float}::is_normal
{float}::is_sign_negative
{float}::is_sign_positive
{float}::is_subnormal
{float}::from_bits
{float}::from_be_bytes
{float}::from_le_bytes
{float}::from_ne_bytes
{float}::to_bits
{float}::to_be_bytes
{float}::to_le_bytes
{float}::to_ne_bytes
mem::replace
ptr::replace
ptr::slice_from_raw_parts_mut
ptr::write
ptr::write_unaligned
<*const _>::copy_to
<*const _>::copy_to_nonoverlapping
<*mut _>::copy_from
<*mut _>::copy_from_nonoverlapping
<*mut _>::copy_to
<*mut _>::copy_to_nonoverlapping
<*mut _>::write
<*mut _>::write_bytes
<*mut _>::write_unaligned
slice::from_mut
slice::from_raw_parts_mut
<[_]>::first_mut
<[_]>::last_mut
<[_]>::first_chunk_mut
<[_]>::last_chunk_mut
<[_]>::split_at_mut
<[_]>::split_at_mut_checked
<[_]>::split_at_mut_unchecked
<[_]>::split_first_mut
<[_]>::split_last_mut
<[_]>::split_first_chunk_mut
<[_]>::split_last_chunk_mut
str::as_bytes_mut
str::as_mut_ptr
str::from_utf8_unchecked_mut
Cargo
CARGO_MANIFEST_PATH
environment variable, similar toCARGO_MANIFEST_DIR
but pointing directly to the manifest file.package.autolib
to the manifest, allowing[lib]
auto-discovery to be disabled.Rustdoc
# headers
from the main item's doc comment. This is similar to a third-party feature provided by the rustdoc-search-enhancements browser extension.Compatibility Notes
Warn against function pointers using unsupported ABI strings.
Check well-formedness of the source type's signature in fn pointer casts. 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.
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.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.The future incompatibility lint
deprecated_cfg_attr_crate_type_name
has been made into a hard error. 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 runningrustc
/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.RFC 3127 said
#129687 implements this behaviour, when
rust-src
is present at compile time,rustc
replaces/rustc/$hash
with a real path into the localrust-src
component with best effort.To sanitize this, users must explicitly supply
--remap-path-prefix=<path to rust-src>=foo
or not have therust-src
component installed.The allow-by-default
missing_docs
lint used to disable itself when invoked throughrustc --test
/cargo test
, resulting in#[expect(missing_docs)]
emitting false positives due to the expectation being wrongly unfulfilled. This behavior has now been removed, which allows#[expect(missing_docs)]
to be fulfilled in all scenarios, but will also report newmissing_docs
diagnostics for publicly reachable#[cfg(test)]
items, integration test 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.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.Update the minimum external LLVM version to 18.
Remove
aarch64-fuchsia
andx86_64-fuchsia
target aliases in favor ofaarch64-unknown-fuchsia
andx86_64-unknown-fuchsia
respectively.The ABI-level exception class of a Rust panic is now encoded with native-endian bytes, so it is legible in hex dumps.
Visual Studio 2013 is no longer supported for MSVC targets.
The sysroot no longer contains the
std
dynamic library in its top-levellib/
dir.v1.82
Compare 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+ use<'lt>
opaque type precise capturing (RFC 3617)&raw const
and&raw mut
operators (RFC 2582)offset_of!
T
to be live when dropping[T; 0]
const
operands in inline assemblyconst fn
Compiler
aarch64-apple-ios-macabi
andx86_64-apple-ios-macabi
to Tier 2, and ship them with rustup-> !
aarch64-apple-darwin
to Tier 1aarch64-unknown-trusty
andarmv7-unknown-trusty
as tier 3 targetswasm32-wasip2
to Tier 2.Libraries
{Rc,Arc}::make_mut()
toPath
,OsStr
, andCStr
.Stabilized APIs
std::thread::Builder::spawn_unchecked
std::str::CharIndices::offset
std::option::Option::is_none_or
[T]::is_sorted
[T]::is_sorted_by
[T]::is_sorted_by_key
Iterator::is_sorted
Iterator::is_sorted_by
Iterator::is_sorted_by_key
std::future::Ready::into_inner
std::iter::repeat_n
impl<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::Iter
impl Default for std::collections::btree_map::RangeMut
impl Default for std::collections::btree_map::ValuesMut
impl Default for std::collections::vec_deque::Iter
impl Default for std::collections::vec_deque::IterMut
Rc<T>::new_uninit
Rc<MaybeUninit<T>>::assume_init
Rc<[T]>::new_uninit_slice
Rc<[MaybeUninit<T>]>::assume_init
Arc<T>::new_uninit
Arc<MaybeUninit<T>>::assume_init
Arc<[T]>::new_uninit_slice
Arc<[MaybeUninit<T>]>::assume_init
Box<T>::new_uninit
Box<MaybeUninit<T>>::assume_init
Box<[T]>::new_uninit_slice
Box<[MaybeUninit<T>]>::assume_init
core::arch::x86_64::_bextri_u64
core::arch::x86_64::_bextri_u32
core::arch::x86::_mm_broadcastsi128_si256
core::arch::x86::_mm256_stream_load_si256
core::arch::x86::_tzcnt_u16
core::arch::x86::_mm_extracti_si64
core::arch::x86::_mm_inserti_si64
core::arch::x86::_mm_storeu_si16
core::arch::x86::_mm_storeu_si32
core::arch::x86::_mm_storeu_si64
core::arch::x86::_mm_loadu_si16
core::arch::x86::_mm_loadu_si32
core::arch::wasm32::u8x16_relaxed_swizzle
core::arch::wasm32::i8x16_relaxed_swizzle
core::arch::wasm32::i32x4_relaxed_trunc_f32x4
core::arch::wasm32::u32x4_relaxed_trunc_f32x4
core::arch::wasm32::i32x4_relaxed_trunc_f64x2_zero
core::arch::wasm32::u32x4_relaxed_trunc_f64x2_zero
core::arch::wasm32::f32x4_relaxed_madd
core::arch::wasm32::f32x4_relaxed_nmadd
core::arch::wasm32::f64x2_relaxed_madd
core::arch::wasm32::f64x2_relaxed_nmadd
core::arch::wasm32::i8x16_relaxed_laneselect
core::arch::wasm32::u8x16_relaxed_laneselect
core::arch::wasm32::i16x8_relaxed_laneselect
core::arch::wasm32::u16x8_relaxed_laneselect
core::arch::wasm32::i32x4_relaxed_laneselect
core::arch::wasm32::u32x4_relaxed_laneselect
core::arch::wasm32::i64x2_relaxed_laneselect
core::arch::wasm32::u64x2_relaxed_laneselect
core::arch::wasm32::f32x4_relaxed_min
core::arch::wasm32::f32x4_relaxed_max
core::arch::wasm32::f64x2_relaxed_min
core::arch::wasm32::f64x2_relaxed_max
core::arch::wasm32::i16x8_relaxed_q15mulr
core::arch::wasm32::u16x8_relaxed_q15mulr
core::arch::wasm32::i16x8_relaxed_dot_i8x16_i7x16
core::arch::wasm32::u16x8_relaxed_dot_i8x16_i7x16
core::arch::wasm32::i32x4_relaxed_dot_i8x16_i7x16_add
core::arch::wasm32::u32x4_relaxed_dot_i8x16_i7x16_add
These APIs are now stable in const contexts:
std::task::Waker::from_raw
std::task::Context::from_waker
std::task::Context::waker
{integer}::from_str_radix
std::num::ParseIntError::kind
Cargo
info
cargo subcommandCompatibility Notes
explicit_builtin_cfgs_in_flags
lint in order to prevent incoherent state, eg.windows
cfg active but target is Linux based. The appropriaterustc
flag should be used instead.binary_search
which 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_NOSIGNAL
when 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.multivalue
andreference-types
are nowboth enabled by default. These two features both have subtle changes implied
for generated WebAssembly binaries. For the
multivalue
feature, WebAssemblytarget support has changed when upgrading to LLVM 19. Support for generating
functions with multiple returns no longer works and
-Ctarget-feature=+multivalue
has 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-types
feature 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-types
proposal 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_features
custom section and may affect downstream tooling such aswasm-opt
consuming the module. Generating a WebAssembly module that disablesdefault features requires
-Zbuild-std
support 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.81
Compare 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_constant
to deny.offset_from
: always allow pointers to point to the same address.Compiler
-Cinline-threshold=...
.transmute
size checks.box_pointers
lint.no_std
Xtensa targets:xtensa-esp32-none-elf
,xtensa-esp32s2-none-elf
,xtensa-esp32s3-none-elf
std
Xtensa targets:xtensa-esp32-espidf
,xtensa-esp32s2-espidf
,xtensa-esp32s3-espidf
i686-unknown-redox
arm64ec-pc-windows-msvc
to Tier 2.loongarch64-unknown-linux-musl
to Tier 2 with host tools.wasm32-wasi
. (see compatibility note below)Libraries
PanicInfo
and std'sPanicInfo
. (see compatibility note below){Rc,Arc}::make_mut()
to unsized types.driftsort
and unstableipnsort
. Allslice::sort*
andslice::select_nth*
methods are expected to see significant performance improvements. See the research project for more details.create_dir_all
with respect to empty paths.Command
's batch files argument escaping not working when file name has trailing whitespace or periods (CVE-2024-43402).Stabilized APIs
core::error
hint::assert_unchecked
fs::exists
AtomicBool::fetch_not
Duration::abs_diff
IoSlice::advance
IoSlice::advance_slices
IoSliceMut::advance
IoSliceMut::advance_slices
PanicHookInfo
PanicInfo::message
PanicMessage
These APIs are now stable in const contexts:
char::from_u32_unchecked
(function)char::from_u32_unchecked
(method)CStr::count_bytes
CStr::from_ptr
Cargo
.cargo_vcs_info.json
is always included, even when--allow-dirty
is passed.package.license-file
andpackage.readme
pointing to non-existent files during packaging.--release
/--debug
flag along with the--profile
flag.lib.plugin
key 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-wasi
target will now issue a compiler warning and request users switch to thewasm32-wasip1
target instead. Both targets are the same,wasm32-wasi
is only being renamed, and this change to the WASI target is being done to enable removingwasm32-wasi
in January 2025.We have renamed
std::panic::PanicInfo
tostd::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::PanicInfo
will remain unchanged, however, as this is now a different type.The reason is that these types have different roles:
std::panic::PanicHookInfo
is the argument to the panic hook in std context (where panics can have an arbitrary payload), whilecore::panic::PanicInfo
is 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.
auto
CI job to check kernel builds.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.
This PR was generated by Mend Renovate. View the repository job log.