peg-runtime breaking changes

cargo

11 curated breaking changes across major versions of peg-runtime. Use this as a migration checklist before bumping dependencies.

11
changes
Breaking changes by transition
  • 0.7.0 \u2192 0.8.0breaking

    Allow only lifetime, not type, parameters at the grammar level. (type parameters were never properly supported)

  • 0.7.0 \u2192 0.8.0breaking

    Add `'input` lifetime parameter to `ParseElem` trait so implementations can return tokens by reference. (#268)

  • 0.7.0 \u2192 0.8.0breaking

    Require `Copy` on `ParseElem::Element` to better represent the expectation that they are cheap to copy/move. --- Contributors: @kevinmehall @zsol @neunenak @fgasperij

  • 0.6.3 \u2192 0.7.0breaking

    Add required `is_eof()` method to `Parse` trait (#252)

  • 0.6.3 \u2192 0.7.0breaking

    Certain patterns that would infinite-loop or stack overflow if executed are now a compile-time error

  • 0.6.3 \u2192 0.7.0breaking

    `mixed_site` hygiene prevents action code from accessing internal parser state variables such as `__input`, `__pos`, etc.

  • 0.5.7 \u2192 0.6.0breaking

    Replaced build script integration and nightly-only syntax extension with a procedural macro that works on stable Rust. This means that errors both in the PEG grammar and the Rust code embedded from it are reported with source position by rustc. It even works with RLS!

  • 0.5.7 \u2192 0.6.0breaking

    Add the ability to parse non-`str` input by implementing [traits][peg-traits]. It comes with an implementation for `[T]` (including `[u8]`), but you can define the traits for your own types. In fact, the rust-peg grammar is parsed with rust-peg via an implementation for [token trees from `proc-macro2`][tokens].

  • 0.5.7 \u2192 0.6.0breaking

    Add `precedence!{}` block for adding a precedence-climbing expression parser integrated with the surrounding PEG source.

  • 0.5.7 \u2192 0.6.0breaking

    Report errors in left-recursive rules that would cause infinte loops.

  • 0.5.7 \u2192 0.6.0breaking

    Allow rules to accept value and type parameters, including passing closures to replace the `template` syntax.

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/peg-runtime
peg-runtime breaking changes — Cargo migration guide | DepScope