[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node
From: |
Yuan Fu |
Subject: |
bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node |
Date: |
Sun, 26 Feb 2023 16:34:49 -0800 |
> On Feb 26, 2023, at 1:41 AM, Mickey Petersen <mickey@masteringemacs.org>
> wrote:
>
>
> Yuan Fu <casouri@gmail.com> writes:
>
>>> GC has historically never called xmalloc, so the profiler will
>>> likely
>>> crash upon growing the mark stack as well. I guess another
>>> important
>>> question is why ts_delete_parser is calling xmalloc.
>>>
>>
>>> As you see, when we call ts_tree_delete, it calls
>>> ts_subtree_release,
>>> which in turn calls malloc (redirected into our xmalloc). Is this
>>> expected? Can you look in the tree-sitter sources and verify that
>>> this is OK?
>>
>> I had a look, and it seems legit. In tree-sitter, a TSTree (or more
>> precisely, a Subtree) is just some inlined data plus a refcounted
>> pointer to the complete data. This way multiple trees share common
>> subtrees/nodes. Eg, when incrementally parsing, you pass in an old
>> tree and get a new tree, these two trees will share the unchanged part
>> of the tree.
>
> Would that mean we could possibly preserve node instances -- either the real
> TS ones, or an Emacs-created facsimile -- between incremental parsing? That
> would be useful for refactoring.
What kind of exact interface (function) do you want? The treesit-node-outdated
error is solely Emacs’s product, tree-sitter itself doesn’t mark a node
outdated. It is possible for Emacs to not delete the old tree and give it to
you, or allow you to access information of an outdated node.
Yuan
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node, Yuan Fu, 2023/02/24
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node, Po Lu, 2023/02/25
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node, Eli Zaretskii, 2023/02/25
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node, Mickey Petersen, 2023/02/26
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node,
Yuan Fu <=
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node, Mickey Petersen, 2023/02/27
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node, Yuan Fu, 2023/02/27
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node, Mickey Petersen, 2023/02/27
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node, Yuan Fu, 2023/02/27
- bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node, Dmitry Gutov, 2023/02/27