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 introduction documentation Date: Thu, 29 Dec 2022 11:14:08 +0000 Message-ID: <87k02aihrz.fsf@posteo.net> References: <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> <838ris22n4.fsf@gnu.org> <8335901zz3.fsf@gnu.org> <87cz84y5le.fsf@posteo.net> <3F91FDEA-881A-49DB-BB52-5A0D81C004CE@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6612"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Stefan Monnier , Eli Zaretskii , Dmitry Gutov , Tim Cross , emacs-devel@gnu.org To: Yuan Fu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Dec 29 12:14:58 2022 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 1pAqsE-0001T1-Dj for ged-emacs-devel@m.gmane-mx.org; Thu, 29 Dec 2022 12:14:58 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pAqrX-0001U9-BM; Thu, 29 Dec 2022 06:14:15 -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 1pAqrT-0001T0-02 for emacs-devel@gnu.org; Thu, 29 Dec 2022 06:14:11 -0500 Original-Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pAqrR-0002RV-2V for emacs-devel@gnu.org; Thu, 29 Dec 2022 06:14:10 -0500 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 5E2342401F3 for ; Thu, 29 Dec 2022 12:14:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1672312446; bh=6puTVr2lt3wqyBz93sT/G3h+XBmuWWgmhM948HGoQs4=; h=From:To:Cc:Subject:Date:From; b=HpW3hchQsTdWQLs4xo2CPPK6WSgaU1H8GiMR3GHRq/qJF4IkewdPK0asReINyaywZ B6eTVbCjnahi5PT7P4JJ3Cz40lsXpYGDPX2/GmgpRQZ5mjlRXUAhpOccvh4VWPGc0v /+jKMcqaXrpH1duQtTe17UyP0Zxr1QjE0Y2SBvagdbRN2NCWjEZbUX4OI8CTAQBiPa pHGHQd+9h59WWLijIaB+yDCI4DDpBfjTcCRYQJJRNyoafnt/7+CkIUHE/nZ5C6//eu 7MPjJkJVxQDlEbswUa3UsdGj+2iVZj1wN+VRXicnN0qWHuI6hKM7LWV3+lGxUQf7tA euk8KwCsvyiTQ== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4NjQkg1JTPz9rxM; Thu, 29 Dec 2022 12:14:02 +0100 (CET) In-Reply-To: <3F91FDEA-881A-49DB-BB52-5A0D81C004CE@gmail.com> (Yuan Fu's message of "Tue, 27 Dec 2022 18:52:54 -0800") Received-SPF: pass client-ip=185.67.36.65; envelope-from=philipk@posteo.net; helo=mout01.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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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:302029 Archived-At: Yuan Fu writes: >>> though considering that Emacs isn't the first editor with TreeSitter >>> support, I wonder why this hasn't happened yet. >> >> My guess is lack of motivation on one side (most editors using >> Tree-sitter already provide built-in support to automatically install >> relevant grammars, which is even simpler (but not empowering) for the >> end users since they don't need administrators access to install the >> relevant grammars). >> >> On the other side is probably the difficulty of packaging Rust and JS >> libraries which tend to be horribly misbehaved w.r.t what distributions >> expect (with things like vendoring or dependencies on very specific >> versions of libraries). > > For tree-sitter, the dependency is pretty sane, with just node and a > C/C++ compiler you can convert grammar.js to a loadable library. Do you know how strong the dependency on node is? As I said before, it seems that it is possible to evaluate the grammar files that use the DSL using something like quickjs as well, which is easier to build (or at least I have bad experiences with installing tools around the Node culture). If grammar specifications really just stick to the DSL, then this should be fine, but it appears that it should be possible for them to also load arbitrary node.js libraries as well -- the node invocation doesn't appear to inhibit this -- and complicate the process as well as the building procedure as well.