From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: Tree-sitter introduction documentation Date: Sat, 31 Dec 2022 22:03:56 -0500 Message-ID: References: <83edszjslp.fsf@gnu.org> <87tu1vxs3a.fsf@ledu-giraud.fr> <831qozjob7.fsf@gnu.org> <87cz8jxoat.fsf@ledu-giraud.fr> <83wn6ri7pn.fsf@gnu.org> <5e0a3185-de82-b339-0fa2-956779e63d6f@cornell.edu> <868rj6vfep.fsf@gmail.com> <4895891b-e5ea-9c37-f51b-df2e479ee758@yandex.ru> <83y1qt11xq.fsf@gnu.org> <9eb013da-d0fc-8e17-c6e3-1e8f913aebfa@yandex.ru> <83pmc50xxc.fsf@gnu.org> <71cfe4e8-3bb8-b0a6-9be5-8c0a6d92cfab@yandex.ru> <83h6xg29z3.fsf@gnu.org> <87wn6cyey5.fsf@posteo.net> <787B1EB4-1925-4679-8747-449DCD685432@gmail.com> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29261"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Yuan Fu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jan 01 04:04:58 2023 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 1pBoeg-0007N6-0W for ged-emacs-devel@m.gmane-mx.org; Sun, 01 Jan 2023 04:04:58 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pBodj-0005t6-9L; Sat, 31 Dec 2022 22:03:59 -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 1pBodh-0005sN-5G for emacs-devel@gnu.org; Sat, 31 Dec 2022 22:03:57 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pBodg-0007HY-T0; Sat, 31 Dec 2022 22:03:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=PhUBD/lzGyMIQZoTZAvlshelqlNRQ8fPrWewpLR7n8M=; b=RUQnAK2FVXEo NjnLRiZVyIgMTo2ZUJi+JMKOwIddH3HP98uRfkXsfIwyPxEjwd1GfeeQNDw+ZALe2TkNtXDIxM6eF 4ddOP6OQbUCzQbYgdaRNgLLSdHSlO0Beo3S65V6y4xI9ieIovalUZ0K8nEQrp9oGkK2sE8FsYpWJz 3TnIwyv3K+voe9SAH514Zn6p+oUb4w7xwvuIE2w/9pR5QmsEC+Grwv83FCcvXaxWTwU4qYW0TYZ54 AG8OhY7LuZXRljysYhzdCeIY7rSoJyl34/5VGlGEB2oUEbHWUc92dgqnA5UiQpko1bY8bxm89QAlT 7aaQxYAz0V9vHlLgbnLI1w==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1pBodg-0004hV-MC; Sat, 31 Dec 2022 22:03:56 -0500 In-Reply-To: <787B1EB4-1925-4679-8747-449DCD685432@gmail.com> (message from Yuan Fu on Fri, 30 Dec 2022 03:06:37 -0800) 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:302172 Archived-At: [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > (setq treesit-language-source-alist > '((python "https://github.com/tree-sitter/tree-sitter-python.git") > (typescript "https://github.com/tree-sitter/tree-sitter-typescript.git" > "typescript/src" "typescript"))) A GNU package should not load other programs straight off of someone else's repository. That is vulnerable to surprise changes, in the code and in its license. We can hardly count on Github to make sure these run without any nonfree software. There are three proper ways for Emacs to handle it needs. * To assume that they are already installed. Normally they would be part of some other package in your system distro. This is what we do with many standard tools and libraries. With this method, we outsource the vetting of those programs to the GNU/Linux distro. If you use a free distro, you can count it to make free versions of those programs available to install. We could in principle handle tree-sitter grammars this way, but only if and when GNU/Linux distros generally package them. Is that the case today? * To include their source code in Emacs the Emacs release, and build them along with the rest of Emacs. * To tell the user, "Installing these external programs is your responsibility." That is the least helpful method, but it's acceptable. How does the current tree-sitter code obtain grammars to run? Does it download those straight from Github too? That's not an acceptable solution -- we should replace it with one of the three above. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)