Skip to content

deps: bump chumsky from 0.9.3 to 0.12.0#19

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/chumsky-0.12
Open

deps: bump chumsky from 0.9.3 to 0.12.0#19
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/chumsky-0.12

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Mar 23, 2026

Copy link
Copy Markdown

Bumps chumsky from 0.9.3 to 0.12.0.

Release notes

Sourced from chumsky's releases.

0.10.0

The 0.10.0 release of chumsky is a from-scratch rewrite of the crate based on the work that's been ongoing for several years in the 1.0.0 alpha builds. The release of 0.10.0 is, in many ways, a concession to a few inconvenient facts:

  • Users were rightly complaining that the latest stable release of chumsky (i.e: that which docs.rs shows by default) was the 0.9.x release, despite the fact that we've been recommending that new users use 1.0.0 alpha builds for a long time now. Many users have accidentally tried to run code taken from the 1.0.0 examples, only to find that they don't work with 0.9.
  • 1.0.0 has been in development for a long time, and there are still some breaking changes left to make (although we're getting closer!). Users wants to be able to pull in a stable version and start working productively, and the existing situation was becoming cumbersome.
  • Although 1.0.0 is not yet finished, it is moving closer and closer to its final form. It is unlikely that much about the surface API will change between 0.10.0 and 1.0.0, although some changes left to be made are technically breaking.

We recommend that users of chumsky depend on 0.10.0, if they can. Despite that, there are a few things to consider:

  • (This has now been resolved) Not all documentation has been properly updated yet. Some docs still reference 0.9.x concepts or are not yet complete.
  • Some features are still in a state of partial completeness. We don't anticipate significant breakage going forwards, but some features are explicitly in need of more work and future 0.x releases will address them.

Any help from the community to assist in resolving these points is greatly appreciated!

Here follows the changelog for 0.10.0. I also wrote up an informal migration guide.

Added

  • Support for zero-copy parsing (i.e: parser outputs that hold references to the parser input)
  • Support for parsing nested inputs like token trees
  • Support for parsing context-sensitive grammars such as Python-style indentation, Rust-style raw strings, and much more
  • Support for parsing by graphemes as well as unicode codepoints
  • Support for caching parsers independent of the lifetime of the parser
  • A new trait, IterParser, that allows expressing parsers that generate many outputs
  • Added the ability to collect iterable parsers into fixed-size arrays, along with a plethora of other container types
  • Support for manipulating shared state during parsing, elegantly allowing support for arena allocators, cstrees, interners, and much more
  • Support for a vast array of new input types: slices, strings, arrays, impl Readers, iterators, etc.
  • Experimental support for memoization, allowing chumsky to parse left-recursive grammars and reducing the computational complexity of parsing certain grammars
  • An extension API, allowing third-party crates to extend chumsky's capabilities and introduce new combinators
  • A pratt parser combinator, allowing for conveniently and simply creating expression parsers with precise operator precedence
  • A regex combinator, allowing the parsing of terms based on a specific regex pattern
  • Properly differentiated ASCII and Unicode text parsers

Removed

  • Parser::then_with has been removed in favour of the new context-sensitive combinators

Changed

  • Performance has radically improved
  • Error generation and handling is now significantly more flexible
Changelog

Sourced from chumsky's changelog.

[0.12.0] - 2025-12-15

Added

  • MapExtra::emit, which allows emitting secondary errors during mapping operations
  • InputRef::emit, which allows emitting secondary errors within custom parsers
  • labelled_with, which avoids the need to implement Clone for labels
  • Input::split_token_span, a convenience function for splitting (Token, Span) inputs so that chumsky can understand them
  • Input::split_spanned, which does the same as above, but for implementors of WrappingSpan
  • spanned, a combinator which automatically annotates a parser output with a span
  • Experimental:
    • IterParser::parse_iter, a way to turn an IterParser (like x.repeated()) into an iterator
    • Parser::debug, which provides access to various parser debugging utilities.

Changed

  • Made nested_in more flexible by allowing it to map between different input types instead of requiring the same input as the outer parser

Fixed

  • A prioritisation bug with nested_in

[0.11.2] - 2025-11-05

Added

  • Implement Default, PartialOrd, and Ord for SimpleSpan
  • Implement PartialOrd and Ord for Rich

[0.11.1] - 2025-09-12

Fixed

  • Patched compilation error that only appeared in release builds

[0.11.0] - 2025-09-11

Added

  • The set(...) combinator, which may be used to conveniently parse a set of patterns, in any order
  • Support for non-associative infix operators are now supported by the .pratt(...) combinator
  • Parser::try_foldl, allowing folding operations to short-circuit in a manner similar to Parser::try_map
  • Parser::contextual, which allows a parser to be disabled or enabled in a context-sensitive manner
  • Implemented ValueInput for IterInput, which was previously missing
  • More types that implement the State trait:
    • RollbackState, which reverts parser state when a parser rewinds and may be used to, for example, count the number of times a pattern appears in the input
    • TruncateState, which truncates a vector when a parser rewinds, and may be used to implement an arena allocator for AST nodes
  • Implemented IterParser for a.then(b) when both a and b are both IterParsers that produce the same output type

Changed

... (truncated)

Commits

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot @github

dependabot Bot commented on behalf of github Mar 23, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: dependencies, rust. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot dependabot Bot changed the title deps: update chumsky requirement from 0.9 to 0.12 deps: bump chumsky from 0.9.3 to 0.12.0 Apr 2, 2026
@dependabot dependabot Bot force-pushed the dependabot/cargo/chumsky-0.12 branch from 39cf377 to c7fda8c Compare April 2, 2026 04:48
@dependabot dependabot Bot requested a review from Ashutosh0x as a code owner April 2, 2026 04:48
@dependabot dependabot Bot force-pushed the dependabot/cargo/chumsky-0.12 branch 2 times, most recently from a703020 to efd5efe Compare April 22, 2026 04:29
Updates the requirements on [chumsky](https://github.com/zesterer/chumsky) to permit the latest version.
- [Release notes](https://github.com/zesterer/chumsky/releases)
- [Changelog](https://github.com/zesterer/chumsky/blob/main/CHANGELOG.md)
- [Commits](zesterer/chumsky@0.9...0.12)

---
updated-dependencies:
- dependency-name: chumsky
  dependency-version: 0.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/cargo/chumsky-0.12 branch from efd5efe to 1ffeda0 Compare April 22, 2026 05:42
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