diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-14 07:33:17 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-14 07:33:17 -0500 |
| commit | dd907fde706f5a9dec0473ff465dff2ee9d9ff6a (patch) | |
| tree | 863bae393553e839be316379f40caef35a182372 | |
| parent | 71ebd8c1e16dbeec0a0e060bafc14c77ac72ab4f (diff) | |
| download | dotemacs-dd907fde706f5a9dec0473ff465dff2ee9d9ff6a.tar.gz dotemacs-dd907fde706f5a9dec0473ff465dff2ee9d9ff6a.zip | |
chore(todo): close Python tree-sitter predicate bug as upstream-resolved
The treesit-query-error redisplay flood diagnosed 2026-04-26 no
longer reproduces. Versions: emacs 30.2-3 (was 30.2-2 at the time
of the investigation, upgraded 2026-05-03), tree-sitter 0.26.8
(unchanged). The upstream Emacs version string is unchanged, but
the Arch package revision bump most likely carries a downstream
patch to treesit.c's predicate translation.
Verified by re-running the documented repro: the exact failing query
from python.el captures cleanly via `treesit-query-capture', and
`font-lock-ensure' on a real .py file under `python-ts-mode' returns
with no `treesit-query-error'. No local override needed.
Mark the todo.org entry DONE, fix the stale `inbox/' path on the
investigation-doc link (file now lives under `docs/'), update the
cross-reference from the grammar-bootstrap task to note this no
longer blocks it, and append a RESOLVED 2026-05-14 footer to the
investigation doc so future-me can see why it got closed.
| -rw-r--r-- | docs/python-treesit-predicate-mismatch.txt | 23 | ||||
| -rw-r--r-- | todo.org | 16 |
2 files changed, 32 insertions, 7 deletions
diff --git a/docs/python-treesit-predicate-mismatch.txt b/docs/python-treesit-predicate-mismatch.txt index 78f89b81..c56886af 100644 --- a/docs/python-treesit-predicate-mismatch.txt +++ b/docs/python-treesit-predicate-mismatch.txt @@ -194,3 +194,26 @@ This is upstream / system-level. Not a .emacs.d bug. Three fix surfaces: - Local override in .emacs.d (workaround only) Fixing in .emacs.d is a workaround, not a root-cause fix. Document it as such. + + +RESOLVED 2026-05-14 +------------------- +Bug no longer reproduces against the current versions: + - emacs 30.2-3 (Arch package; upgraded from 30.2-2 on 2026-05-03) + - tree-sitter 0.26.8-1 (unchanged from the original investigation) + +The exact failing query from the investigation (python.el lines +1188-1190, the keyword + self-as-keyword block) now runs cleanly +under `treesit-query-capture'. `font-lock-ensure' on a real Python +file under `python-ts-mode' completes with no `treesit-query-error'. +No local override applied to `modules/prog-python.el'. + +The upstream Emacs version string is unchanged (30.2 in both), but +the Arch package revision bumped from -2 to -3 on 2026-05-03 -- most +likely carrying a downstream patch that fixed the treesit.c predicate +translation. This matches option A from the fix-options list above +("WAIT FOR UPSTREAM EMACS FIX"). + +If the flood ever returns, restart the investigation from the +REPRODUCTION block above against whichever emacs / tree-sitter +versions are then installed. @@ -381,16 +381,16 @@ CLOSED: [2026-05-14 Thu] CLOSED: [2026-05-14 Thu] *** DONE [#B] Add ERT tests for =modules/browser-config.el= (62/76, 81.6%) :tests: -** TODO [#A] Fix Python tree-sitter font-lock query syntax error :bug: -SCHEDULED: <2026-04-27 Mon> +** DONE [#A] Fix Python tree-sitter font-lock query syntax error :bug: +CLOSED: [2026-05-14 Thu] -Diagnosed 2026-04-26 — paused at /start-work Gate 2. Root cause is system-level, not in =.emacs.d=: Emacs 30.2 + tree-sitter library 0.26.x predicate-syntax mismatch. Emacs sends =#match= (no =?= suffix), tree-sitter 0.26 rejects anything but =#match?=. Affects every =:match=, =:equal=, =:pred= predicate in every treesit-aware mode, not just Python. +Diagnosed 2026-04-26 — paused at /start-work Gate 2. Root cause was system-level, not in =.emacs.d=: Emacs 30.2 + tree-sitter library 0.26.x predicate-syntax mismatch. Emacs sent =#match= (no =?= suffix), tree-sitter 0.26 rejected anything but =#match?=. Affected every =:match=, =:equal=, =:pred= predicate in every treesit-aware mode, not just Python. Full investigation, reproduction, and fix-option analysis in: -[[file:inbox/python-treesit-predicate-mismatch.txt][inbox/python-treesit-predicate-mismatch.txt]] +[[file:docs/python-treesit-predicate-mismatch.txt][docs/python-treesit-predicate-mismatch.txt]] -Fix surfaces are upstream (Emacs source or tree-sitter library) — local options are workarounds. Recommended next-session path: check whether Emacs 30.3 / master has a fix; if not, override =python--treesit-settings= in =modules/prog-python.el= to strip the loudest predicate-using queries (loses some highlighting, kills the redisplay flood). +Resolved 2026-05-14 by an upstream emacs Arch-package revision bump (=30.2-2= → =30.2-3=, shipped 2026-05-03) — most likely carrying a downstream patch to =treesit.c='s predicate translation. Bug no longer reproduces: the exact failing query runs cleanly via =treesit-query-capture=, and =font-lock-ensure= on a real Python file under =python-ts-mode= completes with no =treesit-query-error=. No local override applied to =modules/prog-python.el=. Matches option A from the investigation's fix-options ("WAIT FOR UPSTREAM EMACS FIX"). ** STALLED [#C] EPUB text is slightly left-of-center (shr word-wrap shortfall) :bug: [2026-05-12] Visual review of the reading-width rework is done -- it's good. Not sure I actually need this nit fixed; the left-of-center bias is minor and the `+'/`-' keys let me nudge it. Parking here until I decide it bothers me enough. @@ -1672,8 +1672,10 @@ Expected outcome: - Batch/test startup should never auto-install grammars. - Document the intentional bootstrap path for a new machine. -This should be coordinated with the existing [#A] Python tree-sitter predicate -syntax issue, since both touch tree-sitter reliability. +Originally meant to coordinate with the [#A] Python tree-sitter predicate +syntax issue. That one resolved upstream on 2026-05-14 (see =docs/python- +treesit-predicate-mismatch.txt= RESOLVED footer), so this task no longer +depends on it. **** TODO [#C] Harden git clone from clipboard in =vc-config.el= :robustness:refactor: |
