GNU bug report logs -
#60054
29.0.60; Infinite loop when there are cyclic path in the parse tree
Previous Next
Reported by: Yuan Fu <casouri <at> gmail.com>
Date: Wed, 14 Dec 2022 00:12:02 UTC
Severity: normal
Found in version 29.0.60
Done: Yuan Fu <casouri <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#60054: 29.0.60; Infinite loop when there are cyclic path in the parse tree
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 60054 <at> debbugs.gnu.org.
--
60054: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60054
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: Yuan Fu <casouri <at> gmail.com>
>> Date: Sat, 17 Dec 2022 15:28:01 -0800
>> Cc: 60054 <at> debbugs.gnu.org
>>
>> > In this particular case, it is the siblings’ parent that equals to the
>> > node. Ie, node->sibling->parent = node. If your intention is to protect
>> > us from this particular case, switching to use cursors will avoid this
>> > bug.
>>
>> Ok, I made the change to use cursor API with tests. Hopefully this is
>> the last time we need to change treesit.c before release.
>
> This broke the Windows build (I fixed it). You cannot start using new
> tree-sitter functions without adding the boilerplate code for loading
> them dynamically from the shared library at run time.
Ah right, it evaded my mind, sorry about that.
>> The node->sibling->parent = node cyclic path should be fixed by this
>> change, do you still want checks for it?
>
> If that problem can never happen, there's no need for the checks.
Cool. I’m closing this.
Yuan
[Message part 3 (message/rfc822, inline)]
This is not really an Emacs bug, but either tree-siter-c or
tree-sitter’s. I’m putting it out here so that if I’m hit by a bus
tomorrow, and treesit-search-forward-goto and friends hang,
we (eh, you) know what’s going on.
I’ve submitted an issue here:
https://github.com/tree-sitter/tree-sitter-c/issues/119
So far, I’ve only observed this in that specific edge case.
Yuan
This bug report was last modified 2 years and 238 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.