From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Questions about tree-sitter Date: Fri, 01 Sep 2023 13:58:24 +0300 Message-ID: <83zg26b1nz.fsf@gnu.org> References: <834jkecrl1.fsf@gnu.org> <20230901.144531.1741909029511895251.enometh@meer.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4998"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Madhu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Sep 01 12:59:45 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 1qc1sO-00014v-6B for ged-emacs-devel@m.gmane-mx.org; Fri, 01 Sep 2023 12:59:44 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qc1rP-0004iM-Kb; Fri, 01 Sep 2023 06:58:43 -0400 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 1qc1rO-0004i6-AN for emacs-devel@gnu.org; Fri, 01 Sep 2023 06:58:42 -0400 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 1qc1rM-0003mc-TV; Fri, 01 Sep 2023 06:58:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=XTbAcOPrzmUq6Xg05oXZmxKcv1efkZY+V/y9jbe9WMM=; b=Tn9KOMyv/dAdJXRboNWV +JB3koxhWdV1PxhO8umViDWWWpCKbUb/0RPob5F2QWALSgYmEwr5SfRSesp6NnKHPS/Y/8MHb+Hmd HfERiO2faYkPWHMjpYsWtGHYZllHxb9Yt7hN4kEAtqfOPlxvB1pmxL0LPZERoKXzoV/jhq+YGU2RC 47Vxe0zNoubIu1vopVq9vNQp1wi+XYIzQ6/oxZRKCcXq9qsMHE7SvzVsWLmZIb4d+4wV+qMgSDc0H fCgzlHnRDtT6lXJ98gOamwFs8ye2H2LCMfVDNMEkyfRokyKMI+gYEIYp1R+Qg/HhGKo0d/zNDq9nd lyJBh0flsoMZog==; In-Reply-To: <20230901.144531.1741909029511895251.enometh@meer.net> (message from Madhu on Fri, 01 Sep 2023 14:45:31 +0530 (IST)) 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:309758 Archived-At: > Date: Fri, 01 Sep 2023 14:45:31 +0530 (IST) > Cc: emacs-devel@gnu.org > From: Madhu > > * Eli Zaretskii <834jkecrl1.fsf@gnu.org> > Wrote on Fri, 01 Sep 2023 09:53:14 +0300 > >> From: Madhu > >> Date: Fri, 01 Sep 2023 08:09:27 +0530 > >> * Yuan Fu : > >> Wrote on Wed, 30 Aug 2023 00:03:03 -0700: > >> >> On Aug 29, 2023, at 2:26 PM, Augustin Chéneau (BTuin) wrote: > > >> >> 1. Is there a way to reload a grammar? > >> >> Emacs is pretty nice as a playground for testing grammars, but once a > >> >> grammar is loaded, it won't be loaded again until Emacs restarts (as > >> >> far as I know). Is it possible to reload a grammar after modifying > >> >> it? > >> > > >> > No, and it’s probably not easy to implement either, since unloading > >> > the grammar would require Emacs to purge/invalid all the > >> > node/query/parsers using that grammar. > >> Does else see this a fundamental problem of the infrastructure, as it > >> now relates to "becoming emacs"? > > I don't think the capability to unload and reload is a necessary > > requirement from any Emacs feature. In particular, unloading a > > feature is not always supported in a way that leaves a clean slate. > > > > It is a good thing to have that, no doubt. But not a hard > > requirement, IMO. Especially when the grammar is a C library, not a > > Lisp library. People who are testing grammars are advised to use > > scratch Emacs sessions which are restarted when the grammar changes. > > So I take it that these are shipped as black boxes: Presently if I > have a probelem with say cc-mode I can attempt to patch and fix > it. Likewise if I disagree about syntax with the package author say, > whether I can get eldoc completion or evaluation within comments, > because this is emacs and elisp, I am able to change things the way the syntax is treated on the fly. Yes. Exactly like with other libraries we link against that are maintained elsewhere: GnuTLS, the image libraries, libjansson, HarfBuzz, etc. > Am i right in apprehending that the move to treesitter is a change > this aspect of emacs: that the user become merely a user of the > product shipped by the llvm investors, and the consumption behaviour > is to be determined and dictated by the investors (who arrange to ship > black boxes) typically following the consumer patterns on the other > industry standard editors It is not a change, no. See above: we already use quite a few of libraries for specific jobs related to important Emacs functionalities. For example, good support for sophisticated text display and shaping features is unimaginable without HarfBuzz, and some scripts cannot even be displayed in a reasonably legible way without it. But since some users clearly prefer the ability to make changes by modifying Lisp over the advantages of features based on true parsing of the programming language, we will not be removing the major modes based entirely on Emacs Lisp any time soon.