Skip to content

Update Rust - #305

Open
bootc-bot[bot] wants to merge 1 commit into
mainfrom
bootc-renovate/rust
Open

Update Rust#305
bootc-bot[bot] wants to merge 1 commit into
mainfrom
bootc-renovate/rust

Conversation

@bootc-bot

@bootc-bot bootc-bot Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change
anyhow dependencies patch 1.0.1001.0.104
base64 dependencies minor 0.220.23
camino dependencies patch 1.2.11.2.5
cfg-if workspace.dependencies patch 1.0.31.0.4
clap dependencies minor 4.5.484.6.5
comfy-table dependencies patch 7.2.17.2.2
const_format workspace.dependencies patch 0.2.340.2.36
data-encoding dependencies minor 2.9.02.11.0
futures-util (source) dependencies patch 0.3.310.3.33
indoc dependencies patch 2.0.62.0.7
libc dependencies patch 0.2.1860.2.189
linkme dependencies patch 0.3.350.3.37
proc-macro2 dependencies patch 1.0.1011.0.107
quick-junit dependencies minor 0.60.7
quote dependencies patch 1.0.411.0.47
regex dependencies minor 1.11.31.13.1
rustix dependencies patch 1.1.21.1.4
serde (source) dependencies patch 1.0.2281.0.229
serde_json dependencies patch 1.0.1451.0.151
syn dependencies major 23
tempfile (source) dependencies minor 3.23.03.27.0
tempfile (source) dev-dependencies minor 3.23.03.27.0
thiserror dependencies patch 2.0.182.0.19
tokio (source) dependencies minor 1.47.11.53.1
toml dependencies patch 1.1.0+spec-1.1.01.1.4
tracing (source) workspace.dependencies patch 0.1.410.1.44
tracing-subscriber (source) workspace.dependencies patch 0.3.200.3.23
uuid dependencies minor 1.18.11.24.0
which dependencies patch 8.0.48.0.5
zlink dependencies minor 0.50.7

Release Notes

dtolnay/anyhow (anyhow)

v1.0.104

Compare Source

  • Update syn dev-dependency to version 3

v1.0.103

