[Top][All Lists]

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

Re: On elisp running native - Update 11

From: Andrea Corallo
Subject: Re: On elisp running native - Update 11
Date: Tue, 18 Aug 2020 08:17:06 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Arthur Miller <arthur.miller@live.com> writes:

> Andrea Corallo via "Emacs development discussions."
> <emacs-devel@gnu.org> writes:
>> Hi all,
>> I've pushed the branch reorganizing the layout of the .eln files and the
>> load and compilation triggering mechanism.
>> Works for me, hope it does not introduce too much breakage.
>> I tried to summarize how it works now on my usual dev log page
>> http://akrl.sdf.org/gccemacs.html
> Hi Andrea;
> Thanks for great work, native compiler is really awesome and works for
> the most part great, have being using it since you posted first update
> and it works for the most part really well. I have noticed really big
> difference since few weeks ago when I compiled both Emacs and elpa
> folder to native.

Hi Arthur,

that's great to hear!

> I have some questions about this last update:
> "Deferred compilation is now enabled by default, therefore is not
> anymore necessary to set comp-deferred-compilation manually."
> Can I still compile everything to native "up-front", without need to
> wait for deffered compilation to kick in? It does not take so much time
> for me to do it, so I prefer to do it all in advance.

Yep.  By default make still native compiles all Emacs (we may change the
default but I guess we'll leave a knob there).  Regarding packages
something like ~(native-compile-async "~/.emacs.d/elpa/" 4 t)~ should
still do the job head of time.

> "When a .elc file is being loaded if a suitable .eln file is found in
> one of the eln-cache directories this is loaded instead. Otherwise the
> file is compiled asyncronously and its definitions are swapped once
> finished with that.
> I've removed .eln from load-suffixes as loading native code is not
> supposed to be manually done by the user. This has also the positive
> side effect to reduce the number of files we search for while performing
> a load."
>> Also having now some more infrastructure on how and where to place .eln
>> files should be easier to tackle the advised primitives topic for which
>> I plan to generate some code.
> Will there ever be possible for emacs to check if natively compiled file
> is older then .el (source file) and do compilation (el->elc->eln)
> automatically so we don't have to waste disk space and keep around .elc
> files? Or did I missunderstand how is is supposed to work?
> I would really prefer to see .eln as "equal" to .elc; and as there is
> a 'some-file.el' and 'some-file.elc' to see 'some-file.eln' and .eln to
> replace .elc as compiled .el file.

The short answer is: I think so.

I have an experimental branch where the .elc are not produced at all by
make bootstrap.  The only complication is that for the Emacs build I had
to modify the process to depose files containing the doc so
make-docfile.c can eat those instead of the .elc files.  Other than that
we should re-add .eln to load-suffixes.  But as I'm not sure this is a
requirement I'd prefer first to converge with the current setup.  Unless
I get some specific input on that I think I'll keep this idea and its
branch aside for now :)




reply via email to

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