Skip to content

Bump github.com/odvcencio/gotreesitter from 0.20.7 to 0.21.0#17

Merged
andrew merged 1 commit into
mainfrom
dependabot/go_modules/github.com/odvcencio/gotreesitter-0.21.0
Jul 13, 2026
Merged

Bump github.com/odvcencio/gotreesitter from 0.20.7 to 0.21.0#17
andrew merged 1 commit into
mainfrom
dependabot/go_modules/github.com/odvcencio/gotreesitter-0.21.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 13, 2026

Copy link
Copy Markdown
Contributor

Bumps github.com/odvcencio/gotreesitter from 0.20.7 to 0.21.0.

Release notes

Sourced from github.com/odvcencio/gotreesitter's releases.

v0.21.0 — the engine release

The engine release. The generalized GLR parser core — a C-faithful error recovery engine plus a GSS-forest fast path — replaces the v0.20.x per-language recovery approximations as the default runtime. Error recovery for 123 elected grammars now reproduces C tree-sitter's decisions (strategy-1 election order, per-stack-version error-mode lexing identity, error-cost model, and condense scheduling were each verified decision-for-decision against an instrumented tree-sitter v0.25.0 oracle). The campaign branch's full correctness backlog — 42 known failing tests at its peak — is zero in this release, and the root test suite dropped from ~340s to ~62s along the way.

Changed

  • Error-tree shapes for elected languages now match C tree-sitter in many previously divergent constructs: PHP static named functions, the authzed recovery family, Angular non-null assertions, FIDL versioned layout modifiers, Julia trailing-comma assignment tuples, doxygen comment blocks, and Go range-with-function-literal bodies, among others. Downstreams that pinned the old (non-C) error shapes for these languages will see diffs on upgrade — the new shapes are the C-oracle-verified ones.
  • Go grammar: real automatic-semicolon insertion via an external scanner (_automatic_semicolon), replacing the grammar-level approximation. Fixes the byte-strict ASI parity gap; spurious-HasError files on a large real repo walk dropped 436 → 17.
  • The strategy-1 recovery election was rewritten to C's order and cost basis (merged-version m0 basis, finished-tree-first cost checks, missing-token versions created before the recover pass, shiftable originals preserved as their own paths, record-time dedup), and ordinary reduces no longer dissolve extra ERROR carriers (C keeps every popped subtree).
  • Recovery-time lookahead identity: the engine now lexes error-mode lookaheads per stack version like C (LexModes[0] at ERROR_STATE), including an engine-side error-mode relex for custom token sources, with the capability forwarded through included-range wrappers.

Fixed

  • Conflict-policy metadata inference no longer vetoes hand-written repeat-boundary conflict resolvers for embedded languages. The veto — intended only for grammargen-generated grammars — silently disabled the C#, Java, C, Rust, TypeScript, PHP, Python (and more) resolvers; C# designer-style files forked ~32 GLR stacks per statement and exhausted the arena (2064 stacks); they now parse with 1 stack well under the 500ms test budget.
  • Forest engine: hidden-symbol dedup starvation and a cap-eviction tie livelock no longer force dead-end declines on valid input (bash/CMake/JSON repeat-heavy shapes; python module_repeat1 worklist blowup); the EOF-recovery competition probe no longer declines ordinary clean input; and Parser.SetTimeoutMicros is now enforced inside the forest path

... (truncated)

Changelog

Sourced from github.com/odvcencio/gotreesitter's changelog.

[0.21.0] - 2026-07-06

The engine release. The generalized GLR parser core — a C-faithful error recovery engine plus a GSS-forest fast path — replaces the v0.20.x per-language recovery approximations as the default runtime. Error recovery for 123 elected grammars now reproduces C tree-sitter's decisions (strategy-1 election order, per-stack-version error-mode lexing identity, error-cost model, and condense scheduling were each verified decision-for-decision against an instrumented tree-sitter v0.25.0 oracle). The campaign branch's full correctness backlog — 42 known failing tests at its peak — is zero in this release, and the root test suite dropped from ~340s to ~62s along the way.

