Subject: bug#60054: closed (Re: bug#60054: 29.0.60; Infinite loop when there are cyclic path in the parse tree)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 18 Dec 2022 08:11:02 +0000

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 [email-masked].

-- 
60054: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60054
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#60054: 29.0.60; Infinite loop when there are cyclic path in the parse tree
From: Yuan Fu <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Sun, 18 Dec 2022 00:10:23 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Eli Zaretskii <[email-masked]> writes:

>> From: Yuan Fu <[email-masked]>
>> Date: Sat, 17 Dec 2022 15:28:01 -0800
>> Cc: [email-masked]
>> 
>> > 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

Subject: 29.0.60; Infinite loop when there are cyclic path in the parse tree
From: Yuan Fu <[email-masked]>
To: Bug Report Emacs <[email-masked]>
Date: Tue, 13 Dec 2022 16:11:01 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

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