Skip to content

fix(deps): update rust crate lalrpop-util to 0.23#682

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/lalrpop-util-0.x
Open

fix(deps): update rust crate lalrpop-util to 0.23#682
renovate[bot] wants to merge 1 commit intomainfrom
renovate/lalrpop-util-0.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented Mar 25, 2026

This PR contains the following updates:

Package Type Update Change
lalrpop-util build-dependencies minor 0.190.23
lalrpop-util dependencies minor 0.190.23

Release Notes

lalrpop/lalrpop (lalrpop-util)

v0.23.1

Compare Source

Bigfixes
  • Fix bug where windows paths were used based on target OS rather than host OS,
    breaking cross compile scenarios

v0.23.0

Compare Source

Breaking Changes
  • Lalrpop no longer exposes a regex-automata feature. This feature was
    previously exposed accidentally and did not change lalrpop functionality.
  • Make the lexer feature a default feature for lalrpop-util. In older
    versions of rust, lalrpop-util would automatically use the lexer feature
    when lalrpop did, but that is no longer the case, so this change keeps the
    common case as the default. If you're using a custom lexer, you'll need
    to make sure to disable default-features for both lalrpop and lalrpop-util.
  • Configuration.set_in_dir() can now no longer affect the output dir. In
    certain configurations, setting in_dir using set_in_dir() could actually
    cause the generated parser to be put in the input directory rather than in
    OUT_DIR. In most cases OUT_DIR may be what you want anyways and should
    work seamlessly. If you want to preserve the existing behavior of writing
    to the source directory, you should do that explicitly with set_out_dir()
    (or use_cargo_dir_conventions())
  • Configuration.set_in_dir() is now incompatible with process_current_dir(),
    and process_dir() , because all of these functions set an input directory
    themselves (either the current directory, or the argument). Previously,
    these functions would all silently ignore the set_in_dir() setting, except
    possibly to change the output directory as mentioned above. Now these
    functions are incompatible. If you get an error about this, remove
    set_in_dir() from your Configuration, or use it with process(). You may
    also need to change your output directory as mentioned in the previous bullet.
Features
  • lalrpop_util::ParseError now implements the Hash trait
  • Support expanding multiple anonymous format arguments in the same pattern
    (e.g. <A> <B> => format!("<> <>")). It is an error if the number of format
    strings in the pattern do not match the number in the action code.
  • Support binding tuple patterns in grammar. This syntactic sugar can make
    dealing with nonterminal definitions that return multiple values easier.
Changes
  • Bump MSRV to 1.85
  • Update to the 2024 rust edition
Internal Development features
  • Support running tests with cargo-nextest.
  • Support running benchmarks on both lalrpop build time and generated parsers
    using cargo bench
Bugfixes
  • Documentation updates
  • When using a custom lexer, the Location type previously required the Copy
    trait, which was undocumented and unintentional. This requirement has been
    dropped.
  • If looking for a .lalrpop file in a directory that no longer exists, lalrpop
    no longer creates the missing directory.

v0.22.2

Compare Source

Features
  • Support \0 and \x## ASCII escape sequences in grammars
  • Documentation updates
Bugfixes
  • Avoid clippy warnings for uninlined format strings in generated code

v0.22.1

Compare Source

Bugfixes
  • Many documentation updates.
  • Internal cleanups and testsuite enhancements.
  • Isolate a few clippy lint allows more tightly to generated code so that these
    lints can trigger on action code.
  • Bump some dependency versions

v0.22.0

Compare Source

Breaking changes
  • The lexer feature no longer implies the std feature. Now lexer is
    usable in no_std environments. In no_std, ParseError only implements the
    Error trait in rust 1.81 or later (since core::error was stablized in 1.81).
Features
  • Overhaul cfg attributes. You can now include or omit grammar rules and
    alternatives based on cargo features with not(), any() and all() support
Bugfixes
  • Improvements to error message reporting to improve clarity and suppress extra noise
  • lalrpop_mod!() now handles imports correctly
  • Reenable some warnings on user code for custom lexers

v0.21.0

Compare Source

