From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Where to place third-party C source code? Date: Sat, 28 Sep 2019 09:31:14 +0300 Message-ID: <83impdhqz1.fsf@gnu.org> References: <1504933445.581219.1569619792280.ref@mail.yahoo.com> <1504933445.581219.1569619792280@mail.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="173280"; mail-complaints-to="usenet@blaine.gmane.org" Cc: emacs-devel@gnu.org To: Jorge Araya Navarro Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Sep 28 08:32:08 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iE6H1-000ix6-I2 for ged-emacs-devel@m.gmane.org; Sat, 28 Sep 2019 08:32:07 +0200 Original-Received: from localhost ([::1]:59276 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iE6Gz-00047r-JT for ged-emacs-devel@m.gmane.org; Sat, 28 Sep 2019 02:32:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55284) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iE6GJ-0003fV-81 for emacs-devel@gnu.org; Sat, 28 Sep 2019 02:31:24 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:58352) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iE6GJ-0004DW-1U; Sat, 28 Sep 2019 02:31:23 -0400 Original-Received: from [176.228.60.248] (port=1610 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iE6GI-0007PE-Cw; Sat, 28 Sep 2019 02:31:22 -0400 In-reply-to: <1504933445.581219.1569619792280@mail.yahoo.com> (message from Jorge Araya Navarro on Fri, 27 Sep 2019 21:29:52 +0000 (UTC)) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:240359 Archived-At: > Date: Fri, 27 Sep 2019 21:29:52 +0000 (UTC) > From: Jorge Araya Navarro > > I was wondering if placing third-party C source code that is used in any feature I would like to implement in the Emacs project is "against the rules", sort of speak. I don't understand the question. Any feature supported by Emacs that needs C-level support has some C code in one of the Emacs C source files. There's no "third-party" code, everything is part of Emacs proper. >     [...] you can use the library in a larger project by adding one source file to the project. This source file needs three directories to be in the include path when compiled: > >     source file: >     - tree-sitter/lib/src/lib.c > >     include directories: >     - tree-sitter/lib/src >     - tree-sitter/lib/include >     - tree-sitter/lib/utf8proc I don't see why we would need this method, since tree-sitter is a library, and Emacs can be linked against that library. What you quote is an alternative method, but why would we need such an alternative? Of course, this is all putting the wagon ahead of the horse: we should first discuss whether we want to have Emacs be able to link to that library and provide the related features. An alternative would be to have an unbundled module that uses the Emacs module API.