From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.devel Subject: Re: Tree-sitter maturity Date: Fri, 27 Dec 2024 14:11:01 +0000 Message-ID: <87y101rzbe.fsf@posteo.net> References: <1ed88fca-788a-fe9f-b6c8-edb2f49751c9@mavit.org.uk> <67428b3d.c80a0220.2f3036.adbdSMTPIN_ADDED_BROKEN@mx.google.com> <86ldwdm7xg.fsf@gnu.org> <6765355b.c80a0220.1a6b24.3117SMTPIN_ADDED_BROKEN@mx.google.com> <00554790-CACA-4233-8846-9E091CF1F7AA@gmail.com> <86msgl2red.fsf@gnu.org> <87o710sr7y.fsf@debian-hx90.lan> <8734i9tmze.fsf@posteo.net> <86plldwb7w.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38708"; mail-complaints-to="usenet@ciao.gmane.io" Cc: rms@gnu.org, manphiz@gmail.com, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Dec 27 15:11:54 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tRB4D-0009uO-DV for ged-emacs-devel@m.gmane-mx.org; Fri, 27 Dec 2024 15:11:53 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tRB3Z-0003vQ-Nd; Fri, 27 Dec 2024 09:11:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRB3W-0003v1-B9 for emacs-devel@gnu.org; Fri, 27 Dec 2024 09:11:10 -0500 Original-Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRB3T-0001rY-5Y for emacs-devel@gnu.org; Fri, 27 Dec 2024 09:11:10 -0500 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id D44F0240101 for ; Fri, 27 Dec 2024 15:11:02 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1735308662; bh=TKEvd4uS9tpnjbKAUeFS2q57BJQYrgSIluJi5L1bFwo=; h=From:To:Cc:Subject:Autocrypt:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:From; b=D0srap1F8jJeQhCPGz26Pq/8ooUCQ0UoHzC4PAiGf4xtWFQk815cIX+XkbQu+i9QQ lxpXj2u5dXENzV/zh1L9IFaqA0acdnGWb8cc6BRm2er2rSryJj/u7fpyGbjlaOVXNW w1NtvpBJbGkuw5ZDAm7uf4PbJVIUkN7BEFgbUFXCHCe9PB4X9byPz3aDPdR6dF4rgn xLjWOmzwBB4hTsrUsMcq39MCIOVQc3OyVY/adhD9P+zFSezIsRzcdA20L3BJ8MczGI JB9L58DCPYcX1zpJziRrQmtmgJTi5Xibe2HrFdrr4nT2a0k5GR49z4KsQgGkkbVd7p L7Qkslpqx/25A== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4YKS8Q24XCz6tsb; Fri, 27 Dec 2024 15:11:02 +0100 (CET) In-Reply-To: <86plldwb7w.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 27 Dec 2024 14:40:19 +0200") Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Received-SPF: pass client-ip=185.67.36.66; envelope-from=philipk@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:327192 Archived-At: Eli Zaretskii writes: >> From: Philip Kaludercic >> Cc: Xiyue Deng , emacs-devel@gnu.org >> Date: Fri, 27 Dec 2024 10:54:29 +0000 >> >> Richard Stallman writes: >> >> > If we add something like this to Emacs, there is an issue we need to >> > take care about: to make carefully sure that it does not install >> > any nonfree grammars. I don't know how those grammars are released, >> > ir by whom, or how much they care about free software. We can't >> > take for granted that they do. >> > >> > Perhaps we could check automatically that the grammar found is properly >> > licenses, and disregard any grammars that are not free. >> > >> > By contrast, if grammars are going to be packaged and released for >> > distros, and chosen for installation by users, then it is the user's >> > responsibility, not Emacs's responsibility, to reject the nonfree ones >> > (and the GNU/Linux distro might insist on that). >> >> It might take a while for that to happen, which is why I still believe >> it would be better if tree-sitter major modes would populate >> `treesit-language-source-alist' on their own, and point to the specific >> checkouts that the major mode developer tested their implementation >> against. > > We could have done that, but there's no way we could keep the value of > treesit-language-source-alist up-to-date, because the grammar > libraries put out new versions much more frequently than Emacs > releases, especially if you consider libraries that have no official > versions at all (in which case we can only point to some revision in > their repository). Is there a reason we need to keep them *that* up to date? What happens when someone is on an older version of Emacs, and with Tree Sitter changes in the meantime the current development tip is not compatible with the library that Emacs binds against? It seems more reliable to me to pin what commit the grammar was tested against, if only as a hint. And the release issue can be circumvented if we either list the specific revisions to use in `treesit-language-source-alist' or just download the tarball directly. Each -ts-mode.el file can just hint at the commit to use with a (add-to-list 'treesit-language-source-alist '(python "https://github.com/tree-sitter/py-tree-sitter/tarball/d65416ba825a99054f7b64649c6b93c6fa7f5e04")) expression. > The question that bothers me is how useful is it to have > treesit-language-source-alist that is outdated? What do we expect the > users to do with such an outdated value? One idea is to first download the pinned version, and if that can't be built to download the tip. We could also prompt the user to check with them. If this is a serious issue (which I cannot estimate), we can provide an official package similar to the on MELPA with updated references.