Since the last release, a fair number of the commits have been focused on cleaning
up and improving LALRPOP's documentation. Shout out to Yudai Takada, George
White, and Dinu Blanovschi.

Features
  • LALRPOP now throws an error in more cases where it would previously just write
    out an error message and exit.
  • lalrpop::process_src is now the recommended function to use in build.rs
    files. Previously the documentation incorrectly suggested that
    lalrpop::process_root looked in ./src instead of .
Bugfixes
  • A long-standing bug where LALRPOP would throw a "no entry found for key"
    exception when trying to handle certain grammars has been resolved.
  • LALRPOP will stop expanding macros infinitely during build time via a new
    macro_expansion_limit.
Compatibility note

Adding a limit to the number of times that LALRPOP will attempt to expand a
macro is technically a breaking change. However, the default limit of 200
should be more than enough for the grammars we are currently aware of (which
almost always need a limit of less than 5). This limit is customizable via Configuration::set_macro_expansion_limit.

If you have a grammar that uses a significant amount of macro expansion steps,
we would be very interested in a PR that adds it to the test suite.

v0.20.2

Compare Source

Special thanks to our newest maintainers, Daniel Burgener and Patrick LaFontaine for helping to coordinate this release.

Features
  • Lalrpop no longer depends on the is-terminal crate (thanks to Kmeakin!)
  • Better performance with the default lexer using the underlying regex-automata crate (thanks to QuarticCat!)
  • Allow the catch-all _ case for token matching can now be set to a higher precedence in match (thanks to fpoli!)
  • Fewer clippy lints triggered in generated code
  • Lalrpop now traverses symlinks to find .lalrpop files(thanks mbid!)
  • Lalrpop now supports block comments including nestings(thanks seanbright!)
Bugfixes
  • Lalrpop now uses the ascii-aware space regex when the unicode feature is not enabled (thanks to QuarticCat!)
  • Dangling symlinks in crate no longer cause build failure (thanks to legeana
    for the report!)
  • Unicode is now set as a default feature in lalrpop-util to align with
    lalrpop's defaults
Compatibility note
  • MSRV increased to 1.70.
  • process_root_unconditionally now correctly lints as having been deprecated.
  • Internal types which lead with a __ and should not be relied upon are no longer publicly exposed (thanks to arnaudgolfouse!)
  • Lalrpop files containing a space in their name now return an error.

v0.20.1

Compare Source

Yanked

v0.20.0

Compare Source

Bringing back 0.19.10 patches and further enhancement.

Breaking changes
  • Types and enums name with capitalized acronyms are renamed to camelCase
  • Minimum rust supported version is now 1.64
  • New unicode feature is added to enable regex/unicode and regex-syntax/unicode. Building lalrpop with --no-default-features may be broken without adding it.
Features
  • faster compilation time by up to 2x
  • expected tokens in failed parses are more accurate
  • support for unicode when using builtin tokenizer
Bug fixes and other changes
  • fewer warnings about clippy/unused imports in generated code
  • updated to edition 2021
  • updated mdbook
  • Use inclusive ranges for DFA/NFA
  • A new document "Lexing raw delimited content"

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), 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 these updates again.


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

This PR was generated by Mend Renovate. View the repository job log.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 25, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 53.19%. Comparing base (f2d4349) to head (464eb29).
⚠️ Report is 195 commits behind head on main.

❌ Your project check has failed because the head coverage (53.19%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #682      +/-   ##
==========================================
- Coverage   55.36%   53.19%   -2.18%     
==========================================
  Files         528      372     -156     
  Lines       63045    64470    +1425     
==========================================
- Hits        34907    34292     -615     
- Misses      28138    30178    +2040     
Flag Coverage Δ
unittests 53.19% <ø> (-2.18%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 408 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate renovate bot force-pushed the renovate/lalrpop-util-0.x branch 4 times, most recently from 3976762 to e79b9ef Compare March 25, 2026 22:14
@renovate renovate bot force-pushed the renovate/lalrpop-util-0.x branch from e79b9ef to 464eb29 Compare March 26, 2026 00:29
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