From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org
Subject: Re: Speeding up the bootstrap build - a quick hack.
Date: Wed, 19 Jan 2022 11:10:32 +0000 [thread overview]
Message-ID: <YefxqJOoENL5x2XW@ACM> (raw)
In-Reply-To: <83y23cu9bl.fsf@gnu.org>
Hello, Eli.
On Tue, Jan 18, 2022 at 21:34:38 +0200, Eli Zaretskii wrote:
> > From: Stefan Monnier <monnier@iro.umontreal.ca>
> > Cc: Alan Mackenzie <acm@muc.de>, emacs-devel@gnu.org
> > Date: Tue, 18 Jan 2022 13:40:19 -0500
> > > 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?
> > Yes.
> > > 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.
> > But we also want to native-compile those files (after we've
> > byte-compiled them), so we do need two different targets.
> No, we need two consecutive shell commands under the same target: one
> with no-native-compile set, the other without it.
No, this would not work. It is essential to have all seven compile-first
files byte compiled before we start native compiling any of them. That
is what halves the time taken for the compile-to-native of comp.el.
I don't think we can avoid two separate targets for each of these source
files.
> This is the current recipe:
> ifeq ($(DUMPING),pdumper)
> $(bootstrap_pdmp): bootstrap-emacs$(EXEEXT)
> rm -f $@
> $(RUN_TEMACS) --batch $(BUILD_DETAILS) -l loadup --temacs=pbootstrap \
> --bin-dest $(BIN_DESTDIR) --eln-dest $(ELN_DESTDIR)
> @: Compile some files earlier to speed up further compilation.
> $(MAKE) -C ../lisp compile-first EMACS="$(bootstrap_exe)"
> endif
> What I had in mind is to run the last "$(MAKE) -C ../lisp compile-first"
> line so that it binds no-native-compile to non-nil, and then is to run
> it again without binding that variable, after touch'ing the corresponding
> *.el files to force the recompile.
> > Those should ideally be `.elc` first and `.eln` later, but we currently
> > don't know how to make that work, so Alan suggests to use `.elc0` first
> > and `.elc` later.
> I know.
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2022-01-19 11:10 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-17 20:26 Speeding up the bootstrap build - a quick hack Alan Mackenzie
2022-01-17 20:55 ` Stefan Monnier
2022-01-18 11:56 ` Alan Mackenzie
2022-01-18 13:14 ` Stefan Monnier
2022-01-18 20:27 ` Alan Mackenzie
2022-01-18 20:48 ` Stefan Monnier
2022-01-19 11:50 ` Alan Mackenzie
2022-01-19 14:34 ` Stefan Monnier
2022-01-19 15:24 ` Stefan Monnier
2022-01-18 13:16 ` Robert Pluim
2022-01-18 14:04 ` Alan Mackenzie
2022-01-18 14:13 ` Robert Pluim
2022-01-18 14:24 ` Stefan Monnier
2022-01-18 14:35 ` Robert Pluim
2022-01-18 15:13 ` Robert Pluim
2022-01-18 16:50 ` Eli Zaretskii
2022-01-18 16:09 ` Andrea Corallo
2022-01-18 18:36 ` Stefan Monnier
2022-01-18 14:05 ` Stefan Monnier
2022-01-18 14:18 ` Robert Pluim
2022-01-17 21:03 ` Lars Ingebrigtsen
2022-01-18 0:46 ` Po Lu
2022-01-18 14:17 ` Eli Zaretskii
2022-01-18 18:40 ` Stefan Monnier
2022-01-18 19:34 ` Eli Zaretskii
2022-01-18 20:28 ` Stefan Monnier
2022-01-18 20:35 ` Alan Mackenzie
2022-01-18 20:50 ` Stefan Monnier
2022-01-19 11:10 ` Alan Mackenzie [this message]
2022-01-19 11:46 ` Eli Zaretskii
2022-01-19 16:50 ` Alan Mackenzie
2022-01-19 17:03 ` Eli Zaretskii
2022-01-19 21:32 ` Alan Mackenzie
2022-01-20 9:25 ` Robert Pluim
2022-01-20 11:35 ` Alan Mackenzie
2022-01-20 13:18 ` Robert Pluim
2022-01-20 14:54 ` Robert Pluim
2022-01-20 18:48 ` Alan Mackenzie
2022-01-20 22:29 ` Stefan Monnier
2022-01-21 8:17 ` Robert Pluim
2022-01-21 10:18 ` Stephen Leake
2022-01-21 10:42 ` David Engster
2022-01-21 10:51 ` Robert Pluim
2022-01-24 19:43 ` Andrea Corallo
2022-01-24 19:54 ` Eli Zaretskii
2022-01-24 20:15 ` Andrea Corallo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YefxqJOoENL5x2XW@ACM \
--to=acm@muc.de \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.