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: Builder, a build system integration for Emacs Date: Mon, 22 May 2023 18:00:39 -0400 Message-ID: References: <95980ffc-86e7-ad54-4a20-539d8c6ea5d0@mailo.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="12940"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: BTuin Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue May 23 00:01:49 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 1q1DbA-00038y-Vy for ged-emacs-devel@m.gmane-mx.org; Tue, 23 May 2023 00:01:49 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q1DaH-0001Dr-IX; Mon, 22 May 2023 18:00:53 -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 1q1Da5-0001DK-3m for emacs-devel@gnu.org; Mon, 22 May 2023 18:00:41 -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 1q1Da4-0006N8-5c; Mon, 22 May 2023 18:00:40 -0400 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=PClnr8q76r5hKu8vWzOzu9ZbI/cfyM9q+U41RaXu7Z0=; b=YCX2zszMO4rz /lR74aLAr4y2siFuAvsBJVjdeVHk2hZ/Zsj8yuwsK0oY+bBLkY47cxgsMYCOp/frjAA+hUvZlLmte C7CSIOIZrvB1HFMzqG+Y2Vco85cbfnnsV7UVrP9FN0dnp1b52Yeb5AH/s70mwMBnrbic31eTAT0q/ 9mGUy7u0Tcc1aPy+J8UV9v7ClNQNhySLaKyWZ91sSTms1IzBICE6bvcbh6z+bLdh3Pj9fovh3Pwng +036gUwLUtbvMfz236gZSBaqJO2l//ZtmCER+Lc+jUij9J2kdgI3p0b4fcviwwqMTiGKlL81h+UHA /V6YApIgl+XDKoiA+FNl7A==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1q1Da3-0003RO-Qy; Mon, 22 May 2023 18:00:39 -0400 In-Reply-To: <95980ffc-86e7-ad54-4a20-539d8c6ea5d0@mailo.com> (message from BTuin on Sun, 21 May 2023 12:21:52 +0200) 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:306275 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. ]]] > As far as I know, Emacs does not provide a convenient way to use build > systems, Isn't "use build systems" what M-x compile does? Assuming that each bui;d system provides a shell command to invoke it, M-x compile can run that command and build the package. It can also parse the error messages and find the loci of problems. GNU tools use our standard format for error messages, but M-x compile handles various others. We want to extend it to handle whatever formats are useful to handle. Let's not duplicate what we already have. If we implement facilities to do other jobs, let's make them work with what we already have. > • It requires to set it up manually It requires setting up, but that doesn't have to be done manually. Whatever code is used to set things up, a Lisp program can call that and then call M-x compile. > • You cannot have a choice, like `cmake .. -DCMAKE_BUILD_TYPE=Release' > or `cmake .. -DCMAKE_BUILD_TYPE=Debug' Surely we can do any of these things in code that would call M-x ocmpile > • There is no (convenient?) way to have a configuration phase and a > compilation phase. (like `cmake ..' followed by `make') If you implement something fancier that runs two build programs, it can use M-x compile once to run the first, and call M-x compile again to run the second. -- 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)