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

From: Stefan Monnier <[email-masked]>
Date: Sat, 21 Feb 2009 15:54:01 -0500

>> >> > We could add some file to the tarball, generated at make-dist time, to
>> >> > signal that bootstrap-emacs is not needed.  That file could actually
>> >> > be named `bootstrap-emacs', which should resolve the problem nicely
>> >> > (assuming we manage to have it older than the oldest .elc file).
>> >> Maybe we can get that to work, but it sounds terribly hackish.
>> > Why hackish? many distributions have or create such time-stamp files,
>> > for Make's sake.
>> 
>> I guess it depends on the details.

> 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?

> In any case, it sounds wrong to me to have the distribution biased in
> favor of people who build Emacs out of CVS.

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.
So I care much more about building from CVS than building from
a tarball.  Also I care more about the build being reliable and
maintainable, than about it being optimal in all circumstances, so if
building from the tarball does a bit of extra work, I don't really mind
as long as it makes maintenance easier.
I do think the patch I proposed fixes the problem and doesn't make the
code significantly more hairy, so I'm willing to install it.  I've been
using it ever since I sent it and it seems to work fine (tho
I basically never boostrap anyway), but I'd like confirmation that it
fixes your problem before installing it.

>> >> Also, I'd like to make sure that if some wants to change some .el files
>> >> and then recompile, it still works correctly.
>> > It will, I think, because we can copy emacs to bootstrap-emacs at the
>> > end of the build.
>> What if they edit .el files before building a first `emacs'?
> 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.

        Stefan