emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tree-sitter navigation time grows as sqrt(line-number)


From: Felix
Subject: Re: Tree-sitter navigation time grows as sqrt(line-number)
Date: Thu, 17 Aug 2023 17:15:53 +0200
User-agent: mu4e 1.11.14; emacs 30.0.50

Dmitry Gutov <dmitry@gutov.dev> writes:

> On 17/08/2023 17:36, Dmitry Gutov wrote:
>> On 17/08/2023 17:25, Dmitry Gutov wrote:
>>> On 17/08/2023 17:08, Felix wrote:
>>>> Hi,
>>>>
>>>> I tried that patch, and it crashes emacs whenever i try to scroll inside
>>>> a tree-sitter managed buffer.
>>>>
>>>> GNU Emacs 30.0.50 (build 22, x86_64-pc-linux-gnu, GTK+ Version
>>>> 3.24.38, cairo version 1.17.8) of 2023-08-17
>>>>
>>>> compiled with pgtk running on wayland.
>>>
>>> Thanks for testing. Does that happen in any ts mode, or some
>>> particular ones?
>>>
>>> If you run Emacs from the terminal, could you post the error backtrace?
>>>
>>> (Please keep emacs-devel in Cc).
>> For my part, I don't see it crash when scrolling (in ruby-ts-mdoe or
>> js-ts-mode, including larges files), but the test scenario by JD
>> does make it crash.
>> When running under GDB, the backtrace simply looks like this:
>> #0  0x00007ffff63bf93d in ts_tree_root_node (self=0x0) at
>> lib/src/tree.c:36
>> #1  0x00007ffff63a54e5 in ts_node_parent (self=...) at lib/src/node.c:462
>> #2  0x00005555557f0d17 in Ftreesit_node_parent
>> (node=XIL(0x5555574908c5)) at treesit.c:1906
>> #3  0x000055555576f62b in eval_sub (form=<optimized out>) at eval.c:2511
>> #4  0x000055555576f987 in Fsetq (args=<optimized out>) at eval.c:483
>> #5  0x000055555576f368 in eval_sub (form=<optimized out>) at eval.c:2462
>> #6  0x000055555576ff75 in Fprogn (body=XIL(0)) at eval.c:436
>> ...
>
> Try this one.
>
> I've read the tree-sitter docs a bit more, and also dropped the "else"
> case because it was unreachable anyway. I doesn't crash anymore here.
>
> [2. text/x-patch; treesit-node-parent.diff]...

This one doesn't crash while scrolling.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]