[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tree-sitter maturity
From: |
Björn Bidar |
Subject: |
Re: Tree-sitter maturity |
Date: |
Fri, 20 Dec 2024 10:59:47 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Yuan Fu <casouri@gmail.com>
>> Date: Tue, 17 Dec 2024 14:11:51 -0800
>> Cc: Peter Oliver <p.d.oliver@mavit.org.uk>,
>> Stefan Kangas <stefankangas@gmail.com>,
>> Emacs Devel <emacs-devel@gnu.org>,
>> Eli Zaretskii <eliz@gnu.org>
>>
>> >> It’s also worth noting that Tree-sitter itself is somewhat
>> > immature; the developers say that until it reaches version 1.0, we
>> > should be wary of potentially unannounced incompatible changes
>> > (although they are trying harder to avoid this, over time).
>> >
>> >
>> > [1] https://build.opensuse.org/package/show/editors/tree-sitter
>>
>> I wonder if we can formalize a way for tree-sitter major modes to
>> state the compatible version of language grammar it uses. Maybe a
>> package.el cookies, or a variable that set, or even just comments in
>> the beginning of the file.
>>
>> Many major modes already adds entries to treesit-language-source-alist, that
>> could be a good option too.
>>
>> I especially want built-in major modes to give a version, so that
>> packagers can package Emacs with the right version of tree-sitter
>> grammar. I know Eli has problems with pinning a grammar version for
>> builtin modes before, but I wonder what’s he’s stance now?
>
> What's changed?
>
> Many language grammars don't make official releases and thus don't
> have versions. Moreover, AFAIK there's no API to determine the
> version of the grammar library we load. So how can we manage such
> version-pinning in a way that (a) is up-to-date, and (b) doesn't
> preclude people from using a grammar library due to false negatives?
There isn't any version pinning from what I know. There is no stable
definition of the grammar versions. Each grammar is used to generate a
parser based on the tree-sitter version.
I don't think pinning version does make sense especially in this
instance.