fix(deps): update module github.com/odvcencio/gotreesitter to v0.55.0 - #365
renovate[bot] wants to merge 1 commit into
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #365 +/- ##
=======================================
Coverage 88.17% 88.18%
=======================================
Files 362 362
Lines 34743 34743
=======================================
+ Hits 30636 30637 +1
+ Misses 4102 4101 -1
Partials 5 5
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
4ce4bba to
30f5bcb
Compare
|



This PR contains the following updates:
v0.53.0→v0.55.0Release Notes
odvcencio/gotreesitter (github.com/odvcencio/gotreesitter)
v0.55.0: gotreesitter v0.55.0Compare Source
Added
WithHighlighterAdmissionCandidateRouteto select the route for thedocument parser and injected parsers (#1281).
(#1285).
Locked C checks cover three fresh JSON trees and seven fresh CSV witnesses.
One incremental edit per language also matches with subtree reuse.
Changed
A parser override still has first priority. The allowlist now widens only
the implicit default. This behavior change requires a minor release.
Both
SetAdmissionCandidateRouteDefault(false)andGTS_ADMISSION_CANDIDATE=0keep production selected(#1281).
Fixed
Acceptwhen the compact reduction collector checks whether a source can shift(#1284).
Four strict Scala witnesses match locked C without compact fallback.
(#1286).
Preserve acceptance identity across grammar forks and closed error regions.
Decline unsupported paths without publishing a guessed tree. The PHP compact request still falls back before acceptance.
(#1287).
Apply the native symbol-zero trial only to the certified Scala grammar blob.
The Scala suffix suite records 50 exact matches and seven unchanged gaps across 57 cases.
The 104,681-byte Swift witness completes without truncation or a memory stop.
escape_sequencenodes when escaped backslashesprecede a newline. All 18 fixtures now match the locked C tree on both routes;
12 matched before the fix. Fixes #1275
(#1276).
list_splatbinding for attribute and subscript suffixesduring mixed flat and graph stack merges. Seven C fixtures match on both routes.
Exact C tree differences across 2,932 Django files fell from 101 to 6.
Fixes #1274
(#1277).
capture combinations. Preserve highlight capture order for identical spans
and prefer a highlight over
@spell. Report quantified roots as non-rootedin
IsPatternRooted(#1278).The production query on 755 Nushell comments fell from 16,577.358 to 0.360 ms.
Full highlighting of that 8 KB file took 20.132 ms after the change.
Bound graph reachability checks and reject impossible merges earlier
(#1279).
The reporter's C# fixture changed from quadratic growth to approximately linear growth.
Production parsing at 32 KB fell from 12,662 to 900 ms.
A separate 137 KB run measured a 3,008 ms median after the final merge precheck.
A reconstructed 3.5 KB fixture with an early error fell from 27,377.173 to
13.015 ms on production (#1282).
#comments under the certified grammar hash. Preserve deadlines andmemory budgets; disable incremental reuse for these direct trees
(#1282).
Production parsing at 32 KB fell from 2,160.112 to 1.657 ms.
The result now matches the complete C tree instead of returning one error node.
Maximum resident memory fell from 2,178,624 to 12,892 KiB.
The guard requires an early edit, a live graph fork, and at most four root children.
The guard applies across grammars (#1282).
Production insertion in the reconstructed 137 KB Dart fixture fell from
258.646 to 119.063 ms. Maximum resident memory fell from 220,912 to 123,796 KiB.
Measurement scope
These measurements come from the linked pull requests on Linux amd64.
They do not establish Windows performance. C# runs used the reporter's exact
fixture; Make, HTTP, and Dart used deterministic reconstructions.
Host load varied during the C# sweeps. The Nushell baseline used one repetition;
the result after the change used the median of three repetitions.
PR #1282 completed the standard Go trio with 20 shuffle seeds and 750 ms per benchmark.
It used one process per seed,
GOMAXPROCS=1, andGOWORK=off.The benchmark comparison found no significant time change:
The linked pull requests contain reproduction commands and separate correctness evidence.
PRs #1284–#1287 each record 20-seed randomized comparisons without significant changes in the three primary parse times.
PR #1285 shared its host with another workload; its timing evidence has that limit.
PR #1286 measured 111,092 KiB maximum resident memory for a 512 KiB Go parse.
PR #1287 measured warm Swift maximum resident memory of 257,440 KiB before and 257,332 KiB after the change.
Its primary allocation counts remained 8, 5, and 0.
Publication exception
On 2026-09-24, the owner approved a one-time tag-creation exception for v0.55.0.
The exception permits publication without a workflow-only tag-creation actor rule.
All other gates remain mandatory under the release process.
Known gaps
Transient-error incremental trees and the diff and LESS edit mismatches remain unresolved.
Its locked C gate still fails for malformed JavaScript, LESS, and TOML fixtures.
Graph stack merges remain under investigation; the sub-second target remains open.
74159ec1bas the fresh-parse regression trigger. Linux edits did not reproduce the
Windows slowdown. Preserve the new grammar's coverage while investigating its cost.
#comments retain the existing parser route and need a locked C regression.,anda,b,still differ from locked C on both parser routes.v0.54.0: gotreesitter v0.54.0Compare Source
Added
FactProgram.ExtractIntoto reuse caller-owned fact storage across trees.can graduate one language's compact route without flipping the global
default.
admission_route_performance_sanityCI gate, comparing the compactroute against the production route in-process, interleaved, on a fixed
9-language corpus.
Changed
tamarack harness measured it 1.1x to 2.2x slower than production on typical
files across Python, Rust, Markdown, Lua, CSS, Bash, and Go, and
TypeScript/YAML paid for both routes on every parse (compact declines, then
production reparses). Set
GTS_ADMISSION_CANDIDATE=1(ortrue/on/yes)to opt back in.
footprint on the first poll of a parse attempt, every 64th poll after it, or
whenever a cheap, O(1) capacity-based growth proxy shows growth covering
1/16th of the configured budget since the last exact check. This bounds
worst-case overshoot by construction, not just by dispatch count. Measured
peak-footprint overshoot: 1.25-2.16% over budget on an adversarial witness.
ExternalLexer's read-frontier tracking lazy: skip the frontierrecompute once the recorded values already provably cover the current
position. This benefits every route that uses an external scanner (YAML,
Python, Markdown, Bash, and others), not just the compact route.
Fixed
states. Regenerate CSV from its locked C source. Older blobs retain their
end-of-input fallback.
token.immediate()terminal with a string body thesame specificity bonus that an inline one gets. The lexer again accepts the
immediate terminal instead of a plain string literal with the same text.
Swift
var opt: Int?parsed with an ERROR after a table rebuild, because theanonymous
?won the same-span tie over_immediate_quest. Pattern-bodiednamed immediate terminals keep their authored precedence.
parser_result_yaml.gosilently clearingHasError()for a loneunmatched YAML flow-collection opener (for example a bare
[at end ofinput), which diverged from the C reference's
(ERROR ...)shape. Theproduction route now declines recovery for a bare
[/{and promotes anall-
ERRORreduction to theERRORroot itself. This bug predates thisrelease; the compact-route default flip is what exposed it.
instead of requiring every re-run to exceed budget, removing a transient
GC-timing false failure. The byte-budget assertion is skipped under the
race detector, where instrumentation noise swung a measured TotalAlloc delta
for the same input from about 66KB to about 29MB (more than 400x) and could
no longer separate noise from a real finding. The elapsed-time check and the
parser memory budget (
WithParserPoolMemoryBudgetBytes) remain the hardbounds under
-race.link 0, not on every successful merge. A fixed nesting depth that forks and
merges on every token used to rewalk the whole spine on the next head hash,
which turned the parse superlinear past depth 1600 (issue #454). An
extra-link-only merge now keeps its exact cached prefixes.
TokenSourcescanning from the still-valid queuedliteral-tail tokens, instead of resetting and relexing, when incremental
reuse resumes inside an already-queued string or character literal. The
reset path used to drop the queue and misread the remaining bytes, so the
incremental tree could differ from a fresh parse.
ParseIncremental, not only forParseIncrementalProfiled, so the reuse-budget stop arms on both entrypoints.
ParseIncrementalallocates no timing record, so a reuse-hostileedit taken through that entry point never armed the stop before this fix.
reuse proof. One unproven extra leaf used to disable incremental reuse for
the whole compact tree; an ordinary leaf still requires a proof.
ParseIncrementalreceives an oldtree with no recorded
Tree.Editcall and a new source of a differentlength. The incremental path used to trust stale byte positions against
the new source in that case, with no error or
ParseStoppedEarlysignal.Groovy grammar table derives a function-call juxtaposition only for a
block's first statement, so spliced incremental reuse could produce a tree
that a fresh parse of the same bytes never produces. Groovy's incremental
performance is unchanged; parity with a fresh parse is now guaranteed
instead of usually holding.
Known gaps
token after an earlier-line, non-crossing edit. This is fail-safe (extra
reparse work, not a wrong tree); COBOL does not support incremental reuse
today, so it has no current observable effect. Root cause is out of scope
for this release.
Breaking Changes
GTS_ADMISSION_CANDIDATEnow defaults off; its meaning is inverted from theprior release. Set it to
1,true,on, oryesto keep the compactroute on.
Performance evidence
Buildbox's tamarack harness measured the default route's in-process Go/C
ratio across three independent interleaved runs on a fixed 9-language
typical-file corpus, comparing this release's candidate code against the
prior default:
The lever-2 overshoot-bound refinement (dominant-capacity growth trigger) cost
nothing measurable; the ratio table is unchanged within run-to-run noise after
it landed. Source: #1264. A downstream #454 report attributes its resolved
regressions to the production route becoming the default.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.