chore(deps): update msrv to v1.66.0 #277
Closed
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.60.0
->1.66.0
1.72.0
(+9)Release Notes
rust-lang/rust (rust)
v1.66.0
Compare Source
==========================
Language
repr(Int)
enumsmust_use
onimpl Trait
for supertraitsThis makes
impl ExactSizeIterator
respect the existing#[must_use]
annotation onIterator
...=X
in patternsclippy::for_loops_over_fallibles
lint into rustcsym
operands in inline assemblyThis is a soundness fix which may break code that was erroneously relying on this behavior.
Compiler
information on Rust's tiered platform support.
Libraries
#[derive(Default)]
on a generic#[default]
enum adding unnecessaryDefault
boundsStabilized APIs
proc_macro::Span::source_text
uX::{checked_add_signed, overflowing_add_signed, saturating_add_signed, wrapping_add_signed}
iX::{checked_add_unsigned, overflowing_add_unsigned, saturating_add_unsigned, wrapping_add_unsigned}
iX::{checked_sub_unsigned, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}
BTreeSet::{first, last, pop_first, pop_last}
BTreeMap::{first_key_value, last_key_value, first_entry, last_entry, pop_first, pop_last}
AsFd
implementations for stdio lock types on WASI.impl TryFrom<Vec<T>> for Box<[T; N]>
core::hint::black_box
Duration::try_from_secs_{f32,f64}
Option::unzip
std::os::fd
Rustdoc
Cargo
cargo remove
to remove dependencies from Cargo.tomlcargo publish
now waits for the new version to be downloadable before exitingSee detailed release notes for more.
Compatibility Notes
ProceduralMasquerade
hack to older versions ofrental
__heap_base
and__data_end
on wasm32-wasi.__wasm_init_memory
on WebAssembly.__tls_*
on wasm32-unknown-unknown.libresolv
in libstd on Darwinlibstd
no longer pull inlibiconv.dylib
on Darwin)This is a soundness fix which may break code that was erroneously relying on this behavior.
order_dependent_trait_objects
show up in future-breakage reportsInternal 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.65.0
Compare Source
==========================
Language
as
casts of enums with#[non_exhaustive]
variantslet else
let_underscore_drop
andlet_underscore_lock
from Clippybreak
ing from arbitrary labeled blocks ("label-break-value")Usage of
MaybeUninit
is the correct way to work with uninitialized memory.Drop
impl on foreign ADTsCompiler
special_module_name
lint-C instrument-coverage
New targets:
information on Rust's tiered platform support.
Libraries
PartialEq::ne
in derive(PartialEq)BCRYPT_RNG_ALG_HANDLE
by defaultSystem
with direct system allocator callsstd::layout::Layout
size must not overflowisize::MAX
when rounded up toalign
This also changes the safety conditions on
Layout::from_size_align_unchecked
.Stabilized APIs
std::backtrace::Backtrace
Bound::as_ref
std::io::read_to_string
<*const T>::cast_mut
<*mut T>::cast_const
These APIs are now stable in const contexts:
<*const T>::offset_from
<*mut T>::offset_from
Cargo
This slightly optimizes job scheduling by Cargo, with typically small improvements on larger crate graph builds.
Compatibility Notes
std::layout::Layout
size must not overflowisize::MAX
when rounded up toalign
.This also changes the safety conditions on
Layout::from_size_align_unchecked
.PollFn
now only implementsUnpin
if the closure isUnpin
.This is a possible breaking change if users were relying on the blanket unpin implementation.
See discussion on the PR for details of why this change was made.
This is a backwards-incompatible change to the standard library's surface
area, but is unlikely to affect real world usage.
This behavior was unintentionally changed in 1.64.0, and this release reverts that change by making this an error again.
#![cfg_attr(..., crate_type = ...)]
to set the crate typeThis strengthens the forward compatibility lint deprecated_cfg_attr_crate_type_name to deny.
llvm-has-rust-patches
allows setting the build system to treat the LLVM as having Rust-specific patchesThis option may need to be set for distributions that are building Rust with a patched LLVM via
llvm-config
, not the built-in LLVM.lld
. For more information, see issue 102754.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.
x.sh
andx.ps1
shell scriptsThis provides a 3-10% improvement in compiletimes for real world crates. See perf results.
v1.64.0
Compare Source
===========================
Language
&T
if every byte inT
is inside anUnsafeCell
unused_tuple_struct_fields
, similar to the existing warning for unused struct fields. This lint will become warn-by-default in the future.Compiler
information on Rust's tiered platform support.
#[used]
as llvm.compiler.used for ELF targets--diagnostic-width
compiler flag to define the terminal width.rust-lld
for iOS, tvOS and watchOSLibraries
write!
orwriteln!
into anOsString
: Implementfmt::Write
forOsString
FusedIterator
forstd::net::[Into]Incoming
impl<T: AsRawFd> AsRawFd for {Arc,Box}<T>
ptr::copy
andptr::swap
are doing untyped copiesavailable_parallelism
mem::uninitialized
Stabilized APIs
future::IntoFuture
future::poll_fn
task::ready!
num::NonZero*::checked_mul
num::NonZero*::checked_pow
num::NonZero*::saturating_mul
num::NonZero*::saturating_pow
num::NonZeroI*::abs
num::NonZeroI*::checked_abs
num::NonZeroI*::overflowing_abs
num::NonZeroI*::saturating_abs
num::NonZeroI*::unsigned_abs
num::NonZeroI*::wrapping_abs
num::NonZeroU*::checked_add
num::NonZeroU*::checked_next_power_of_two
num::NonZeroU*::saturating_add
os::unix::process::CommandExt::process_group
os::windows::fs::FileTypeExt::is_symlink_dir
os::windows::fs::FileTypeExt::is_symlink_file
These types were previously stable in
std::ffi
, but are now also available incore
andalloc
:core::ffi::CStr
core::ffi::FromBytesWithNulError
alloc::ffi::CString
alloc::ffi::FromVecWithNulError
alloc::ffi::IntoStringError
alloc::ffi::NulError
These types were previously stable in
std::os::raw
, but are now also available incore::ffi
andstd::ffi
:ffi::c_char
ffi::c_double
ffi::c_float
ffi::c_int
ffi::c_long
ffi::c_longlong
ffi::c_schar
ffi::c_short
ffi::c_uchar
ffi::c_uint
ffi::c_ulong
ffi::c_ulonglong
ffi::c_ushort
These APIs are now usable in const contexts:
slice::from_raw_parts
Cargo
can be centralized in one place. See
workspace.package
and
workspace.dependencies
for more details on how to define these common settings.
--target
flags to build formultiple targets at once, and the
build.target
config option may now take an array of multiple targets.
--jobs
argument can now take a negative number to count backwards fromthe max CPUs.
cargo add
will now updateCargo.lock
.--crate-type
flag to
cargo rustc
to override the crate type.when using a hash in the
rev
field.Misc
rust-analyzer
rustup component is now available on the stable channel.Compatibility Notes
-linux-gnu
targets are now at least kernel 3.2 and glibc 2.17, for targets that previously supported older versions: Increase the minimum linux-gnu versionstransmute_copy
'sU
is not larger thanT
BTreeMap
was fixed that allowed data it was borrowing to be dropped before the container.thumbv6m-none-eabi
target, some incorrectasm!
statements were erroneously accepted if they used the high registers (r8 to r14) as an input/output operand. This is no longer accepted.impl Trait
was accidentally accepted as the associated type value of return-positionimpl Trait
, without fulfilling all the trait bounds of that associated type, as long as the hidden type satisfies said bounds. This has been fixed.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.
#[allow(unused_qualifications)]
in generatedderive
implementationsderive(Debug)
Vec::insert
for the case whereindex == len
.v1.63.0
Compare Source
==========================
Language
impl Trait
args.cenum_impl_drop_cast
warnings deny-by-default.-C panic=abort
is used regardless of declared ABI.Compiler
bundle
native library modifier, also removing thedeprecated
static-nobundle
linking kind.* Refer to Rust's [platform support page][platform-support-doc] for more
information on Rust's tiered platform support.
Libraries
Copy
,Clone
,PartialEq
andEq
forcore::fmt::Alignment
.ptr::null
andnull_mut
to all thin (including extern) types.impl Read and Write for VecDeque<u8>
.[OsStr]::join
.Hash
forcore::alloc::Layout
.OsString
.std::mem::needs_drop
accept?Sized
.impl Termination for Infallible
and then make theResult
impls ofTermination
more generic./proc/self/mem
.Stabilized APIs
array::from_fn
][array::from_fn]Box::into_pin
][Box::into_pin]BinaryHeap::try_reserve
][BinaryHeap::try_reserve]BinaryHeap::try_reserve_exact
][BinaryHeap::try_reserve_exact]OsString::try_reserve
][OsString::try_reserve]OsString::try_reserve_exact
][OsString::try_reserve_exact]PathBuf::try_reserve
][PathBuf::try_reserve]PathBuf::try_reserve_exact
][PathBuf::try_reserve_exact]Path::try_exists
][Path::try_exists]Ref::filter_map
][Ref::filter_map]RefMut::filter_map
][RefMut::filter_map]NonNull::<[T]>::len
ToOwned::clone_into
][ToOwned::clone_into]Ipv6Addr::to_ipv4_mapped
][Ipv6Addr::to_ipv4_mapped]unix::io::AsFd
][unix::io::AsFd]unix::io::BorrowedFd<'fd>
][unix::io::BorrowedFd<'fd>]unix::io::OwnedFd
][unix::io::OwnedFd]windows::io::AsHandle
][windows::io::AsHandle]windows::io::BorrowedHandle<'handle>
][windows::io::BorrowedHandle<'handle>]windows::io::OwnedHandle
][windows::io::OwnedHandle]windows::io::HandleOrInvalid
][windows::io::HandleOrInvalid]windows::io::HandleOrNull
][windows::io::HandleOrNull]windows::io::InvalidHandleError
][windows::io::InvalidHandleError]windows::io::NullHandleError
][windows::io::NullHandleError]windows::io::AsSocket
][windows::io::AsSocket]windows::io::BorrowedSocket<'handle>
][windows::io::BorrowedSocket<'handle>]windows::io::OwnedSocket
][windows::io::OwnedSocket]thread::scope
][thread::scope]thread::Scope
][thread::Scope]thread::ScopedJoinHandle
][thread::ScopedJoinHandle]These APIs are now usable in const contexts:
array::from_ref
][array::from_ref]slice::from_ref
][slice::from_ref]intrinsics::copy
][intrinsics::copy]intrinsics::copy_nonoverlapping
][intrinsics::copy_nonoverlapping]<*const T>::copy_to
][<*const T>::copy_to]<*const T>::copy_to_nonoverlapping
][<*const T>::copy_to_nonoverlapping]<*mut T>::copy_to
][<*mut T>::copy_to]<*mut T>::copy_to_nonoverlapping
][<*mut T>::copy_to_nonoverlapping]<*mut T>::copy_from
][<*mut T>::copy_from]<*mut T>::copy_from_nonoverlapping
][<*mut T>::copy_from_nonoverlapping]str::from_utf8
][str::from_utf8]Utf8Error::error_len
][Utf8Error::error_len]Utf8Error::valid_up_to
][Utf8Error::valid_up_to]Condvar::new
][Condvar::new]Mutex::new
][Mutex::new]RwLock::new
][RwLock::new]Cargo
--config path
command-line argument.CARGO_PKG_RUST_VERSION
.Compatibility Notes
#[link]
attributes are now checked more strictly, which may introduceerrors for invalid attribute arguments that were previously ignored.
Duration
. The convertedduration can differ slightly from what it was.
Internal Changes
These changes provide no direct user facing benefits, but represent significant
improvements to the internals and overall performance of rustc
and related tools.
v1.62.1
Compare Source
==========================
Rust 1.62.1 addresses a few recent regressions in the compiler and standard
library, and also mitigates a CPU vulnerability on Intel SGX.
impl Trait
return types.async fn
lifetimes.x86_64-fortanix-unknown-sgx
target added a mitigation for theMMIO stale data vulnerability, advisory INTEL-SA-00615.
v1.62.0
Compare Source
==========================
Language
#[derive(Default)]
on enums with a#[default]
variantconst
functions may now specifyextern "C"
orextern "Rust"
Compiler
unaligned_references
lint deny-by-defaultThis lint is also a future compatibility lint, and is expected to eventually
become a hard error.
#[thread_local]
attribute on non-static itemsaarch64-pc-windows-gnullvm
andx86_64-pc-windows-gnullvm
targets*x86_64-unknown-none
target to Tier 2** Refer to Rust's [platform support page][platform-support-doc] for more
information on Rust's tiered platform support.
Libraries
Stabilized APIs
bool::then_some
][bool::then_some]f32::total_cmp
][f32::total_cmp]f64::total_cmp
][f64::total_cmp]Stdin::lines
][Stdin::lines]windows::CommandExt::raw_arg
][windows::CommandExt::raw_arg]impl<T: Default> Default for AssertUnwindSafe<T>
][impl<T: Default> Default for AssertUnwindSafe]From<Rc<str>> for Rc<[u8]>
From<Arc<str>> for Arc<[u8]>
FusedIterator for EncodeWide
][FusedIterator for EncodeWide]Clippy
Cargo
cargo add
command for adding dependencies toCargo.toml
fromthe command-line.
docs
name@version
syntax in addition to theprevious
name:version
to align with the behavior incargo add
and othertools.
cargo install
andcargo yank
also now support this syntax so theversion does not need to passed as a separate flag.
git
andregistry
directories in Cargo's home directory (usually~/.cargo
) are now marked as cache directories so that they are notincluded in backups or content indexing (on Windows).
@
argfile support, which will use "response files" if thecommand-line to
rustc
exceeds the operating system's limit.Compatibility Notes
cargo test
now passes--target
torustdoc
if the specified target isthe same as the host target.
#10594
macro_rules!
macros, matching other private itemsFile
reads or writes cannotcomplete synchronously.
Internal Changes
These changes provide no direct user facing benefits, but represent significant
improvements to the internals and overall performance of rustc
and related tools.
v1.61.0
Compare Source
==========================
Language
const fn
signatures can now include generic trait boundsconst fn
signatures can now useimpl Trait
in argument and return positionconst fn
impl Trait
return typeCompiler
#[link]
attributes and on the command line, as well as thewhole-archive
modifier specifically, are now supportedchar
type is now described as UTF-32 in debuginfo#[target_feature]
attribute can now be used with aarch64 features#[target_feature = "adx"]
is now stableLibraries
ManuallyDrop<T>
is now documented to have the same layout asT
#[ignore = "…"]
messages are printed when running testsstd::io::stdio::lock()
return'static
handles. Previously, the creation of locked handles to stdin/stdout/stderr would borrow the handles being locked, which prevented writinglet out = std::io::stdout().lock();
becauseout
would outlive the return value ofstdout()
. Such code now works, eliminating a common pitfall that affected many Rust users.Vec::from_raw_parts
is now less restrictive about its inputsstd::thread::available_parallelism
now takes cgroup quotas into account. Sinceavailable_parallelism
is often used to create a thread pool for parallel computation, which may be CPU-bound for performance,available_parallelism
will return a value consistent with the ability to use that many threads continuously, if possible. For instance, in a container with 8 virtual CPUs but quotas only allowing for 50% usage,available_parallelism
will return 4.Stabilized APIs
Pin::static_mut
][Pin::static_mut]Pin::static_ref
][Pin::static_ref]Vec::retain_mut
][Vec::retain_mut]VecDeque::retain_mut
][VecDeque::retain_mut]Write
forCursor<[u8; N]>
std::os::unix::net::SocketAddr::from_pathname
][std::os::unix::net::SocketAddr::from_pathname]std::process::ExitCode
][std::process::ExitCode] and [std::process::Termination
][std::process::Termination]. The stabilization of these two APIs now makes it possible for programs to return errors frommain
with custom exit codes.std::thread::JoinHandle::is_finished
][std::thread::JoinHandle::is_finished]These APIs are now usable in const contexts:
<*const T>::offset
and<*mut T>::offset
<*const T>::wrapping_offset
and<*mut T>::wrapping_offset
<*const T>::add
and<*mut T>::add
<*const T>::sub
and<*mut T>::sub
<*const T>::wrapping_add
and<*mut T>::wrapping_add
<*const T>::wrapping_sub
and<*mut T>::wrapping_sub
<[T]>::as_mut_ptr
<[T]>::as_ptr_range
<[T]>::as_mut_ptr_range
Cargo
No feature changes, but see compatibility notes.
Compatibility Notes
whole-archive
in some cases, but now rustc tries not to usewhole-archive
unless explicitly requested. This change may result in linking errors in some cases. To fix such errors, native libraries linked from the command line, build scripts, or#[link]
attributes need toa
depends onb
thena
should go first andb
second)+whole-archive
][+whole-archive] modifier.ident
matchers wrapped in groups#
inr#
raw string literals is now required to be less than 256cargo vendor
now only accepts one value for each--sync
flagcfg
predicates inall()
andany()
are always evaluated to detect errors, instead of short-circuiting. The compatibility considerations here arise in nightly-only code that used the short-circuiting behavior ofall
to write something likecfg(all(feature = "nightly", syntax-requiring-nightly))
, which will now fail to compile. Instead, use eithercfg_attr(feature = "nightly", ...)
or nested uses ofcfg
.Internal Changes
These changes provide no direct user facing benefits, but represent significant
improvements to the internals and overall performance of rustc
and related tools.
Configuration
📅 Schedule: Branch creation - "before 5am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.