Update Rust - #305
Open
bootc-bot[bot] wants to merge 1 commit into
Open
Conversation
Signed-off-by: bootc-bot[bot] <225049296+bootc-bot[bot]@users.noreply.github.com> Signed-off-by: bootc-bot[bot] <225049296+bootc-bot[bot]@users.noreply.github.com>
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.0.100→1.0.1040.22→0.231.2.1→1.2.51.0.3→1.0.44.5.48→4.6.57.2.1→7.2.20.2.34→0.2.362.9.0→2.11.00.3.31→0.3.332.0.6→2.0.70.2.186→0.2.1890.3.35→0.3.371.0.101→1.0.1070.6→0.71.0.41→1.0.471.11.3→1.13.11.1.2→1.1.41.0.228→1.0.2291.0.145→1.0.1512→33.23.0→3.27.03.23.0→3.27.02.0.18→2.0.191.47.1→1.53.11.1.0+spec-1.1.0→1.1.40.1.41→0.1.440.3.20→0.3.231.18.1→1.24.08.0.4→8.0.50.5→0.7Release Notes
dtolnay/anyhow (anyhow)
v1.0.104Compare Source
syndev-dependency to version 3v1.0.103Compare Source
Error::downcast_mut(#451, #452)v1.0.102Compare Source
v1.0.101Compare Source
marshallpierce/rust-base64 (base64)
v0.23.0Compare Source
simd-unsafefeature:Simdpicks the bestinstruction set at runtime (AVX2 on
x86_64, NEON onaarch64) and falls back to the scalarGeneralPurposeengine, whileAvx2andNeontarget one instruction set with no runtimedetection and work in
no_std. The engines support the standard and URL-safe alphabets.camino-rs/camino (camino)
v1.2.5Compare Source
Fixed
Removed unnecessary files from the package.
v1.2.4Compare Source
Added
Methods to convert between
Box<Utf8Path>andBox<Path>:From<Box<Utf8Path>> for Box<Path>(as of release, not documented due to rust-lang/rust#158466).Utf8Path::into_std_boxed_path(self: Box<Self>)Utf8Path::from_boxed_path(path: Box<Path>)TryFrom<Box<Path>> for Box<Utf8Path>Thanks nicopap for your first contribution!
v1.2.3Compare Source
Performance improvements
Utf8Path::hashnow delegates tostd::path::Path::hash, resulting in hashing requiring ~2x fewer instructions. Thanks stormslowly for your first contribution!v1.2.2Compare Source
Added
On Rust 1.91 and above:
Utf8PathBuf::add_extensionUtf8Path::file_prefixUtf8Path::with_added_extensionUtf8PathBuf::newis a const fn.rust-lang/cfg-if (cfg-if)
v1.0.4Compare Source
cfg(true)andcfg(false)(#99)clap-rs/clap (clap)
v4.6.5Compare Source
Fixes
value_namesare optional withnum_argsv4.6.4Compare Source
Internal
v4.6.3Compare Source
Fixes
"literal".function()as attribute valuesv4.6.2Compare Source
Fixes
aliaswhen there is only onev4.6.1Compare Source
Fixes
v4.6.0Compare Source
Compatibility
v4.5.61Compare Source
Internal
v4.5.60Compare Source
Fixes
v4.5.59Compare Source
Fixes
Command::ignore_errorsno longer masks help/version on subcommandsv4.5.58Compare Source
v4.5.57Compare Source
Fixes
.value_terminator("--")caused problems with an argument with.last(true)v4.5.56Compare Source
Fixes
v4.5.55Compare Source
Fixes
value_terminator("--")and escapes (--) where./foo -- barmeans the first arg is empty, rather than escaping future argsv4.5.54Compare Source
Fixes
[default]to its own paragraph whenPossibleValue::helpis present in--helpv4.5.53Compare Source
Features
default_values_if,default_values_ifsv4.5.52Compare Source
Fixes
args_conflicts_with_subcommandsconflicts with anArgGroupv4.5.51Compare Source
Fixes
ArgAction::Countv4.5.50Compare Source
Features
CowwhereStringand&strare acceptedv4.5.49Compare Source
Fixes
nukesor/comfy-table (comfy-table)
v7.2.2Compare Source
Fix
rodrimati1992/const_format_crates (const_format)
v0.2.36Breaking change: bumped Minimum Supported Rust Version to Rust 1.71. This change is motivated by
quoteincreasing its MSRV to 1.71.Now the
"rust_1_64"feature is effectively always enabled, so these items are always enabled:const_format::str_splitDeprecated these items because their replacements now take constant time to run:
const_format::fmt::StrWriter::as_bytes_alt: superceeded byas_bytesconst_format::fmt::StrWriter::as_str_alt: superceeded byas_strconst_format::fmt::StrWriterMut::as_bytes_alt: superceeded byas_bytesconst_format::fmt::StrWriterMut::as_str_alt: superceeded byas_strconst_format::utils::slice_up_to_len_alt: superceeded byslice_up_to_lenChanged these methods from being conditionally const (by requiring the
"rust_1_64"feature to be const) to being unconditionally const:const_format::fmt::StrWriter::as_bytesconst_format::fmt::StrWriter::as_strconst_format::fmt::StrWriterMut::as_bytesconst_format::fmt::StrWriterMut::as_strChanged this method to be
const:const_format::AsciiStr::as_strFixed nightly 2026-04-09 compatibility when
cargo update -Z minimal-versionsis used by bumpingkonstinternal dependency to"0.2.20"versionv0.2.35Breaking change: bumped Minimum Supported Rust Version to Rust 1.60. This change is motivated by
quoteincreasing its MSRV to 1.60.ia0/data-encoding (data-encoding)
v2.11.0Compare Source
v2.10.0Compare Source
rust-lang/futures-rs (futures-util)
v0.3.33Compare Source
ReadLine's soundness issue regarding to exception safety. (#3020)Sendimpl forIterPinRefandIter. (#3003)compat01as03implementation. (#3012)FuturesUnordered::IntoIter. (#3005)portable-atomic-allocfeature and use it inFuturesUnordered. (#3007)alloc::task::Wake. (#3010)spinto 0.12. (#3014)v0.3.32Compare Source
ready!macro in favor ofstd::task::ready!added in Rust 1.64 (#2925)pin_mut!macro in favor ofstd::pin::pin!added in Rust 1.68 (#2929)FuturesOrdered::clear(#2927)mpsc::*Receiver::recv(#2947)mpsc::*Receiver::try_recvand deprecatempsc::*Receiver::::try_next(#2944)FusedStreamforsink::With(#2948)no_stdsupport forshared(#2868)Mutex::new()const (#2956)#[clippy::has_significant_drop]to guards (#2967)pin-utils(#2929)num_cpus(#2946)dtolnay/indoc (indoc)
v2.0.7Compare Source
indoc! {c"..."},indoc! {cr"..."}(#67)rust-lang/libc (libc)
v0.2.189Compare Source
Added
pthread_sigmask,sigwait,sigwaitinfo,sigtimedwait,faccessat, andpthread_kill(#5270)clone3syscall (#4980)CLOCK_PROCESS_CPUTIME_IDandCLOCK_THREAD_CPUTIME_ID(#5274)Deprecated
CLONE_INTO_CGROUPandCLONE_CLEAR_SIGHAND. These overflow their types and will be changed to a larger size in the future. (8c6e6710458d)Fixed
wchar_tdefinition under Arm (#5245)time-related symbols (#5300)v0.2.188Compare Source
Changed
SendandSyncforDIR(35b062263401)These were removed in 0.2.187 because
libcdoes not actually makeSendandSyncguarantees about
DIR(or other extern types), but this caused some crates to break.The traits are added back for now to allow time to migrate, but will be removed again
in the future; please make sure your crates are not relying on
libc::DIR: Sendorlibc::DIR: Sync.v0.2.187Compare Source
This release contains a number of improvements related to 64-bit
time_tconfiguration.Of note the existing
RUST_LIBC_UNSTABLE_*environment variables have been replacedwith configuration options. The new way to use these is:
Being able to set this via
RUSTFLAGSmakes it easier to only apply configuration tospecific targets (and notably, not the host if build scripts are used).
There are two other notable changes:
The 32-bit
windows-gnutargets now respectlibc_unstable_gnu_time_bitsuClibc now supports a similar configuration option:
RUSTFLAGS='--cfg=libc_unstable_uclibc_time64'As a reminder, these options are under active development and may change in the future
(hence the "unstable" in the name). It likely that we will harmonize everything under a
single configuration option before considering them stable.
Support
aarch64-unknown-linux-pauthtest(#5065)Added
POSIX_SPAWN_*constants (#5104)getpwent,setpwent, andendpwent(#5160)preadv2andpwritev2(#5157)seccomp_notif*structures (#5224)timer_[create, delete, getoverrun, gettime, settime](#5108)PROC_PIDT_SHORTBSDINFOandproc_bsdshortinfo(#5110)SIOC*constants fromsockio.h(#5263)_IOR,_IOW,_IOWR(#5264)bpf_programandbpf_insn(#5235)kqueueconstants (#5077)vm_statistics64with recently added fields (#5253)IN6_IFF_*andSIOCGIFAFLAG_IN6(#5239)O_*,POSIX_FADV_*,NI*, and a few other missing constants (#5116)fdatasync,dlvsym,reallocarray,qsort_r,pthread_*affinity_np,ftok,extattr_*, anddup3(#5116)in6_pktinfo(#5256)DLT_*constants (#5235)PROC_LOGSIGEXIT_*andPPROT_*(#4657)SO_RERROR(#5260)IN6_IFF_*,in6_ifreq, andSIOCGIFAFLAG_IN6(#5239)_IO*helpers fromsys/ioccom.h(#5239)PTHREAD_*_MUTEX_INITIALIZER_NPfor riscv64 (#5094)struct tcp_info(#5215)OPEN_TREE_NAMESPACE(#5145)SECCOMP_IOCTL_*constants (#5224)SO_DETACH_REUSEPORT_BPF(#5081)futex_waitv(#5125)fsopen,fsconfig,fsmount, andfspick(#5145)statxpresent since 6.16 (#4621)ifaddrmsgandrtattr(#5234)sockaddr_iucv(#5041)ENOTCAPABLE(#4925)renameat2(#5113)F_SETFD(#5258)POLLRD*andPOLLWR*constants (#5258)SO_KEEPALIVEand TCP keepalive constants (#5111)TCP_MAXSEG(#5258)eventfdandEFD_*constants (#5258)pipe2(#5258)strerror_r(#5258)netinetstructs and constants (#5258)*atanddirentfunctions (#5117)port_alertandPORT_ALERT*constants (#5203)Deprecated
CPUCTL_RSMSRandUTX_DB_LASTLOG(#5116)Fixed
tsfrom*const timespecto*mut timespecin _lwp_park` (#5169)PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIGconstants fromu8toc_uint(#4936)cpuset_ttypo inCPU_ZERO(#5098)ifaddrs, pthread barriers, process sizing fields, andmcontextalignment (#5116)CPUCTL_CPUID*,EV_HUP, andEV_SYSFLAGS(#5116)POLLOUT(#5090)EPIOC[GS]PARAMSwith nonstandard _IOC (#5188)unsafe(#3727)__getmntinfo13(#5251)PTHREAD_MUTEX_INITIALIZER(#5241)Changed
-> c_void(#5240)AIO_LISTIO_MAXto account for changes in macOS 27 (#5253)MS_NOUSER(#5215)SW_MAXandSW_CNT(#5215)swapped_counttovm_statistics64(#4926)libc_unstable_gnu_time_bitsfor 64-bittime_tconfig (#5062)Removed
Elf32_Lword,ip_mreq_source, andIP_constants (#5116)KERN_REALROOTDEVandVM_LAPTOP_MODE(#5177)Other
LIBC_BUILD_VERBOSEis set (#5272)*LASTconstants as potentially changing (#5120)*MAXconstants as potentially changing (#5122)ELASTconstants as potentially changing (#5118)RAND_MAXas potentially changing (#5119)*NUMconstants as potentially changing (#5123)*COUNTconstants as potentially changing (#5121)time_t(#5046)RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64(#5197)RUST_LIBC_UNSTABLEenv withlibc_unstable*cfg (#4977)dtolnay/linkme (linkme)
v0.3.37Compare Source
v0.3.36Compare Source
dtolnay/proc-macro2 (proc-macro2)
v1.0.107Compare Source
v1.0.106Compare Source
Span::byte_range(#530)v1.0.105Compare Source
v1.0.104Compare Source
v1.0.103Compare Source
Literalmethodsstr_value,cstr_value,byte_str_value(#525)v1.0.102Compare Source
nextest-rs/quick-junit (quick-junit)
v0.7.0Compare Source
Changed
Skipped test counts
Skipped test counts are now reported via the
skippedattribute rather thandisabled. For<testsuite>,skippedmatches the llg schema and the Jenkins junit-10 schema, as well as pytest and Maven Surefire.<testsuite>now emitsskipped="N", and the root<testsuites>element now emits an aggregatedskipped="N"count. Previously the root didn't carry a skip count at all.skippedis a quick-junit extension. It follows the modern JUnit convention (as documented, for example, by testmoapp/junitxml) and is similar to quick-junit's existing extensions such asuuid.TestSuite'sdisabledfield has been renamed toskipped.Reportgains new publicskippedanddisabledfields, andReport::add_test_suitenow aggregates skip counts intoReport::skipped.disabledis now modeled as a separate optional count on bothReportandTestSuite, distinct fromskipped. (disabledis intended to count tests that are disabled by design, such as googletest'sDISABLED_-prefixed tests. Note, however, that quick-junit doesn't have a notion of disabled tests at the moment.)Other changes
Reportis now#[non_exhaustive], consistent withTestSuiteandTestCase. Construct it viaReport::newand then assign fields, so that future field additions are non-breaking.<testsuite>and<testcase>elements are now serialized as self-closing tags (for example,<testcase name="my-test"/>rather than<testcase name="my-test"></testcase>). The output is semantically identical XML, only more compact and idiomatic. The deserializer already accepted these self-closing forms, so serializing them means round-trip tests now cover those parse paths.dtolnay/quote (quote)
v1.0.47Compare Source
v1.0.46Compare Source
get_spaninquote_spanned(#329, thanks @Noratrieb)v1.0.45Compare Source
v1.0.44Compare Source
'r#async(#323)v1.0.43Compare Source
stringify!macro inside generated code (#316)v1.0.42Compare Source
rust-lang/regex (regex)
v1.13.1Compare Source
===================
This is a release that fixes a bug where incorrect regex match offsets could be
reported. Note that this doesn't impact whether a match occurs or not, just
where it occurs. The match offsets are still valid for slicing, they just may
not refer to the correct leftmost-first match. See
#1364 for (many) more details.
Bug fixes:
Fixes previously unsound reverse suffix and inner optimizations.
v1.13.0Compare Source
===================
This release includes a new API, a
regex!macro, for lazy compilation ofa regex from a string literal. If you use regexes a lot, it's likely you've
already written one exactly like it. The new macro can be used like this:
Improvements:
Add a new
regex!macro for efficient and automatic reuse of a compiled regex.v1.12.4Compare Source
===================
This release includes a performance optimization for compilation of regexes
with very large character classes.
Improvements:
Avoid re-canonicalizing the entire interval set when pushing new class ranges.
v1.12.3Compare Source
===================
This release excludes some unnecessary things from the archive published to
crates.io. Specifically, fuzzing data and various shell scripts are now
excluded. If you run into problems, please file an issue.
Improvements:
Switch from a Cargo
excludelist to anincludelist, and exclude someunnecessary stuff.
v1.12.2Compare Source
===================
This release fixes a
cargo docbreakage on nightly when--cfg docsrsisenabled. This caused documentation to fail to build on docs.rs.
Bug fixes:
Switches the
doc_auto_cfgfeature todoc_cfgon nightly for docs.rs builds.v1.12.1Compare Source
===================
This release makes a bug fix in the new
regex::Captures::get_matchAPIintroduced in
1.12.0. There was an oversight with the lifetime parameterfor the
Matchreturned. This is technically a breaking change, but giventhat it was caught almost immediately and I've yanked the
1.12.0release,I think this is fine.
v1.12.0Compare Source
===================
This release contains a smattering of bug fixes, a fix for excessive memory
consumption in some cases and a new
regex::Captures::get_matchAPI.Improvements:
Add
Capture::get_matchfor returning the overall match withoutunwrap().Bug fixes:
Fixes a panic in the lazy DFA (can only occur for especially large regexes).
Fixes a memory usage regression for large regexes (introduced in
regex 1.9).Fix universal start states in sparse DFA.
Fixes a panic when deserializing a corrupted dense DFA.
Make
regex_automata::meta::Regex::findconsistently returnNonewhenWhichCaptures::Noneis used.bytecodealliance/rustix (rustix)
v1.1.4Compare Source
v1.1.3Compare Source
serde-rs/serde (serde)
v1.0.229Compare Source
serde-rs/json (serde_json)
v1.0.151Compare Source
v1.0.150Compare Source
v1.0.149Compare Source
v1.0.148Compare Source
zmijdependency to 1.0v1.0.147Compare Source
v1.0.146Compare Source
dtolnay/syn (syn)
v3.0.3Compare Source
v3.0.2Compare Source
Error::new_range(start..end, "msg")(#2068, #2070)Cursor::prev_spanv3.0.1Compare Source
v3.0.0Compare Source
This release contains adjustments to the syntax tree to account for ongoing Rust language development from the 3 years since syn 2.0.0 and to anticipate some in-flight Rust language RFCs.
These include: default values in fields, pinned type sugar, raw lifetimes, generator blocks and functions, unnamed enum variants, attributes in tuple types and tuple patterns, named arguments in parenthesized generic argument lists, lightweight clones, const traits, const function pointers, mutability restricted fields, supertrait auto implementation, final associated functions, trait implementability restrictions, const blocks in path arguments, item-level const blocks, return type notation, never patterns, function delegation, mutable by-reference bindings, in-place initialization, field projections, explicitly dyn-compatible traits, view types, file-level frontmatter, generic const arguments, guard patterns, lazy type aliases, explicitly safe foreign items, super let, unsafe fields, pattern types, heterogeneous try-blocks, function contracts, async function trait bounds, static closure coroutine syntax, unsafe binder types, move expressions, for-await loops, and postfix keywords.
[API documentation for 3.0]
Breaking changes
Modifiers
To reserve more room for language evolution, there are 10 new non-exhaustive structs in the syntax tree having the following commonality:
Name ending in
Modifiers. {BlockModifiers,ClosureModifiers,ConstModifiers,FieldModifiers,FnModifiers,ImplModifiers,LocalModifiers,TraitBoundModifiers,TraitModifiers,TypeModifiers}Each implements
Default. The default value is guaranteed to comprise no tokens.Non-exhaustive. Can only be instantiated by Syn's parser or by creating and then mutating
▁▁Modifiers::default().Does not implement
Parse. When parsing, they are parsed by the enclosing syntax tree node.Does not implement
ToTokens. In some cases the syntax that these nodes might hold in the future is not necessarily contiguous tokens.Provides
.require_empty() -> Result<()>which returns a meaningfully spanned error if the modifiers are different from the empty default. This enables a caller to reject syntax it does not recognize without knowing what that syntax may be.Types
Type::BareFnhas been renamed toType::FnPtrto mirror the compiler's terminology. Together with this,BareVariadicis renamed toFnPtrVariadic.The mutually exclusive
const_tokenandmutabilityfields ofType::Ptrhave been unified into an enum of typePointerMutability, which was already previously used byExpr::RawAddr.Every
Typevariant now holds attributes, which can represent the attributes of element types inside a tuple type, or attributes for a function return type.BareFnArgis renamed toNamedArgand is used inParenthesizedGenericArguments, in addition to the existing use inType::FnPtr.Expressions
Expr::Closure, the fieldsor1_tokenandor2_tokenhave been renamed toinputs_beginandinputs_endto indicate the beginning and ending|token of the closure inputs.Statements
Patterns
guardfield ofArmis replaced by a newPat::Guardvariant held in the arm'spat.Items
The
unsafetyfield ofSignature, which represented the presence or absence ofunsafe, is replaced by a 3-waySafetyenum which may be safe, unsafe, or default.ForeignItem::Staticalso gets aSafety.Some of the fields of
Receiverhave been split to a non-exhaustiveReceiverKindenum to create room for proposed new kinds of method receivers, such as pinned.Type aliases now hold a
WhereClausePlacementto distinguish between early placement (which is the default for item-level type aliases and is deprecated in associated type aliases) and late placement (which is the default for associated type aliases and is unstable in item-level type aliases). Parsing and printing a syntax tree will now preserve the where-clause placement rather than rewriting it to the default placement for the item kind.Generics
WherePredicate::LifetimeandWherePredicate::Typehave a new field holding the attributes on the where-predicates.GenericParam::TypeandGenericParam::Constnow match the rest of the syntax tree in holding their optional default using a single Option of tuple, rather than a pair of Option.Literals
Parseimplementation ofLifetimeno longer permits keyword lifetimes, matching a change in Rust 1.81 to deny such lifetimes pre-expansion.Lifetime::parse_anymayConfiguration
📅 Schedule: (in timezone UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate.