emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building a release tarball generates trampoline files in eln-cache


From: Eli Zaretskii
Subject: Re: Building a release tarball generates trampoline files in eln-cache
Date: Thu, 11 Nov 2021 18:50:28 +0200

> From: Andrea Corallo <akrl@sdf.org>
> Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
> Date: Thu, 11 Nov 2021 15:08:16 +0000
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > You mean, bind no-native-compile to a non-nil value until after some
> > point in startup.el?
> 
> I was thinking to something a little different like recording what we
> wanted to compile when it was not possible cause too early in the
> startup.
> 
> When startup is finished if this list of pending files is not empty we
> should load comp.el (and its dependencies) and then consume the list of
> pending .el files to be compiled (possibly including comp.el as well).
> 
> > That could work (I actually tried that, but
> > under the assumption that xterm.el was the problem, so it didn't
> > help).  But why do you think this problem happens only early during
> > startup?  Suppose we cross that bridge, and then Emacs needs to load
> > some Lisp file that wasn't natively-compiled -- won't we have the same
> > problem and for the same reason?  The first gv-get in the backtrace is
> > called as part of compiling, so it sounds like every compilation is in
> > the danger of triggering this problem, because compiling needs
> > gv-setter again.  Or what am I missing?
> 
> The first `gv-get' is part of a byte compilation.  With the proposed
> mechanism it should go through postponing the comp.el load to say when
> we return to `normal-top-level'.
> 
> That's not a trivial problem, I might be missing something I don't see
> ATM.

Would the code to implement this be complicated?  If not, please show
the code you had in mind, so I could make sure we are on the same
page.  Otherwise, I guess I'll go with compiling gv.el ATM, at least
for now.

And while I have your attention, another question: suppose that Emacs
with all the preloaded files compiled to *.eln is installed on a
system that has libgccjit (which AFAIU is necessary to run the
native-compiled code), but doesn't have Binutils -- what will happen
when Emacs loads some .el file and tries to compile it?  Will the
response to the compilation failure be graceful?  (This situation is
likely to happen when users install a binary distro, but don't have
Binutils available.)

Thanks.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]