Subject: Re: bug#47337: 28.0.50; [feature/native-comp] Compilation over and over again

From: Trey Peacock <[email-masked]>
Date: Wed, 24 Mar 2021 15:15:47 +0000

"Andrea Corallo" <[email-masked]> writes:

> Trey Peacock <[email-masked]> writes:
>
>> Eli Zaretskii <[email-masked]> writes:
>>
>>>> From: Konstantin Reich <[email-masked]>
>>>> Date: Tue, 23 Mar 2021 11:42:42 +0300
>>>>
>>>> With recent update, Emacs re-compiles all files over and over again.
>>>> So for example in the directory ~/.emacs.d/eln-cache/28.0.50-da68e688
>>>> I have file "seq-c314b42f-92293e32.eln". I start emacs and the file is
>>>> compiled again. As a result, I have the same file with the
>>>> updated timestamp in the same directory.
>>>>
>>>>
>>>> Moreover, I have compiled emacs with "NATIVE_FULL_AOT=3D1". So i alread=
> y have
>>>> the same file in :
>>>> /usr/local/lib/emacs/28.0.50/native-lisp/28.0.50-da68e688/
>>>> Still, every time i start emacs, it starts to recompile all files.
>>>>
>>>> It is never ending cycle of compilation.
>>>
>>> My problem starts even earlier: dumping Emacs as part of the build
>>> doesn't seem to load the preloaded *.eln files, but the *.elc files
>>> instead (or at least it doesn't announce the fact that "native
>>> compiled lisp" file is loaded), although I do have all the freshly
>>> compiled *.eln files under native-lisp/.
>>>
>>>
>>>
>>>
>>
>> I am also experiencing this issue. I've found my comp-eln-load-path
>> value is '("~/.emacs.d/eln-cache/" "../native-lisp/"). Notably, the
>> system variable looks incorrect since based off the invocation-directory
>> it would mean my native-comp files are in /usr/native-lisp/.
>
> Could you be more specific on what's the value of you
> `invocation-directory' and where the eln is located?
>
> Thanks
>
>   Andrea

comp-eln-load-path:
("~/.emacs.d/eln-cache/" "../native-lisp/")

invocation-directory:
"/usr/bin"

comp-eln-load-path-eff:
("/home/trey/.emacs.d/eln-cache/28.0.50-1a5c4fab"
 "/usr/native-lisp/28.0.50-1a5c4fab")

Per comp.c it seems like the comp-eln-load-path isn't being updated from the
temporary value it is assigned for bootstrap.

Also, as a side note the docstring for comp-eln-load-path still
references comp-load-path which should be changed to comp-eln-load-path.