Subject: Re: bug#74382: `compile-first` Make rule is no longer using `load-prefer-newer`

From: Konstantin Kharlamov <[email-masked]>
Date: Mon, 18 Nov 2024 16:12:08 +0300

On Mon, 2024-11-18 at 14:59 +0200, Eli Zaretskii wrote:
> > From: Konstantin Kharlamov <[email-masked]>
> > Cc: Eli Zaretskii <[email-masked]>, [email-masked], [email-masked]
> > Date: Mon, 18 Nov 2024 13:05:54 +0300
> > 
> > Btw, thank you, this bit of history indeed is interesting. During
> > whole
> > discussion I had a question on the back of my mind: how this
> > "distribute pre-built elc in tarballs" idea initially came to be. I
> > mean, it's kind of nice from POV of saving a bit of energy around
> > the
> > world on CI machines, but I don't see much beyond that. Building
> > elc
> > files is not *that* bad for elc distribution to be strictly
> > necessary.
> 
> Once again, building all the *.elc files takes a long time, even on
> modern systems.  I have a 32-core screamer, and it still takes a few
> minutes to byte-compile everything.  On an older system, it used to
> take me 15 minutes even in parallel (-j4) builds.
> 
> Computers got much faster, but people know that, so they have less
> patience.  Thus, avoiding recompilation of the *.elc files (and Info,
> and other derived files) is still important to make the build faster.
> A release tarball builds in less than 1 min due to these measures.

3 and even 15 minutes of compilation once a few months at worst (the
time between Emacs releases) is not a big deal. Besides, the endusers
don't typically compile releases, instead distro packagers do that, and
they are typically using CI.

Emacs by far is not the slowest project to compile from scratch. AFAIR
LibreOffce and Linux Kernel take longer to build.

> > Now that you told this, I realize it's just a solution to a problem
> > from 25 years old back, from times when that actually was a
> > problem.
> 
> I don't understand this conclusion.  What problem existed 25 years
> ago
> that is related to "make clean" or to load-prefer-newer, and doesn't
> exist anymore?

This is tangentially related to `make clean` discussoin. I was just
curious how come that Emacs started distributing elc files in release
tarballs. Like, was there someone who asked for that, or anything… Now
I see it's just a feature from long past. I am not saying it's bad or
good, because that's a separate question (there are both pros and
cons).