Compare Source

  • Fix Stacked Borrows violation (UB) in Error::downcast_mut (#​451, #​452)

v1.0.102

Compare Source

v1.0.101

Compare Source

marshallpierce/rust-base64 (base64)

v0.23.0

Compare Source

  • Added more consts for preconfigured configs and engines
  • Make DecodeError::InvalidLastSymbol more clear by including the decoded value
  • Added SIMD-accelerated engines behind the default-on simd-unsafe feature: Simd picks the best
    instruction set at runtime (AVX2 on x86_64, NEON on aarch64) and falls back to the scalar
    GeneralPurpose engine, while Avx2 and Neon target one instruction set with no runtime
    detection and work in no_std. The engines support the standard and URL-safe alphabets.
  • Update MSRV to 1.71.0
  • Add support for custom padding symbols
camino-rs/camino (camino)

v1.2.5

Compare Source

Fixed

Removed unnecessary files from the package.

v1.2.4

Compare Source

Added

Methods to convert between Box<Utf8Path> and Box<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.3

Compare Source

Performance improvements
  • Utf8Path::hash now delegates to std::path::Path::hash, resulting in hashing requiring ~2x fewer instructions. Thanks stormslowly for your first contribution!

v1.2.2

Compare Source

Added

On Rust 1.91 and above:

  • Utf8PathBuf::add_extension
  • Utf8Path::file_prefix
  • Utf8Path::with_added_extension
  • Utf8PathBuf::new is a const fn.
rust-lang/cfg-if (cfg-if)

v1.0.4

Compare Source

  • Support cfg(true) and cfg(false) (#​99)
  • Set and test a MSRV of 1.32
  • Have a single top-level rule
clap-rs/clap (clap)

v4.6.5

Compare Source

Fixes
  • (help) Correctly mark which value_names are optional with num_args

v4.6.4

Compare Source

Internal
  • Update to syn v3

v4.6.3

Compare Source

Fixes
  • (derive) Allow "literal".function() as attribute values

v4.6.2

Compare Source

Fixes
  • (help) Say alias when there is only one

v4.6.1

Compare Source

Fixes
  • (derive) Ensure rebuilds happen when an read env variable is changed

v4.6.0

Compare Source

Compatibility
  • Update MSRV to 1.85

v4.5.61

Compare Source

Internal
  • Update dependencies

v4.5.60

Compare Source

Fixes
  • (help) Quote empty default values, possible values

v4.5.59

Compare Source

Fixes
  • Command::ignore_errors no longer masks help/version on subcommands

v4.5.58

Compare Source

v4.5.57

Compare Source

Fixes
  • Regression from 4.5.55 where having an argument with .value_terminator("--") caused problems with an argument with .last(true)

v4.5.56

Compare Source

Fixes
  • On conflict error, don't show conflicting arguments in the usage

v4.5.55

Compare Source

Fixes
  • Fix inconsistency in precedence between positionals with a value_terminator("--") and escapes (--) where ./foo -- bar means the first arg is empty, rather than escaping future args

v4.5.54

Compare Source

Fixes
  • (help) Move [default] to its own paragraph when PossibleValue::help is present in --help

v4.5.53

Compare Source

Features
  • Add default_values_if, default_values_ifs

v4.5.52

Compare Source

Fixes
  • Don't panic when args_conflicts_with_subcommands conflicts with an ArgGroup

v4.5.51

Compare Source

Fixes
  • (help) Correctly calculate padding for short flags that take a value
  • (help) Don't panic on short flags using ArgAction::Count

v4.5.50

Compare Source

Features
  • Accept Cow where String and &str are accepted

v4.5.49

Compare Source

Fixes
  • (help) Correctly wrap when ANSI escape codes are present
nukesor/comfy-table (comfy-table)

v7.2.2

Compare Source

Fix
  • Minor performance improvements
  • Fixed an edge-case, where multiple LowerBoundary constraints weren't uphold.
  • Fixed an issue where tables were misformatted when no vertical border styling was specified. #​198
rodrimati1992/const_format_crates (const_format)

v0.2.36

Breaking change: bumped Minimum Supported Rust Version to Rust 1.71. This change is motivated by quote increasing its MSRV to 1.71.

Now the "rust_1_64" feature is effectively always enabled, so these items are always enabled:

  • const_format::str_split

Deprecated these items because their replacements now take constant time to run:

  • const_format::fmt::StrWriter::as_bytes_alt: superceeded by as_bytes
  • const_format::fmt::StrWriter::as_str_alt: superceeded by as_str
  • const_format::fmt::StrWriterMut::as_bytes_alt: superceeded by as_bytes
  • const_format::fmt::StrWriterMut::as_str_alt: superceeded by as_str
  • const_format::utils::slice_up_to_len_alt: superceeded by slice_up_to_len

Changed 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_bytes
  • const_format::fmt::StrWriter::as_str
  • const_format::fmt::StrWriterMut::as_bytes
  • const_format::fmt::StrWriterMut::as_str

Changed this method to be const:

  • const_format::AsciiStr::as_str

Fixed nightly 2026-04-09 compatibility when cargo update -Z minimal-versions is used by bumping konst internal dependency to "0.2.20" version

v0.2.35

Breaking change: bumped Minimum Supported Rust Version to Rust 1.60. This change is motivated by quote increasing its MSRV to 1.60.

ia0/data-encoding (data-encoding)

v2.11.0

Compare Source

v2.10.0

Compare Source

rust-lang/futures-rs (futures-util)

v0.3.33

Compare Source

  • Fix ReadLine's soundness issue regarding to exception safety. (#​3020)
  • Fix unsound Send impl for IterPinRef and Iter. (#​3003)
  • Fix stacked borrows violation in compat01as03 implementation. (#​3012)
  • Fix memory leak in FuturesUnordered::IntoIter. (#​3005)
  • Add portable-atomic-alloc feature and use it in FuturesUnordered. (#​3007)
  • Re-export alloc::task::Wake. (#​3010)
  • Update spin to 0.12. (#​3014)

v0.3.32

Compare Source

  • Bump MSRV of utility crates to 1.71. (#​2989)
  • Soft-deprecate ready! macro in favor of std::task::ready! added in Rust 1.64 (#​2925)
  • Soft-deprecate pin_mut! macro in favor of std::pin::pin! added in Rust 1.68 (#​2929)
  • Add FuturesOrdered::clear (#​2927)
  • Add mpsc::*Receiver::recv (#​2947)
  • Add mpsc::*Receiver::try_recv and deprecate mpsc::*Receiver::::try_next (#​2944)
  • Implement FusedStream for sink::With (#​2948)
  • Add no_std support for shared (#​2868)
  • Make Mutex::new() const (#​2956)
  • Add #[clippy::has_significant_drop] to guards (#​2967)
  • Remove dependency to pin-utils (#​2929)
  • Remove dependency on num_cpus (#​2946)
  • Performance improvements (#​2983)
  • Documentation improvements (#​2925, #​2926, #​2940, #​2971)
dtolnay/indoc (indoc)

v2.0.7

Compare Source

  • Support C-string literals indoc! {c"..."}, indoc! {cr"..."} (#​67)
rust-lang/libc (libc)

v0.2.189

Compare Source

Added
  • Emscripten: Add pthread_sigmask, sigwait, sigwaitinfo, sigtimedwait, faccessat, and pthread_kill (#​5270)
  • Linux SPARC: Enable the clone3 syscall (#​4980)
  • Solarish: Add CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID (#​5274)
Deprecated
  • Deprecate CLONE_INTO_CGROUP and CLONE_CLEAR_SIGHAND. These overflow their types and will be changed to a larger size in the future. (8c6e6710458d)
Fixed
  • Musl riscv32: Rename padding fields to avoid a conflict and fix the build (2499ff0ad993)
  • NuttX: Fix wchar_t definition under Arm (#​5245)
  • Windows: Add back link names for time-related symbols (#​5300)

v0.2.188

Compare Source

Changed

These were removed in 0.2.187 because libc does not actually make Send and Sync
guarantees 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: Send or
libc::DIR: Sync.

v0.2.187

Compare Source

This release contains a number of improvements related to 64-bit time_t configuration.
Of note the existing RUST_LIBC_UNSTABLE_* environment variables have been replaced
with configuration options. The new way to use these is:

RUSTFLAGS='--cfg=libc_unstable_musl_v1_2_3' cargo ...
RUSTFLAGS='--cfg=libc_unstable_gnu_time_bits="64"' cargo ...

Being able to set this via RUSTFLAGS makes it easier to only apply configuration to
specific targets (and notably, not the host if build scripts are used).

There are two other notable changes:

  • The 32-bit windows-gnu targets now respect libc_unstable_gnu_time_bits

  • uClibc 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
  • Add support for aarch64-unknown-linux-pauthtest (#​5065)
  • Add support for new QNX targets (#​5241)
  • Better document breaking change policy and recommended usage (#​5179)
Added
  • Android: Add POSIX_SPAWN_* constants (#​5104)
  • Android: Add getpwent, setpwent, and endpwent (#​5160)
  • Android: Add preadv2 and pwritev2 (#​5157)
  • Android: Add seccomp_notif* structures (#​5224)
  • Android: Add timer_[create, delete, getoverrun, gettime, settime] (#​5108)
  • Apple: Add PROC_PIDT_SHORTBSDINFO and proc_bsdshortinfo (#​5110)
  • Apple: Add SIOC* constants from sockio.h (#​5263)
  • Apple: Add _IOR, _IOW, _IOWR (#​5264)
  • Apple: Add bpf_program and bpf_insn (#​5235)
  • Apple: Add additional kqueue constants (#​5077)
  • Apple: Update vm_statistics64 with recently added fields (#​5253)
  • Apple: add IN6_IFF_* and SIOCGIFAFLAG_IN6 (#​5239)
  • Dragonfly: Add O_*, POSIX_FADV_*, NI*, and a few other missing constants (#​5116)
  • Dragonfly: add fdatasync, dlvsym, reallocarray, qsort_r, pthread_*affinity_np, ftok, extattr_*, and dup3 (#​5116)
  • Emscripten: Add in6_pktinfo (#​5256)
  • FreeBSD: Add SOL_LOCAL (#​5185)
  • FreeBSD: Add DLT_* constants (#​5235)
  • FreeBSD: Add PROC_LOGSIGEXIT_* and PPROT_* (#​4657)
  • FreeBSD: Add SO_RERROR (#​5260)
  • FreeBSD: add IN6_IFF_*, in6_ifreq, and SIOCGIFAFLAG_IN6 (#​5239)
  • FreeBSD: add _IO* helpers from sys/ioccom.h (#​5239)
  • Glibc: Add PTHREAD_*_MUTEX_INITIALIZER_NP for riscv64 (#​5094)
  • Glibc: Add new fields to struct tcp_info (#​5215)
  • Linux: Add OPEN_TREE_NAMESPACE (#​5145)
  • Linux: Add SECCOMP_IOCTL_* constants (#​5224)
  • Linux: Add SO_DETACH_REUSEPORT_BPF (#​5081)
  • Linux: Add futex_waitv (#​5125)
  • Linux: Add constants for fsopen, fsconfig, fsmount, and fspick (#​5145)
  • Linux: Add fields to statx present since 6.16 (#​4621)
  • Linux: Add network entry API (#​5049)
  • Linux: add ifaddrmsg and rtattr (#​5234)
  • Linux: add sockaddr_iucv (#​5041)
  • MacOS: Add ENOTCAPABLE (#​4925)
  • Musl: Add renameat2 (#​5113)
  • NuttX: Add F_SETFD (#​5258)
  • NuttX: Add POLLRD* and POLLWR* constants (#​5258)
  • NuttX: Add SO_KEEPALIVE and TCP keepalive constants (#​5111)
  • NuttX: Add TCP_MAXSEG (#​5258)
  • NuttX: Add eventfd and EFD_* constants (#​5258)
  • NuttX: Add pipe2 (#​5258)
  • NuttX: Add strerror_r (#​5258)
  • NuttX: Add netinet structs and constants (#​5258)
  • NuttX: Add socket structs, functions and constants (#​5258)
  • QuRT: Add POSIX timer functions (#​5091)
  • QuRT: Add missing pthread functions from QuRT SDK headers (#​5091)
  • QuRT: Add missing unistd process and file functions (#​5091)
  • QuRT: Add mqueue subsystem (message queues, select/pselect) (#​5091)
  • Redox: Add *at and dirent functions (#​5117)
  • Solarish: Add IP TTL and IPv6 Hop Limit consts (#​5089)
  • Solarish: Add port_alert and PORT_ALERT* constants (#​5203)
  • Solarish: add AI_CANONNAME (#​5085)
  • aarch64: Add SYS_sendfile and SYS_fadvise64 constants (#​5133)
Deprecated
  • Dragonfly: Deprecate compatibility aliases CPUCTL_RSMSR and UTX_DB_LASTLOG (#​5116)
Fixed
  • breaking NetBSD: Correct ts from *const timespec to *mut timespec in _lwp_park` (#​5169)
  • breaking Linux GNU: Change overflowing PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG constants from u8 to c_uint (#​4936)
  • Fix the soundness bug in the representation of extern types (#​5021)
  • Cygwin: fix cpuset_t typo in CPU_ZERO (#​5098)
  • Dragonfly: ABI fixes including regex offsets, ifaddrs, pthread barriers, process sizing fields, and mcontext alignment (#​5116)
  • Dragonfly: Correct values of CPUCTL_CPUID*, EV_HUP, and EV_SYSFLAGS (#​5116)
  • Emscripten: fix pthread type sizes for wasm64 (MEMORY64) (#​5156)
  • Horizon: Fix the value of POLLOUT (#​5090)
  • Linux: Correct the value of EPIOC[GS]PARAMS with nonstandard _IOC (#​5188)
  • Make VxWorks shims unsafe (#​3727)
  • NetBSD: Correct getmntinfo to link __getmntinfo13 (#​5251)
  • QNX: Fix the value of PTHREAD_MUTEX_INITIALIZER (#​5241)
  • QuRT: fix type and definition inaccuracies against SDK headers (#​5091)
  • Windows: Correctly link to 32-bit time routines on 32-bit platforms (#​5059)
  • uClibc: Fix constants accidentally removed (#​5141)
  • uclibc: Fix build issues (#​5046)
  • uclibc: Fix type of PRIO_PROCESS and friends (#​5046)
Changed
  • AIX, TeeOS: Drop unneeded -> c_void (#​5240)
  • Apple: Change AIO_LISTIO_MAX to account for changes in macOS 27 (#​5253)
  • Glibc: Update the value of MS_NOUSER (#​5215)
  • L4Re: Update definitions and test infra (#​5275)
  • Linux: Update the value of SW_MAX and SW_CNT (#​5215)
  • MacOS: Add swapped_count to vm_statistics64 (#​4926)
  • Windows: Windows-GNU now respects libc_unstable_gnu_time_bits for 64-bit time_t config (#​5062)
Removed
  • Dragonfly: Remove FreeBSD-only Elf32_Lword, ip_mreq_source, and IP_ constants (#​5116)
  • Dragonfly: Remove private VM type bindings (#​5116)
  • Linux: Remove KERN_REALROOTDEV and VM_LAPTOP_MODE (#​5177)
  • VxWorks: Remove non-user-facing (kernel) API (#​5129)
Other
  • Print config information if LIBC_BUILD_VERBOSE is set (#​5272)
  • Annotate *LAST constants as potentially changing (#​5120)
  • Annotate *MAX constants as potentially changing (#​5122)
  • BSD: Annotate ELAST constants as potentially changing (#​5118)
  • FreeBSD: Annotate RAND_MAX as potentially changing (#​5119)
  • Linux, L4re: Annotate *NUM constants as potentially changing (#​5123)
  • QNX: Restructure to support new platforms (#​4984)
  • Unix: Annotate *COUNT constants as potentially changing (#​5121)
  • uClibc: Add unstable support of 64-bit time_t (#​5046)
  • (internal) FreeBSD: Replace unstable env to set version with an unstable cfg (#​5201)
  • (internal) Glibc: Remove public configuration for file offset bits (#​5268)
  • (internal) Linux: Delete config via RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64 (#​5197)
  • (internal) Replace RUST_LIBC_UNSTABLE env with libc_unstable* cfg (#​4977)
dtolnay/linkme (linkme)

v0.3.37

Compare Source

  • Update to syn 3

v0.3.36

Compare Source

  • Support UEFI and Windows codegen backends that disallow zero-sized PE/COFF sections (#​126, thanks @​AaronRM)
dtolnay/proc-macro2 (proc-macro2)

v1.0.107

Compare Source

  • Documentation improvements

v1.0.106

Compare Source

  • Optimize Span::byte_range (#​530)

v1.0.105

Compare Source

  • Make std dependencies more easily discoverable in source code (#​528)

v1.0.104

Compare Source

v1.0.103

Compare Source

  • Add semver-exempt Literal methods str_value, cstr_value, byte_str_value (#​525)

v1.0.102

Compare Source

  • Fix interaction of Display impls for TokenStream and Ident with formatting specifiers for padding, alignment, width (#​523, #​524)
nextest-rs/quick-junit (quick-junit)

v0.7.0

Compare Source

Changed
Skipped test counts

Skipped test counts are now reported via the skipped attribute rather than disabled. For <testsuite>, skipped matches the llg schema and the Jenkins junit-10 schema, as well as pytest and Maven Surefire.

  • Each <testsuite> now emits skipped="N", and the root <testsuites> element now emits an aggregated skipped="N" count. Previously the root didn't carry a skip count at all.
  • Root-level skipped is 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 as uuid.
  • TestSuite's disabled field has been renamed to skipped.
  • Report gains new public skipped and disabled fields, and Report::add_test_suite now aggregates skip counts into Report::skipped.

disabled is now modeled as a separate optional count on both Report and TestSuite, distinct from skipped. (disabled is intended to count tests that are disabled by design, such as googletest's DISABLED_-prefixed tests. Note, however, that quick-junit doesn't have a notion of disabled tests at the moment.)

Other changes
  • Report is now #[non_exhaustive], consistent with TestSuite and TestCase. Construct it via Report::new and then assign fields, so that future field additions are non-breaking.
  • Childless <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.47

Compare Source

  • Documentation improvements

v1.0.46

Compare Source

v1.0.45

Compare Source

  • Add ToTokens impl for Arc<T> (#​326)

v1.0.44

Compare Source

  • Support raw lifetime syntax 'r#async (#​323)

v1.0.43

Compare Source

  • Disambiguate references to stringify! macro inside generated code (#​316)

v1.0.42

Compare Source

rust-lang/regex (regex)

v1.13.1

Compare 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:

  • #​1354:
    Fixes previously unsound reverse suffix and inner optimizations.

v1.13.0

Compare Source

===================
This release includes a new API, a regex! macro, for lazy compilation of
a 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:

use regex::regex;

fn is_match(line: &str) -> bool {
    // The regex will be compiled approximately once and reused automatically.
    // This avoids the footgun of using `Regex::new` here, which would
    // guarantee that it would be compiled every time this routine is called.
    // This would likely make this routine much slower than it needs to be.
    regex!(r"bar|baz").is_match(line)
}

let hay = "\
path/to/foo:54:Blue Harvest
path/to/bar:90:Something, Something, Something, Dark Side
path/to/baz:3:It's a Trap!
";

let matches = hay.lines().filter(|line| is_match(line)).count();
assert_eq!(matches, 2);

Improvements:

  • #​709:
    Add a new regex! macro for efficient and automatic reuse of a compiled regex.

v1.12.4

Compare Source

===================
This release includes a performance optimization for compilation of regexes
with very large character classes.

Improvements:

  • #​1308:
    Avoid re-canonicalizing the entire interval set when pushing new class ranges.

v1.12.3

Compare 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:

  • #​1319:
    Switch from a Cargo exclude list to an include list, and exclude some
    unnecessary stuff.

v1.12.2

Compare Source

===================
This release fixes a cargo doc breakage on nightly when --cfg docsrs is
enabled. This caused documentation to fail to build on docs.rs.

Bug fixes:

  • BUG #​1305:
    Switches the doc_auto_cfg feature to doc_cfg on nightly for docs.rs builds.

v1.12.1

Compare Source

===================
This release makes a bug fix in the new regex::Captures::get_match API
introduced in 1.12.0. There was an oversight with the lifetime parameter
for the Match returned. This is technically a breaking change, but given
that it was caught almost immediately and I've yanked the 1.12.0 release,
I think this is fine.

v1.12.0

Compare Source

===================
This release contains a smattering of bug fixes, a fix for excessive memory
consumption in some cases and a new regex::Captures::get_match API.

Improvements:

  • FEATURE #​1146:
    Add Capture::get_match for returning the overall match without unwrap().

Bug fixes:

  • BUG #​1083:
    Fixes a panic in the lazy DFA (can only occur for especially large regexes).
  • BUG #​1116:
    Fixes a memory usage regression for large regexes (introduced in regex 1.9).
  • BUG #​1195:
    Fix universal start states in sparse DFA.
  • BUG #​1295:
    Fixes a panic when deserializing a corrupted dense DFA.
  • BUG 8f5d9479:
    Make regex_automata::meta::Regex::find consistently return None when
    WhichCaptures::None is used.
bytecodealliance/rustix (rustix)

v1.1.4

Compare Source

v1.1.3

Compare Source

serde-rs/serde (serde)

v1.0.229

Compare Source

  • Update to syn 3
serde-rs/json (serde_json)

v1.0.151

Compare Source

v1.0.150

Compare Source

v1.0.149

Compare Source

  • Align arbitrary_precision number strings with zmij's formatting (#​1306, thanks @​b41sh)

v1.0.148

Compare Source

  • Update zmij dependency to 1.0

v1.0.147

Compare Source

  • Switch float-to-string algorithm from Ryū to Żmij for better f32 and f64 serialization performance (#​1304)

v1.0.146

Compare Source

dtolnay/syn (syn)

v3.0.3

Compare Source

  • Documentation improvements

v3.0.2

Compare Source

v3.0.1

Compare Source

v3.0.0

Compare 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::BareFn has been renamed to Type::FnPtr to mirror the compiler's terminology. Together with this, BareVariadic is renamed to FnPtrVariadic.

  • The mutually exclusive const_token and mutability fields of Type::Ptr have been unified into an enum of type PointerMutability, which was already previously used by Expr::RawAddr.

  • Every Type variant now holds attributes, which can represent the attributes of element types inside a tuple type, or attributes for a function return type.

  • BareFnArg is renamed to NamedArg and is used in ParenthesizedGenericArguments, in addition to the existing use in Type::FnPtr.

Expressions

  • In Expr::Closure, the fields or1_token and or2_token have been renamed to inputs_begin and inputs_end to indicate the beginning and ending | token of the closure inputs.

Statements

  • Attributes are now preserved on all expression kinds in statement position. Previously, parsing would silently lose attributes on some expression statements without a dedicated Expr variant, such as tail-call expressions.

Patterns

  • The guard field of Arm is replaced by a new Pat::Guard variant held in the arm's pat.

Items

  • The unsafety field of Signature, which represented the presence or absence of unsafe, is replaced by a 3-way Safety enum which may be safe, unsafe, or default. ForeignItem::Static also gets a Safety.

  • Some of the fields of Receiver have been split to a non-exhaustive ReceiverKind enum to create room for proposed new kinds of method receivers, such as pinned.

  • Type aliases now hold a WhereClausePlacement to 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::Lifetime and WherePredicate::Type have a new field holding the attributes on the where-predicates.

  • GenericParam::Type and GenericParam::Const now 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

  • The Parse implementation of Lifetime no longer permits keyword lifetimes, matching a change in Rust 1.81 to deny such lifetimes pre-expansion. Lifetime::parse_any may

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone UTC)

  • Branch creation
    • "on sunday"
  • 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.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants