From: Daniel Colascione <dancol@dancol.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: owinebar@gmail.com, bjorn.bidar@thaodan.de, philipk@posteo.net,
emacs-devel@gnu.org, rms@gnu.org, manphiz@gmail.com
Subject: Re: Tree-sitter maturity
Date: Sat, 04 Jan 2025 16:18:21 -0500 [thread overview]
Message-ID: <01377C8E-D041-4441-A247-6722F99CA0A4@dancol.org> (raw)
In-Reply-To: <8634hyb8kz.fsf@gnu.org>
On January 4, 2025 3:57:48 PM EST, Eli Zaretskii <eliz@gnu.org> wrote:
>> Date: Sat, 04 Jan 2025 15:46:49 -0500
>> From: Daniel Colascione <dancol@dancol.org>
>> CC: owinebar@gmail.com, bjorn.bidar@thaodan.de, philipk@posteo.net,
>> emacs-devel@gnu.org, rms@gnu.org, manphiz@gmail.com
>>
>> >> And it creates the need to do code distribution in a bespoke way. How is that a net win?
>> >
>> >It's _our_ win. The problem is shifted to the distros, where I think
>> >it belongs.
>>
>> No, it isn't, because distros *can't* do a good job of this.
>
>Then they need to get their act together and improve.
They cannot and will not do major software engineering to work around compatibility problems that should not exist. Do you expect a Fedora packager to notice or care when the distro version of some grammar is subtly incompatible with foo-ts-mode.el in Emacs? And patch the grammar or Emacs or both? And for the Debian and Arch packagers and so to do that too? Probably with subtly different bugs? We ought to have learned after the openssl security debacle not to let distros make nontrivial code changes.
>> Besides: plenty of people (I'd guess a majority going by how the industry is set up) were using Emacs outside the context of a distro. If we weren't allergic to telemetry, we'd know.
>
>People who do that (I'm one of them, btw) can build their grammars. I
>do.
Yeah it's totally normal to download a macOS or Windows package and then have to set up a development tool chain to make the program they just installed actually work. Nothing user hostile about that.
It's really hard to see how this "rely on the distro" model is supposed to work in the real world. Besides, some of the antique platforms you insist we support, like MS-DOS and Windows 98, have nothing resembling a package manager, packages, or any way to automatically get some compatible version of a grammar. Not including the batteries means the toy doesn't work.
>
>> >> Nobody has been able to describe these legal aspects. Grammars are free software. GPL compatible, too.
>> >> That means we can put them in Emacs. That's what software freedom means.
>> >
>> >I did explain that, and don't want to repeat. You can consider those
>> >reasons unimportant, but I don't (and cannot, really: I don't call the
>> >shots in this particular game).
>>
>> No, you didn't explain. You asserted.
>>
>> You said that we would need to get written permission from grammar projects to include their code in Emacs. When I asked where this requirement comes from, you said it had always been this way and that RMS might have more information. He appears not to.
>
>RMS explicitly asked me to do that for every package we admit into
>Emacs.
Is RMS a judge? The assertion is that there is a *legal requirement* to get permission to include something in Emacs. I don't think any such requirement exists. RMS may impose that requirement, but he's not the law, and unlike the law, his policy can change.
>> >You are missing the point. My point is that several branches means we
>> >need to match a different version of the library to each branch
>>
>> If you check the grammar into the tree, the version in each branch matches that branch automatically. That's what a version control system is. It's the essence of what it does. Same goes for submodules, which are just checked-in pointers.
>
>Again, you are missing the point: we need to find an appropriate
>version for each branch, and we need to track the versions of the
>grammar so ass to be able to know, for each of our branches, the
>compatible version of the grammar. The maintenance burden is
>multiplied by the branches.
The way it should work is that you have a checked in foo-ts-mode.el and right alongside it a foo.js file that describes the tree sitter grammar that foo-ts-mode uses. When you cut a branch, you snapshot both files. No extra overhead.
Want to update foo.js? Just sync it from upstream and check it in, just like you'd check in any modified foo-ts-mode.el. You only have to do that when you want to update the grammar, and that happens whenever the mode author feels like doing it --- *exactly* the way it works today when you have a standalone foo-mode.el.
>> Can you give me a concrete example of how checking in code burdens branch maintenance? Your position isn't making any sense to me in context of how version control systems work.
>
>Finding the matching version and testing whether it matches does.
You don't do that when you cut a branch. You do that when you update the mode or its grammar, and no matter how you associate modes with their grammars, you have to test the combination.
>> >> >The difference is that the RI changes. And that's not something to
>> >> >ignore, from where I stand.
>> >>
>> >> Huh? In what possible way could a bespoke downloader be a better engineering choice than submodules?
>> >
>> >I didn't say anything about engineering, I was talking about the
>> >responsibility.
>>
>> Good engineering minimizes the number of moving parts and needless failure points in a system.
>
>Responsibility has nothing to do with engineering or moving parts.
I have no idea what you're talking about. There's responsibility to make a worse engineering choice and make a custom downloader? What's the nature of this responsibility?
next prev parent reply other threads:[~2025-01-04 21:18 UTC|newest]
Thread overview: 207+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-20 15:13 My resignation from Emacs development Alan Mackenzie
2024-11-20 15:34 ` Eli Zaretskii
2024-11-20 16:23 ` Christopher Dimech
2024-11-21 6:22 ` Gerd Möllmann
2024-11-21 10:05 ` Christopher Dimech
2024-11-21 11:23 ` Gerd Möllmann
2024-11-21 11:40 ` Eli Zaretskii
2024-11-21 10:29 ` Alan Mackenzie
2024-11-21 12:26 ` Christopher Dimech
2024-11-20 16:42 ` Alfred M. Szmidt
2024-11-20 17:04 ` tomas
2024-11-20 21:56 ` Dmitry Gutov
2024-11-21 2:28 ` Stefan Kangas
2024-11-21 12:34 ` Tree-sitter maturity (was: My resignation from Emacs development) Peter Oliver
2024-11-23 13:41 ` Stefan Kangas
2024-11-24 2:10 ` Tree-sitter maturity Björn Bidar
[not found] ` <67428b3d.c80a0220.2f3036.adbdSMTPIN_ADDED_BROKEN@mx.google.com>
2024-12-17 22:11 ` Yuan Fu
2024-12-18 13:34 ` Eli Zaretskii
2024-12-19 1:40 ` Yuan Fu
2024-12-19 8:17 ` Eli Zaretskii
2024-12-20 9:13 ` Björn Bidar
[not found] ` <6765355b.c80a0220.1a6b24.3117SMTPIN_ADDED_BROKEN@mx.google.com>
2024-12-20 9:29 ` Yuan Fu
2024-12-23 0:43 ` Björn Bidar
[not found] ` <6768b256.c80a0220.222b1b.64e6SMTPIN_ADDED_BROKEN@mx.google.com>
2024-12-24 1:20 ` Yuan Fu
[not found] ` <87frmfxm8y.fsf@>
2024-12-24 4:52 ` Richard Stallman
2024-12-24 12:32 ` Eli Zaretskii
2024-12-24 21:31 ` Xiyue Deng
2024-12-26 4:30 ` Richard Stallman
2024-12-27 10:54 ` Philip Kaludercic
2024-12-27 12:40 ` Eli Zaretskii
2024-12-27 13:46 ` Daniel Colascione
2024-12-27 14:19 ` Philip Kaludercic
2024-12-27 14:24 ` Daniel Colascione
2024-12-27 14:57 ` Philip Kaludercic
2024-12-27 15:02 ` Philip Kaludercic
2024-12-29 4:19 ` Richard Stallman
2024-12-29 4:23 ` Daniel Colascione
2024-12-29 7:44 ` Eli Zaretskii
2024-12-29 8:01 ` Daniel Colascione
2024-12-29 8:41 ` Eli Zaretskii
2024-12-29 8:59 ` Yuan Fu
2024-12-29 9:14 ` Daniel Colascione
2024-12-29 9:24 ` Eli Zaretskii
2024-12-29 10:01 ` Daniel Colascione
2024-12-29 13:35 ` Eli Zaretskii
2024-12-29 20:12 ` Daniel Colascione
2024-12-29 10:13 ` tomas
2024-12-29 10:21 ` Yuan Fu
2024-12-29 14:59 ` Daniel Colascione
2024-12-29 14:14 ` Dmitry Gutov
2024-12-29 7:26 ` Eli Zaretskii
[not found] ` <904957B9-55C1-42DF-BE6A-16986A4B539A@dancol.org>
[not found] ` <87r05o2eji.fsf@posteo.net>
[not found] ` <E2C32D27-EEC2-4DD2-B6F6-8827820B880E@dancol.org>
2024-12-31 16:47 ` Philip Kaludercic
2024-12-29 14:36 ` Lynn Winebarger
2024-12-29 20:36 ` Daniel Colascione
2024-12-29 23:29 ` Björn Bidar
[not found] ` <6771db94.050a0220.386e00.e451SMTPIN_ADDED_BROKEN@mx.google.com>
2024-12-30 0:30 ` Yuan Fu
2024-12-30 0:36 ` Daniel Colascione
2024-12-30 1:00 ` Yuan Fu
2024-12-31 9:48 ` Philip Kaludercic
2024-12-30 3:20 ` Lynn Winebarger
2024-12-31 3:22 ` Björn Bidar
2024-12-31 22:29 ` Lynn Winebarger
2025-01-01 20:23 ` Björn Bidar
[not found] ` <6775a459.170a0220.2f3d1e.1897SMTPIN_ADDED_BROKEN@mx.google.com>
2025-01-04 16:15 ` Lynn Winebarger
2025-01-04 17:39 ` Daniel Colascione
2025-01-04 18:57 ` Eli Zaretskii
2025-01-04 19:30 ` Daniel Colascione
2025-01-04 20:12 ` Eli Zaretskii
2025-01-04 20:46 ` Daniel Colascione
2025-01-04 20:57 ` Eli Zaretskii
2025-01-04 21:18 ` Daniel Colascione [this message]
2025-01-05 6:13 ` Eli Zaretskii
2025-01-04 21:25 ` Lynn Winebarger
2025-01-04 21:34 ` Daniel Colascione
2025-01-04 23:21 ` Björn Bidar
2024-12-28 12:20 ` Peter Oliver
2024-12-28 12:23 ` Philip Kaludercic
2024-12-29 14:50 ` Björn Bidar
2024-12-27 14:59 ` Eli Zaretskii
2024-12-27 15:05 ` Daniel Colascione
2024-12-27 15:31 ` Eli Zaretskii
2024-12-27 15:37 ` Daniel Colascione
2024-12-28 1:08 ` Stefan Kangas
2024-12-29 4:19 ` Richard Stallman
2024-12-29 4:21 ` Daniel Colascione
2024-12-29 6:41 ` tomas
2024-12-29 6:43 ` Daniel Colascione
2024-12-29 6:54 ` tomas
2024-12-29 7:05 ` Daniel Colascione
2024-12-29 8:56 ` tomas
2024-12-29 15:16 ` Björn Bidar
2024-12-29 15:05 ` Björn Bidar
[not found] ` <87ed1qedhl.fsf@>
2024-12-29 15:21 ` Daniel Colascione
2024-12-29 16:02 ` Björn Bidar
[not found] ` <663726A2-141B-4B98-80FB-BD93E99AC122@dancol.org>
2024-12-29 19:06 ` Björn Bidar
[not found] ` <6771d84b.050a0220.250914.d0e0SMTPIN_ADDED_BROKEN@mx.google.com>
2024-12-30 0:56 ` Yuan Fu
2024-12-27 14:11 ` Philip Kaludercic
2024-12-27 15:06 ` Eli Zaretskii
2024-12-31 13:47 ` Philip Kaludercic
2024-12-27 18:29 ` Ihor Radchenko
2024-12-28 7:55 ` Eli Zaretskii
2024-12-28 8:11 ` Ihor Radchenko
2024-12-28 8:58 ` Eli Zaretskii
2024-12-29 15:09 ` Björn Bidar
2024-12-26 4:32 ` Richard Stallman
2024-12-26 7:12 ` Eli Zaretskii
2024-12-29 14:35 ` Björn Bidar
2024-12-19 12:23 ` Peter Oliver
2024-12-19 12:42 ` Eli Zaretskii
2024-12-19 13:15 ` Vincenzo Pupillo
2024-12-20 8:59 ` Björn Bidar
2024-11-21 13:01 ` My resignation from Emacs development Alan Mackenzie
2024-11-21 13:48 ` Eli Zaretskii
2024-11-21 14:29 ` Alfred M. Szmidt
2024-11-22 0:01 ` Po Lu
2024-11-22 7:03 ` Eli Zaretskii
2024-11-22 8:14 ` Robert Pluim
2024-11-22 8:32 ` Eli Zaretskii
2024-11-22 23:59 ` Po Lu
2024-11-23 6:39 ` Eli Zaretskii
2024-11-21 16:29 ` Alan Mackenzie
2024-11-22 5:35 ` Adam Porter
2024-11-22 7:24 ` Madhu
2024-11-22 8:11 ` Eli Zaretskii
2024-11-22 9:26 ` Madhu
2024-11-22 12:07 ` Eli Zaretskii
2024-11-22 12:40 ` Stefan Kangas
2024-11-22 13:06 ` Alan Mackenzie
2024-11-22 13:39 ` Stefan Kangas
2024-11-22 14:25 ` Eli Zaretskii
2024-11-25 4:28 ` Richard Stallman
2024-11-26 17:37 ` Alan Mackenzie
2024-12-13 4:35 ` Richard Stallman
2024-12-15 15:27 ` Alan Mackenzie
2024-12-15 15:48 ` Eli Zaretskii
2024-12-15 20:43 ` Alan Mackenzie
2024-12-19 4:22 ` Richard Stallman
2024-12-19 8:26 ` Eli Zaretskii
2024-11-23 22:18 ` Andrea Corallo
2024-11-22 10:57 ` Alan Mackenzie
2024-11-22 23:19 ` Adam Porter
2024-11-26 19:01 ` Daniel Radetsky
2024-11-26 19:51 ` Christopher Dimech
2024-11-27 2:18 ` Adam Porter
2024-11-27 9:36 ` Daniel Radetsky
2024-11-27 9:59 ` Christopher Dimech
2024-11-30 3:52 ` Richard Stallman
2024-11-30 7:53 ` Eli Zaretskii
2024-11-30 16:22 ` Discuss new features/enhancements or large changes for users in emacs-devel [was: My resignation from Emacs development] Drew Adams
2024-11-30 16:56 ` Eli Zaretskii
2024-11-30 21:06 ` [External] : " Drew Adams
2024-12-01 6:00 ` Eli Zaretskii
2024-12-03 7:26 ` My resignation from Emacs development Richard Stallman
2024-12-03 13:33 ` Eli Zaretskii
2024-11-30 16:21 ` Discuss new features/enhancements or large changes for users in emacs-devel [was My resignation from Emacs development] Drew Adams
2024-11-30 17:05 ` Eli Zaretskii
2024-11-30 21:09 ` [External] : " Drew Adams
2024-12-01 6:12 ` Eli Zaretskii
2024-12-01 19:23 ` Drew Adams
2024-12-03 7:25 ` Richard Stallman
2024-12-03 13:32 ` Eli Zaretskii
2024-12-06 4:48 ` Richard Stallman
2024-12-02 4:09 ` Richard Stallman
2024-12-02 13:04 ` Discuss new features/enhancements or large changes for users in emacs-devel Eli Zaretskii
2024-12-02 15:32 ` [External] : " Drew Adams
2024-12-05 5:08 ` Richard Stallman
2024-12-05 6:33 ` Eli Zaretskii
2024-12-02 15:29 ` [External] : Re: Discuss new features/enhancements or large changes for users in emacs-devel [was My resignation from Emacs development] Drew Adams
2024-11-27 2:06 ` My resignation from Emacs development Adam Porter
2024-11-27 9:17 ` Daniel Radetsky
2024-11-22 15:36 ` Stefan Kangas
2024-11-22 17:48 ` Alan Mackenzie
2024-11-23 23:43 ` Stefan Monnier via Emacs development discussions.
2024-11-23 6:10 ` Richard Stallman
2024-11-23 7:48 ` Eli Zaretskii
2024-11-23 11:06 ` Christopher Dimech
2024-11-23 11:54 ` Eli Zaretskii
2024-11-23 12:48 ` Christopher Dimech
2024-11-23 23:59 ` Adam Porter
2024-12-01 3:50 ` Sean Whitton
2024-12-01 6:19 ` tomas
2024-11-24 18:12 ` Suhail Singh
2024-11-26 4:56 ` Richard Stallman
2024-11-26 7:38 ` Suhail Singh
2024-11-21 5:59 ` Gerd Möllmann
2024-11-22 11:36 ` Alan Mackenzie
2024-11-22 11:52 ` Eli Zaretskii
2024-11-23 10:36 ` Alan Mackenzie
2024-11-23 11:31 ` Eli Zaretskii
2024-11-21 13:39 ` Andrea Corallo
2024-11-21 19:01 ` Alfred M. Szmidt
2024-11-21 19:19 ` Christopher Dimech
2024-11-21 19:47 ` Eli Zaretskii
2024-11-21 19:40 ` Jim Porter
2024-11-24 4:35 ` Richard Stallman
2024-11-21 23:57 ` Po Lu
2024-11-22 17:26 ` On committing significant and/or controversial changes (was: My resignation from Emacs development) Ihor Radchenko
2024-11-22 17:47 ` Ship Mints
2024-11-22 19:04 ` Eli Zaretskii
2024-11-24 2:35 ` On committing significant and/or controversial changes Björn Bidar
2024-11-24 4:41 ` Adam Porter
2024-11-30 2:16 ` Björn Bidar
[not found] ` <87ttbx73zu.fsf@>
2024-11-24 8:26 ` Eli Zaretskii
2024-11-22 19:01 ` Eli Zaretskii
2024-11-23 6:10 ` My resignation from Emacs development Richard Stallman
2024-11-23 8:50 ` Eli Zaretskii
2024-11-23 6:10 ` Richard Stallman
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=01377C8E-D041-4441-A247-6722F99CA0A4@dancol.org \
--to=dancol@dancol.org \
--cc=bjorn.bidar@thaodan.de \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=manphiz@gmail.com \
--cc=owinebar@gmail.com \
--cc=philipk@posteo.net \
--cc=rms@gnu.org \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.