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

From: Andrea Corallo <[email-masked]>
Date: Wed, 24 Mar 2021 16:06:05 +0000

Trey Peacock <[email-masked]> writes:

> "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.

I've updated `comp-eln-load-path-eff' and `comp-eln-load-path'
docstrings.

Thanks

  Andrea