[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tree-sitter maturity
From: |
Yuan Fu |
Subject: |
Re: Tree-sitter maturity |
Date: |
Wed, 18 Dec 2024 17:40:39 -0800 |
> On Dec 18, 2024, at 5:34 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>
>> 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?
People are starting to package tree-sitter and tree-sitter grammars. If Emacs
can be packaged with the right grammars, then tree-sitter modes will work
out-of-the-box.
>
> 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?
I’m talking about a softer pin. We’re basically providing a “known to work”
version. This way packagers can package Emacs with a known-to-work version of
grammar, so the builtin modes work out-of-the-box. This doesn’t prevent people
from using a newer version and sending us a bug report, and we still try our
best to make the major modes work with the newest grammar.
If the grammar doesn’t have an explicit version, then we can just use a commit
hash. I believe all the packaging systems support that?
Yuan
- Re: Tree-sitter maturity, Yuan Fu, 2024/12/17
- Re: Tree-sitter maturity, Eli Zaretskii, 2024/12/18
- Re: Tree-sitter maturity,
Yuan Fu <=
- Re: Tree-sitter maturity, Eli Zaretskii, 2024/12/19
- Re: Tree-sitter maturity, Björn Bidar, 2024/12/20
- Message not available
- Re: Tree-sitter maturity, Yuan Fu, 2024/12/20
- Re: Tree-sitter maturity, Björn Bidar, 2024/12/22
- Re: Tree-sitter maturity, Richard Stallman, 2024/12/23
- Re: Tree-sitter maturity, Eli Zaretskii, 2024/12/24
- Re: Tree-sitter maturity, Xiyue Deng, 2024/12/24
- Re: Tree-sitter maturity, Richard Stallman, 2024/12/25
- Re: Tree-sitter maturity, Philip Kaludercic, 2024/12/27
- Re: Tree-sitter maturity, Eli Zaretskii, 2024/12/27