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: [PATCH] Project out of sources compilation Date: Thu, 04 Apr 2024 08:26:35 +0300 Message-ID: <86bk6p8zqs.fsf@gnu.org> References: <21f05c6124d1281dcec22404d788330abe1e55c0.camel@yandex.ru> <86v84y8yaj.fsf@gnu.org> <122ab8a44f7c4eacd480975246d66ef3a1060d38.camel@yandex.ru> <86sf028rjo.fsf@gnu.org> <86r0fm8n3j.fsf@gnu.org> <21199757e8643ad0f4924b442c0371ae24afe84e.camel@yandex.ru> <86jzle8fx5.fsf@gnu.org> <99b6071c01ae83b9cdc418c467a7e95b6940b5c5.camel@yandex.ru> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10948"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Hi-Angel@yandex.ru, rms@gnu.org, dmitry@gutov.dev, emacs-devel@gnu.org To: Ergus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Apr 04 07:27:44 2024 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 1rsFdY-0002Yq-Ck for ged-emacs-devel@m.gmane-mx.org; Thu, 04 Apr 2024 07:27:44 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rsFce-0007Gs-2K; Thu, 04 Apr 2024 01:26:48 -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 1rsFcc-0007GW-Vk for emacs-devel@gnu.org; Thu, 04 Apr 2024 01:26:47 -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 1rsFcb-0005gP-Uw; Thu, 04 Apr 2024 01:26:45 -0400 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=XaMqqIVHeQuCCsCmbdXGcwTVLzNxYzlLdoqKP3gtF0Q=; b=bGX0buvYJMrS KGYdNM2YsngZMUsbbvirYo8e6W88veL9q9JcpuUszQxX9ImS8iWr1Fh8ZYs7L0pcEi6jhBu4W9PYe T6e+hDAZoUCfrYpWRtSiOgWE0+STCFOC/6CUzWi4t9Lc9+d/F6jwG4DGPD5xkng0PAlBe6zavhWkS SapE/V74q6u1oEqlGMDP5noQ476I3UNyNSqfZKfjjJg4rUJRDlt7WgZaP9jJoxc5ATKiHRsJfG8ky MYxV9+wkiDER6BauTQW42uov6sC9U6u3t1aB7nISfMC4ANGeHwUiQuDcfkyKBn7vJ6pgRr4ByBLDa /6/lZxlycIRseV9U/sXw4g==; In-Reply-To: (message from Ergus on Wed, 3 Apr 2024 22:12:44 +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:317513 Archived-At: > Date: Wed, 3 Apr 2024 22:12:44 +0200 > From: Ergus > Cc: Eli Zaretskii , rms@gnu.org, dmitry@gutov.dev, > emacs-devel@gnu.org > > My basic concept of OOSC (probably mistaken) is that the sources of the > project are those required to reproduce a program, because otherwise it > is not possible or are too difficult/expensive to reproduce. > > If I change project.el, then project.elc is not valid anymore and needs > to be regenerated... so, project.el is the source and the elc is a > target (not necessarily a final one) The same is true for a change in configure.ac: the configure script is no longer valid after that, and needs to be rebuilt. > In the same line, when we do out of sources compilation it may be > possible to remove the `build` directory and have the project sources > exactly as downloaded from sources. Without any other clean > needed... That's not how the GNU build infrastructure works. You have the distclean target in Makefile to clean up the tree for the new build. > Also in same line, for example, when using GIT_NAMESPACE the project.el > will change with the namespace, but the elc won't (as not tracked by > git), so GIT_NAMESPACE becomes inconsistent and requires a regeneration > of .elc, so, not a source, but a target That is a problem with project.el, I think, not with how Emacs is built. In every project, when you bootstrap it, i.e. build from the VCS repository, there are some generated files that are part of the source tree. > Finally when executing from build1 it may be possible to access the > version of project.elc used when the project was compiled in that > directory... independently of if I changed project.el latter and > compiled in build2. Latter actions in source + compilation in build2 > should not affect the consistency of build1. You are talking about modifying project.el while it is being used by a running Emacs session? In that case, all bets are off, I think.