Changed

  • Error-tree shapes for elected languages now match C tree-sitter in many previously divergent constructs: PHP static named functions, the authzed recovery family, Angular non-null assertions, FIDL versioned layout modifiers, Julia trailing-comma assignment tuples, doxygen comment blocks, and Go range-with-function-literal bodies, among others. Downstreams that pinned the old (non-C) error shapes for these languages will see diffs on upgrade — the new shapes are the C-oracle-verified ones.
  • Go grammar: real automatic-semicolon insertion via an external scanner (_automatic_semicolon), replacing the grammar-level approximation. Fixes the byte-strict ASI parity gap; spurious-HasError files on a large real repo walk dropped 436 → 17.
  • The strategy-1 recovery election was rewritten to C's order and cost basis (merged-version m0 basis, finished-tree-first cost checks, missing-token versions created before the recover pass, shiftable originals preserved as their own paths, record-time dedup), and ordinary reduces no longer dissolve extra ERROR carriers (C keeps every popped subtree).
  • Recovery-time lookahead identity: the engine now lexes error-mode lookaheads per stack version like C (LexModes[0] at ERROR_STATE), including an engine-side error-mode relex for custom token sources, with the capability forwarded through included-range wrappers.

Fixed

  • Conflict-policy metadata inference no longer vetoes hand-written repeat-boundary conflict resolvers for embedded languages. The veto — intended only for grammargen-generated grammars — silently disabled the C#, Java, C, Rust, TypeScript, PHP, Python (and more) resolvers; C# designer-style files forked ~32 GLR stacks per statement and exhausted the arena (2064 stacks); they now parse with 1 stack well under the 500ms test budget.
  • Forest engine: hidden-symbol dedup starvation and a cap-eviction tie livelock no longer force dead-end declines on valid input (bash/CMake/JSON repeat-heavy shapes; python module_repeat1 worklist blowup); the EOF-recovery competition probe no longer declines ordinary clean input; and Parser.SetTimeoutMicros is now enforced inside the forest path

... (truncated)

Commits
  • d7c4d04 release(docs): Release 0.21.0: GLR engine parity, memory savings
  • 0db569a Merge pull request #133 from odvcencio/codex/glr-parity-buckets-20260626
  • 3caaaf5 update(ci): update performance bench contract for v0.21.0 engine
  • 1e2e96f update(ci, tests): Separate grammargen tests in CI and align test expectations
  • e755f06 optimize(parser): optimize token source allocation and action lookup
  • c24b91b ci: ci: adjust timeouts and skip wall-clock tests under -race
  • 05f9dce ci: trigger non-draft pipeline (full -race suite) post-undraft
  • da9f19e add(tests): add clean-regression pins and skip boundedness under -race
  • 81af9e4 optimize(glr): optimize GLR parser with subtree and forest caching
  • 3dbba72 fix(parser): Align shift-gap, condense, and error cost handling
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [github.com/odvcencio/gotreesitter](https://github.com/odvcencio/gotreesitter) from 0.20.7 to 0.21.0.
- [Release notes](https://github.com/odvcencio/gotreesitter/releases)
- [Changelog](https://github.com/odvcencio/gotreesitter/blob/main/CHANGELOG.md)
- [Commits](odvcencio/gotreesitter@v0.20.7...v0.21.0)

---
updated-dependencies:
- dependency-name: github.com/odvcencio/gotreesitter
  dependency-version: 0.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels Jul 13, 2026
@andrew
andrew merged commit 081044f into main Jul 13, 2026
5 checks passed
@dependabot
dependabot Bot deleted the dependabot/go_modules/github.com/odvcencio/gotreesitter-0.21.0 branch July 13, 2026 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update go code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant