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: Speeding up the bootstrap build - a quick hack. Date: Tue, 18 Jan 2022 16:17:50 +0200 Message-ID: <83pmopunzl.fsf@gnu.org> References: Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40900"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Jan 18 16:18:22 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 1n9qFa-000ASO-4Q for ged-emacs-devel@m.gmane-mx.org; Tue, 18 Jan 2022 16:18:22 +0100 Original-Received: from localhost ([::1]:44920 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9qFZ-000769-1k for ged-emacs-devel@m.gmane-mx.org; Tue, 18 Jan 2022 10:18:21 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:54454) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9pJ9-0001yv-NQ for emacs-devel@gnu.org; Tue, 18 Jan 2022 09:17:59 -0500 Original-Received: from [2001:470:142:3::e] (port=36416 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9pJ8-0005gM-Tx; Tue, 18 Jan 2022 09:17:58 -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=CtRyLlFNblUiAyJSk3lLlYT65QujrF3NEwlJ1rmCYiA=; b=Kl4lsoMIydYC vf57VRRwIDBZY7Tzkl5D5FFyaosukYv9fBBfiNvfsx61U+gK4QMRz05K25ozeHohIFzcEqDKZelwe MulTS6J0En95cOFnfBoCU3fSDT2NWU9hXYgGcusMlpRUJnxzKbGOCEH06KUuEIl0/v4YD7rQZHH3G rMjPg4N1XQETV0922gPWeG0lbP3Y8Bgfy2jBrjd32f4RiNIPppwMdyNCDYA+2yA06iNh6t0jyu+El ivi+Qeq5WzV8vaCz4Clb7qpQH5qZI6FuuzA5qTM9U00lXVdlbTFbhuddkM2MurDYrCWkGsBWwrneL dY76PdvSfDoOJ/8tdKKQ6A==; Original-Received: from [87.69.77.57] (port=4486 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 1n9pJ7-0002KL-G4; Tue, 18 Jan 2022 09:17:58 -0500 In-Reply-To: (message from Alan Mackenzie on Mon, 17 Jan 2022 20:26:08 +0000) 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" Xref: news.gmane.io gmane.emacs.devel:284926 Archived-At: > Date: Mon, 17 Jan 2022 20:26:08 +0000 > From: Alan Mackenzie > > diff --git a/lisp/Makefile.in b/lisp/Makefile.in > index 3a72034463..b81337d2f3 100644 > --- a/lisp/Makefile.in > +++ b/lisp/Makefile.in > @@ -85,6 +85,14 @@ BYTE_COMPILE_FLAGS = > # the compiler (so its compilation does not speed up subsequent compilations), > # it's only placed here so as to speed up generation of the loaddefs.el file. > > +COMPILE_ZEROTH = \ > + $(lisp)/emacs-lisp/macroexp.elc0 \ > + $(lisp)/emacs-lisp/cconv.elc0 \ > + $(lisp)/emacs-lisp/byte-opt.elc0 \ > + $(lisp)/emacs-lisp/bytecomp.elc0 \ > + $(lisp)/emacs-lisp/comp-cstr.elc0 \ > + $(lisp)/emacs-lisp/comp.elc0 > + > COMPILE_FIRST = \ > $(lisp)/emacs-lisp/macroexp.elc \ > $(lisp)/emacs-lisp/cconv.elc \ > @@ -298,22 +306,30 @@ $(THEFILE)n: > # subdirectories, to make sure require's and load's in the files being > # compiled find the right files. > > -.SUFFIXES: .elc .el > +.SUFFIXES: .elc0 .elc .el > > # An old-fashioned suffix rule, which, according to the GNU Make manual, > # cannot have prerequisites. > ifeq ($(HAVE_NATIVE_COMP),yes) > -.el.elc: > +.el.elc0: > + $(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) \ > + --exec "(setq load-suffixes '(\".elc0\" \".el\"))" \ > + -f batch-byte-compile $< > + mv $ + > +%.elc : %.el $(COMPILE_ZEROTH) > $(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) \ > + --exec "(setq load-suffixes '(\".elc0\" \".elc\" \".el\"))" \ > -l comp -f batch-byte+native-compile $< > else > .el.elc: > $(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile $< > endif Is this .elc0 trick just to avoid the ELC+ELN compilation of COMPILE_FIRST, and instead first compile them only to .elc and then compile again to .elc + .eln? If so, why not use no-native-compile to disable the ELN part? Since compile-first is called from src/Makefile, as part of building bootstrap-emacs, you can do that in the commands there. If you tried that and it didn't work, can you tell me what I missed? Thanks.