Releases: pest-parser/pest
v2.7.5
What's Changed
New Contributors
Full Changelog: v2.7.4...v2.7.5
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated Rule
enum.
This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
...
pest_derive = { version = "2.7", features = ["grammar-extras"] }
v2.7.4
What's Changed
- Add clarification to the docs by @DanikVitek in #924
- bump MSRV to 1.61 (due to memchr's MSRV) by @tomtau in #925
- Update pest_derive to generate a list of all rules in Rule::all_rules(). by @davidsantiago in #927
- add a comment to EOL by @tomtau in #926
- ci: fix cargo-msrv installation by @tomtau in #929
New Contributors
- @DanikVitek made their first contribution in #924
- @davidsantiago made their first contribution in #927
Full Changelog: v2.7.3...v2.7.4
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated Rule
enum.
This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
...
pest_derive = { version = "2.7", features = ["grammar-extras"] }
v2.7.3
What's Changed
- A new stack implementation that should be faster and less space-consuming by @TheVeryDarkness in #905
- small cargo clippy fixes + dependency bumps by @tomtau in #921
Full Changelog: v2.7.2...v2.7.3
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated Rule
enum.
This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
...
pest_derive = { version = "2.7", features = ["grammar-extras"] }
Restoration of the pest3 work effort
We started a new discussion thread to brainstorm ideas for pest3, both in terms of breaking grammar and API changes. You can check it out here: #885
v2.7.2
What's Changed
- Implement Display for Expr and OptimizedExpr by @TheVeryDarkness in #896
- Update license field following SPDX 2.1 license expression standard by @frisoft in #898
- Add feature gated
Cow
module paths by @veeenu in #900 - propagate non_exhaustive attribute to the generated Rule enums by @tomtau in #901
- docs: fix small typo in
match_range
by @LeoDog896 in #906
New Contributors
- @frisoft made their first contribution in #898
- @veeenu made their first contribution in #900
- @LeoDog896 made their first contribution in #906
Full Changelog: v2.7.1...v2.7.2
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated Rule
enum.
This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
...
pest_derive = { version = "2.7", features = ["grammar-extras"] }
Restoration of the pest3 work effort
We started a new discussion thread to brainstorm ideas for pest3, both in terms of breaking grammar and API changes. You can check it out here: #885
v2.7.1
What's Changed
- one-or-more rule fix based on #397 by @tomtau in #878
- Make the root a value. by @nathanhammond in #884
- Merging Spans ♻️ by @0nyr in #887
- Implement core::fmt::Display for OptimizedExpr by @TheVeryDarkness in #889
- Adding get_input() to types that already have public as_str() 🏷️ by @0nyr in #890
New Contributors
- @nathanhammond made their first contribution in #884
- @0nyr made their first contribution in #887
- @TheVeryDarkness made their first contribution in #889
Full Changelog: v2.7.0...v2.7.1
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated Rule
enum.
This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
...
pest_derive = { version = "2.7", features = ["grammar-extras"] }
Restoration of the pest3 work effort
We started a new discussion thread to brainstorm ideas for pest3, both in terms of breaking grammar and API changes. You can check it out here: #885
v2.7.0
What's Changed
- bump criterion and cargo dependencies by @tomtau in #869
- feature-guard the new grammar features with "grammar-extras" by @tomtau in #871
- Add reference to json5-nodes by @jlyonsmith in #873
- fix: expose the unicode emoji builtin rules by @tomtau in #874
New Contributors
- @jlyonsmith made their first contribution in #873
Full Changelog: v2.6.1...v2.7.0
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated Rule
enum.
This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
...
pest_derive = { version = "2.7", features = ["grammar-extras"] }
Note that MSRV was increased to 1.60 in pest 2.7.0.
v2.6.1: pest as a git dependency
What's Changed
- ci: fix for cargo-msrv needing at least 1.59 now by @tomtau in #850
- Mitigate errors in reporting grammars that can cause the parser to run indefinetely by @Tartasprint in #848
- Removed TODO about removed box syntax by @Tartasprint in #854
- derive/examples: add a help menu grammar and parser by @e-dant in #856
- feat: add simple Position/Span From implementations for LineColLocation by @HoloTheDrunk in #860
- Swap precedence of negation and factorial by @SandaruKasa in #865
- Conditional source-tree bootstrapping by @tomtau and @iptq in #866
New Contributors
- @Tartasprint made their first contribution in #848
- @e-dant made their first contribution in #856
- @HoloTheDrunk made their first contribution in #860
- @SandaruKasa made their first contribution in #865
Full Changelog: v2.6.0...v2.6.1
Using pest as a git dependency
pest v2.6.1 contains a patch for the longstanding problem that pest couldn't be used as a git dependency due to the bootstrapping process. It should be possible now with a special feature flag as follows:
pest = { git = "https://github.com/.../pest.git", rev = "..." }
pest_derive = { git = "https://github.com/.../pest.git", rev = "...", features = ["not-bootstrap-in-src"]}
Note that the compilation time will be higher due to the cargo
library dependency. If that becomes an issue, you can still use the old workarounds, e.g. cloning the repo, running cargo bootstrap
there and specifying the dependency as a path to the locally cloned repo instead of git.
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated Rule
enum. This is a known issue and will be fixed in the future (e.g. by increasing MSRV and non_exhaustive annotations).
If you face a dependency problem where Cargo mixes different versions of pest due to transitive dependencies: #849 (comment) you can try adding the older pest to explicitly force it as follows:
pest = { version = "=2.5.6" }
v2.6.0: node tags
What's Changed
- Add basic support for
node_tag
, iterator, and meta grammar by @tomtau in #832 - Fix #838 grammar error when only have
//!
,///
or//
, allow writing empty pest grammar. by @huacnlee in #839 - Implement
ExactSizeIterator
forPair
iterators by @MucTepDayH16 in #833 - fuzz: decrease the call limit in the json fuzzer by @tomtau in #841
New Contributors
- @MucTepDayH16 made their first contribution in #833
Full Changelog: v2.5.7...v2.6.0
Introducing node tags
pest v2.6.0's grammar includes a new (optional) feature for labelling parts of rules (based on this idea posted by @oovm : #550 ), e.g.:
add = {#lhs = expr ~ "+" ~ #rhs = epxr}
This feature can help to distinguish tokens by labels instead of positions (which can help to reduce boilerplate code). You can read more about it here: https://pest.rs/book/grammars/syntax.html#tags
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 is a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated Rule
enum. This is a known issue and will be fixed in the future (e.g. by increasing MSRV and non_exhaustive annotations).
v2.5.7
What's Changed
- Fixup lifetimes of PrattParser by @matanui159 in #824
- Update syn to v2 by @CosmicHorrorDev in #826
- doc: add a link to awesome-pest by @tomtau in #828
New Contributors
- @matanui159 made their first contribution in #824
- @CosmicHorrorDev made their first contribution in #826
Full Changelog: v2.5.6...v2.5.7
v2.5.6
What's Changed
- Fix multiple grammars not always recompile issue #789 by @huacnlee in #790
- Update benchmark result typo (with Pest v2.5.2 as base line). by @huacnlee in #794
- Fix grammar
////
parsing error. by @huacnlee in #818 - doc: added a note regarding the no_std support by @tomtau in #819
Full Changelog: v2.5.5...v2.5.6
pest_fmt and Visual Studio Code extension
Thanks to the great work of @huacnlee , @Jamalam360 and others, the new version of pest_fmt was published and the Visual Studio Code extension for pest was released on the Marketplace: https://marketplace.visualstudio.com/items?itemName=pest.pest-ide-tools