Subject: Re: bug#44676: [PATCH] Support native compilation of packages on install

From: Stefan Kangas <[email-masked]>
Date: Wed, 18 Nov 2020 06:41:08 -0800

Hi Andrea,

Andrea Corallo <[email-masked]> writes:

> Late load assume the current bytecode is already loaded when the native
> load will happen.  This because late load is designed to be issued when
> some bytecode file is loaded and no native code alternative is found.

Thanks, I had trouble figuring out what this parameter meant.  Maybe we
could improve its documentation.

BTW, what is the purpose of the LOAD parameter here?  Is it just a
convenience feature to allow a user to load the file after compiling?
I'm asking because that option was recently made obsolete for
`byte-compile-file'.

> We should probably issue the async compilation here without late load
> and in case the bytecode is being loaded before native compilation was
> done just patch the kind of load stored into `comp-files-queue'.  ATM if
> the stored load property and new one are not matching we complain (See
> comp.el:3528).
>
> So yeah non 100% straight forward :)

So when loading a byte-compiled file, Fload should check if there exists
an entry for this file in `comp-files-queue', and if there is one,
change its load property to `lazy'?  Do I understand you correctly?
Sorry if I'm not very clear, I'm still trying to understand all this.

> That said I think we should have a customize to decided if we want
> package to eager command native compilation.
>
> I may never used some of the installed files and prefer the current
> solution for that, or maybe I may just like to have the compilation
> happening in a more diluted fashion and on demand (my personal taste).

OK, I'll add such an option.