emacs-devel
[Top][All Lists]
Advanced

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

Re: Loading tramp for dump goes into infinite regress


From: Lynn Winebarger
Subject: Re: Loading tramp for dump goes into infinite regress
Date: Tue, 26 Jul 2022 07:24:11 -0400

On Mon, Jul 25, 2022 at 9:56 AM Eli Zaretskii <eliz@gnu.org> wrote:
>
> > I am aware that dumping the eln files produces an indirection to the shared 
> > library, but not the details of the
> > implementation.
> > I would expect (or at least hope) that the effect of the evaluation that is 
> > done on loading to be stored in the
> > dump and for the shared libraries to get loaded into the process without 
> > repeating the evaluation.  So things
> > like the order of customization groups should be fixed.
>
> It depends on the top-level forms of the package, and what they do.
> If they change values of variables, those values will be dumped, yes.
>
> > I would also expect that whatever the effect is on the emacs process with 
> > .eln files loaded by the dumped
> > file, it is no worse than it would be if loaded as part of my .emacs file.
>
> How is this different from the previous expectation of yours?

I was describing my expectation of things like the shared-library and
handle slots of the Emacs process at run-time (factors exogenous to
emacs) versus endogenous factors like the state of the lisp heap.

> > Another benefit I expect from native-compilation, dumped or not, is more 
> > efficient memory use when running
> > multiple emacs processes.  With dumping, I would expect (or hope for) 
> > better garbage collector behavior
> > since the amount of allocation required for the loaded modules should be 
> > pre-determined (whether byte- or
> > native-compiled).  If the image is 300MB (including the shared libraries), 
> > so be it, as long as the memory is
> > shared between multiple processes.
>
> I don't think I understand this expectation, and I don't think
> natively-compiled code has any advantages wrt GC over the
> byte-compiled code.

This was a dumped versus non-dumped loading of native compiled
libraries.  Even if they are loaded sequentially in the same way
(except for the load-time evaluation), the creation or modification of
the heap from the pdump skips all the garbage collection cycles and
fragmentation resulting from the initial evaluation.

>
> > I'd also like a baseline expectation of performance with native-compiled 
> > libraries in the dumped image.
>
> What kind of performance?
>
Startup time, memory usage, and responsiveness.

> > > In any case, I'd suggest to get this working with *.elc files in a
> > > build without native compilation support, before you try it with
> > > native compilation.
> >
> > First I'll see if I can get the ordering straightened out with just the 
> > core emacs files required by these
> > packages, then do a test between byte-compiled and native-compiled on those.
>
> I'm saying that your job could be easier if you did the first step
> with byte-compiled files.

Given that I can't seem to produce a bootstrapped dump without getting
an incoherent eln file, I will be making one more attempt using
byte-compiled versions of the files in site-load for the dump
procedure, but with the native compiler enabled.
In either case, I will also bootstrap with native compilation disabled
for comparison.

Lynn



reply via email to

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