Subject: bug#2151: 23.0.90; Building the 23.0.90 pretest recompiles Lisp files

From: Stefan Monnier <[email-masked]>
Date: Sat, 21 Feb 2009 17:49:16 -0500

>> > After thinking some more about this, I don't see any easy and safe
>> > solution besides adding a "bootstrap-emacs" file to the tarball.
>> > Maybe in future releases we will be able to find a better way, but for
>> > now this is the only one that's safe.
>> 
>> > I will do that if you agree.
>> 
>> I'd rather not if the patch I suggested works.  Does it?

> Maybe it does, but it isn't meant to solve the problem at hand, as it
> builds bootstrap-emacs unconditionally.

Not sure what you mean.  It solves the title problem "pretest recompiles
Lisp files".  AFAIK the only thing it does unnecessarily is to dump
Emacs twice.

>> My guess is that many more people build from CVS than from the release
>> tarball.  Most users of the release will use a precompiled package.
> Then perhaps we should stop producing releases.

I don't see the relationship.  The precompiled packages built from the
tarball are probably used by many more people than either of the tarball
or the CVS.

>> > We could arrange for byte-recompile-directory at the end of the build,
>> > if that is a real-life use-case.
>> That wouldn't help: the problem is that such a change would trigger
>> recompilation of the .elc file, which in turn will run your dummy
>> bootstrap-emacs, at which point the build will presumably fail.
> You are assuming too much about what I meant.
> byte-recompile-directory could use the just-built Emacs binary, and
> the dummy bootstrap-emacs could be a shell script that just invoked
> that same binary.

Without seeing the details, it's hard to know indeed.
But the scenario I imagine is someone changing lisp/startup.el, which
will trigger recompilation before Emacs is dumped.
But yes, maybe you can come up with a clever bootstrap-emacs script
which will cause a real build of a proper bootstrap-emacs.
Still, I think this whole discussion is making us waste more time than
users will spent waiting for the extra bit of compilation time due to
having to dump Emacs twice and/or rebuild the .el files.

        Stefan