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: Tree-sitter introduction documentation Date: Tue, 27 Dec 2022 19:10:55 +0200 Message-ID: <838ris22n4.fsf@gnu.org> 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> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9866"; mail-complaints-to="usenet@ciao.gmane.io" Cc: dgutov@yandex.ru, theophilusx@gmail.com, emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Dec 27 18:11:56 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 1pADUa-0002Pd-1v for ged-emacs-devel@m.gmane-mx.org; Tue, 27 Dec 2022 18:11:56 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pADTX-0005RC-HQ; Tue, 27 Dec 2022 12:10:51 -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 1pADTV-0005Qq-FR for emacs-devel@gnu.org; Tue, 27 Dec 2022 12:10:49 -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 1pADTU-0004JH-G8; Tue, 27 Dec 2022 12:10:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Ndpa6enRjiZDgrgjCW8ihknd3um8nX7cYoNo62eyy00=; b=IUKiMgmwKbPi 2R/adKmmGSzld+bEygkQ8cGkZeV4trTqRxJDqyffM4X5MDK0uAEbKifXxF70aqvSnsyaW0ghNFgZY fpBowtY1aqmrF7+H8UqxeM7W11O0mEGuXSWY1hb3sOBiWNb3gXytEXIKbrMWySO8+K6nhUdxQsys9 kD0X2IRQOsKzYZTMvanTeb17HP1PiSPLcqyj1yMTE38l376U1d5MRGWfsvQU3lAuY25v5O102IhfW TUap9LS8Tb00E8ReaAQ3tLuoLMqVz3hrwIAVN25zCraTn2Esg6ktmmeJ0NgwTqYVm5LT535JhRXeF 4hfNuYCF8TyYCRKDKPt0ZQ==; Original-Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pADTT-0008HI-TP; Tue, 27 Dec 2022 12:10:48 -0500 In-Reply-To: (message from Stefan Monnier on Tue, 27 Dec 2022 11:36:35 -0500) 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:301973 Archived-At: > From: Stefan Monnier > Cc: Dmitry Gutov , theophilusx@gmail.com, > emacs-devel@gnu.org > Date: Tue, 27 Dec 2022 11:36:35 -0500 > > > It doesn't need any project, it is literally two command lines. > > Here's an example: > > > > gcc -O2 -I. -c -o parser.o parser.c > > gcc -shared parser.o scanner.o -ltree-sitter -o libtree-sitter-c-sharp.dll > > AFAIK `parser.c` is a file generated from the actual grammar's source, > itself written in Javascript. > > So the above instructions are akin to downloading a precompiled binary > and installing it. While it is the most convenient path for the > end-users, it's important w.r.t Freedom to make sure that grammars can > also be regenerated from source by the end users. When you clone the Git repository of those grammar libraries (which AFAIK is the only way to get their sources), you get all the source files, including the Javascript sources of the grammar, the corpus of text that they used, the test files, etc. You also get the C/C++ sources of the parser and the scanner (produced from the grammar files), which you then need to compile and link into a library. So in the above you are barking up the wrong tree, and you should know me better than lecture me on software freedom and what it means.