NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1089 most downloaded on crates.io
convenient LR(1) parser generator
Last release 7 months ago
11 Mar 2026
Release timing varies
gaps range from 1 weeks to 11 months
Some releases are documented
notes for 22 of 52 stable releases
4 versions withdrawn
withdrawn after publishing
11 years old
56 releases · first in 2015
chore: Release lalrpop-util version 0.23.1
chore: Release lalrpop-util version 0.23.1
<a name="0.23.0"></a>
chore: Release lalrpop-util version 0.23.0
chore: Release lalrpop-util version 0.23.0
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.lalrpop_util::ParseError now implements the Hash trait<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.cargo benchLocation type previously required the Copy
trait, which was undocumented and unintentional. This requirement has been
dropped.<a name="0.22.2"></a>
One column per quarter.
chore: Release lalrpop-util version 0.22.2
chore: Release lalrpop-util version 0.22.2
<a name="0.22.1"></a>
When running cargo doc, the include_str command works fine, however, cargo publish relocates the package into target/package, so the relative path to
When running cargo doc, the include_str command works fine, however,
cargo publish relocates the package into target/package, so the relative
path to the README is different, causing cargo publish to fail.
External discussion at:
rust-lang/cargo#13309
https://users.rust-lang.org/t/include-str-does-not-work-when-releasing-because-of-changed-pathes/15551/14
The solution suggested in those links is to symlink the top level README
inside your package, and then consistently refer to the README in the
package. That README will be copied into the right place during cargo
publish.
<a name="0.22.0"></a>
Fix version in documentation comment
Release version 0.22.0
Fix version in documentation comment
Update changelog based on recent merges
Update Cargo.lock to the latest version of dependencies
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).not(), any() and all() supportlalrpop_mod!() now handles imports correctly<a name="0.21.0"></a>
chore: Release lalrpop-util version 0.21.0
chore: Release lalrpop-util version 0.21.0
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.
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 .macro_expansion_limit.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.
<a name="0.20.2"></a>
undo autoformatting of comments in Cargo.toml
Release 0.20.2
undo autoformatting of comments in Cargo.toml
Co-authored-by: Yann Hamdaoui yann.hamdaoui@gmail.com
Co-authored-by: Yann Hamdaoui yann.hamdaoui@gmail.com
Special thanks to our newest maintainers, Daniel Burgener and Patrick LaFontaine for helping to coordinate this release.
is-terminal crate (thanks to Kmeakin!)regex-automata crate (thanks to QuarticCat!)_ case for token matching can now be set to a higher precedence in match (thanks to fpoli!)1.70.process_root_unconditionally now correctly lints as having been deprecated.__ and should not be relied upon are no longer publicly exposed (thanks to arnaudgolfouse!)<a name="0.20.1"></a>
Create bugfix section and msrv nit
Release 0.20.1 notes
Add set -e -o to version.sh
Update version numbers
Create bugfix section and msrv nit
Add new maintainer note... which copies the 0.19.9 maintainer note
Bringing back 0.19.10 patches and further enhancement.
Bringing back 0.19.10 patches and further enhancement.
unicode feature is added to enable regex/unicode and regex-syntax/unicode. Building lalrpop with --no-default-features may be broken without adding it.<a name="0.19.12"></a>
Add unicode feature to regex-syntax (thanks to Jan Niehusmann!)
unicode feature to regex-syntax (thanks to Jan Niehusmann!)This is actually not fixing a lalrpop bug but fixing user side missing dependency.
lalrpop doesn't directly depend on the feature. But regex from user code probably contains it.
We will drop this dependency again in the next release.
<a name="0.19.11"></a>
This release is based on 0.19.9, not 0.19.10 No feature added or other bug fixed since 0.19.9
This release is based on 0.19.9, not 0.19.10 No feature added or other bug fixed since 0.19.9
<a name="0.19.10"></a>
Note: This version is yanked. These changes will be included in 0.20
Note: This version is yanked. These changes will be included in 0.20
This release fixes an incompatibility with regex.
<a name="0.19.9"></a>
This release addresses backwards compatibility warnings and security alerts, along with a few smaller features.
This release addresses backwards compatibility warnings and security alerts, along with a few smaller features.
Special thanks to our newest maintainers, Yann Hamdaoui and YunWon Jeong for helping to coordinate this release.
regex to 1.5.5thread-local to 1.1.7is-terminal from atty (thanks kpcyrd!)<a name="0.19.8"></a>
#### Features * update petgraph to v0.6.0
<a name="0.19.6"></a>
<a name="0.19.5"></a>
Fix inlining of fallible productions
<a name="0.19.4"></a>
<a name="0.19.4"></a>
Nothing published for this version
Allow string literals in patterns #557
<a name="0.19.1"></a>
* Reduce work for LLVMs inliner
<a name="0.19.0"></a>
Move the symbol mismatch panic into a colder path
<a name="0.18.1"></a>
Remove eprintln which I thought were removed
Allow the tokenizer to contain custom skip regexes/literals
lexer feature is now necessary when lalrpop generates the lexer.<a name="0.17.2"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Allow the deprecated use of trim_left (bdd65184, closes #428)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →