unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: jostein@kjonigsen.net
Cc: casouri@gmail.com, emacs-devel@gnu.org, theo@thornhill.no
Subject: Re: Suggesting that feature/tree-sitter be merged (was Re: Tree-sitter and major mode inheritance)
Date: Sat, 19 Nov 2022 10:16:32 +0200	[thread overview]
Message-ID: <831qpz9x5r.fsf@gnu.org> (raw)
In-Reply-To: <cd4061ad-1cf7-2c5e-f312-616b8b170555@secure.kjonigsen.net> (message from Jostein Kjønigsen on Fri, 18 Nov 2022 22:54:49 +0100)

> Date: Fri, 18 Nov 2022 22:54:49 +0100
> From: Jostein Kjønigsen <jostein@secure.kjonigsen.net>
> 
> I know this has been said before, by people which by far has been contributing much more than me... But I
> still don't think it's a good idea to replace the implementation in existing major-modes with tree-sitter
> implementations, nor selectively activate tree-sitter in major-modes prone to inhetitence and derivation.
> 
> Me and Theodor faced these same issues with "our" C# and TypeScript major-modes, and the only "clean"
> way we agreed we could make this work was to create wholly new implementations. I can come up with
> many good, objective reasons for this, but I think Theodor has already represented this view fairly well.
> 
> While for the sake of brevity, I'll not diving deeply into this particular thing, I will say this: A new tree-sitter
> based major-mode free of compatibility concerns allowed us to create entirely new major-modes fixing most
> of our existing bugs, faster than we before would be able to fix a single bug. My personal view is that mixing
> existing major-modes with tree-sitter represents absolutely the worst of all worlds. It maintains all existing
> complexities, provides us with very few benefits, and at the same time adds complexities we didn't use to
> have. To me, that's a net negative.
> 
> Somewhat surprising to me, I see this is a somewhat controversial point of view and not as clear cut a
> matter as I would have expected it to be. I realize and respect that final decisions in these matter might take
> some time to mature. Time which given our current approach detracts from the momentum tree-sitter has
> been having.

You are looking at this from the POV of developing these features.
But we have another vantage point to consider: that of our users.
From their POV, we cannot replace existing modes with completely new
and separate implementations, we must provide a migration path which
will allow users to decide when and whether they want to switch to the
tree-sitter based implementation.  This will also allow us to improve
the tree-sitter support of the modes by collecting user feedback
sooner rather than later.

So we decided to have a hybrid approach: in some modes to provide
separate implementations, and in others to provide optional features
that users can selectively switch on.

> Instead of waiting for "every" major-mode to be re-implemented into a tree-sitter derivative in the
> feature/tree-sitter branch before we merge... How about we just accept the current "core" tree-sitter
> implementation as good enough, and consider merging that to git master as is.

Here you are preaching to the choir, since the decision to merge soon
was already made.  And it cannot be otherwise, since the time of
cutting the emacs-29 release branch is closing up, and we said 2
months ago that we intend to release Emacs 29 with tree-sitter
support.



  parent reply	other threads:[~2022-11-19  8:16 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-16 20:45 Tree-sitter and major mode inheritance Yuan Fu
2022-11-18 21:54 ` Suggesting that feature/tree-sitter be merged (was Re: Tree-sitter and major mode inheritance) Jostein Kjønigsen
2022-11-18 22:34   ` Philip Kaludercic
2022-11-18 22:58     ` Yuan Fu
2022-11-18 23:36       ` Stefan Monnier
2022-11-19  7:09       ` Philip Kaludercic
2022-11-19 14:07         ` Standardized access to a REPL (was: Suggesting that feature/tree-sitter be merged) Stefan Monnier
2022-11-19 15:03           ` Standardized access to a REPL Philip Kaludercic
2022-11-19 16:07             ` Stefan Monnier
2022-11-19 16:10               ` Philip Kaludercic
2022-11-19 16:18                 ` Eli Zaretskii
2022-11-19 22:31                   ` Stefan Monnier
2022-11-20  9:25                     ` Philip Kaludercic
2022-11-19  8:29     ` Suggesting that feature/tree-sitter be merged (was Re: Tree-sitter and major mode inheritance) Eli Zaretskii
2022-11-19 10:46       ` Philip Kaludercic
2022-11-19 11:36         ` Eli Zaretskii
2022-11-19 12:15           ` Philip Kaludercic
2022-11-19 13:05             ` Eli Zaretskii
2022-11-19 21:34         ` Dmitry Gutov
2022-11-18 22:52   ` Yuan Fu
2022-11-19  5:21     ` Theodor Thornhill
2022-11-19 18:35       ` Eli Zaretskii
2022-11-19 18:46         ` Theodor Thornhill
2022-11-19 18:51           ` Eli Zaretskii
2022-11-19 18:59             ` Theodor Thornhill
2022-11-19  7:36     ` Stefan Kangas
2022-11-19  8:09       ` Eli Zaretskii
2022-11-19 11:25         ` Stefan Kangas
2022-11-19 11:49           ` Theodor Thornhill
2022-11-19 12:03           ` Eli Zaretskii
2022-11-19  8:16   ` Eli Zaretskii [this message]
2022-11-19  9:41 ` Tree-sitter and major mode inheritance Yuan Fu
2022-11-19 10:26   ` Eli Zaretskii
2022-11-19 10:29     ` Po Lu
2022-11-19 15:19     ` Stefan Monnier
2022-11-19 17:17       ` Yuan Fu
2022-11-19 17:52         ` Eli Zaretskii
2022-11-19 21:45           ` Yuan Fu
2022-11-20  7:05             ` Eli Zaretskii
2022-11-20  0:38       ` Po Lu
2022-11-19 21:39     ` Dmitry Gutov
2022-11-19 21:49       ` Yuan Fu
2022-11-19 22:03         ` Dmitry Gutov
2022-11-19 22:36           ` Dmitry Gutov
2022-11-19 23:36             ` Yuan Fu
2022-11-19 23:42               ` Dmitry Gutov
2022-11-20  7:28                 ` Eli Zaretskii
2022-11-20 13:22                   ` Dmitry Gutov
2022-11-20 14:49                     ` Eli Zaretskii
2022-11-20 15:24                       ` Dmitry Gutov
2022-11-20  7:11           ` Eli Zaretskii
2022-11-20  9:19             ` Yuan Fu
2022-11-20 10:02               ` Eli Zaretskii
2022-11-20 22:57                 ` Yuan Fu
2022-11-20  7:05         ` Eli Zaretskii
2022-11-20 17:12           ` Dmitry Gutov
2022-11-20 17:34             ` Eli Zaretskii
2022-11-20  6:51       ` Eli Zaretskii
2022-11-20 12:45         ` Dmitry Gutov
2022-11-20 14:42           ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=831qpz9x5r.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=casouri@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=jostein@kjonigsen.net \
    --cc=theo@thornhill.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).