bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#77745: Async native compilation runs every time I start Emacs


From: Björn Lindqvist
Subject: bug#77745: Async native compilation runs every time I start Emacs
Date: Mon, 14 Apr 2025 12:14:13 +0200

> Of course.  But you run the risk of incompatibilities later on.

I guess, but there is no indication in the manual that
native-comp-eln-load-path shouldn't be modified directly. Emacs has many
other variables for search paths (like load-path) which can be freely
modified. And what if you want to add multiple directories to
native-comp-eln-load-path? Then startup-redirect-eln-cache is not
sufficient.

> I apologize that I missed what you're trying to accomplish.  If you
> want to avoid compiler warnings, perhaps suppress warnings in early
> init, and then reenable them in init where it makes sense if you
> want warnings for external packages but not core packages?

No, what I want to accomplish is:

    1. Compilation cache in ~/.cache/emacs/eln,
    2. No redundant recompilations at startup.

> The load logic is, I think, find the elc file (or make it, if byte
> compilation isn't inhibited) along load-path, and if found, probe
> the eln cache and swap the eln, if found.

I think so too, but there appears to be a race condition
involved. First the compiler can't find foobar.eln on the
native-comp-eln-load-path, so it schedules it for
recompilation. Meanwhile, native-comp-eln-load-path is updated. Then
the compiler writes foobar.eln to the *new path*.

> What platform are you on and does your build have icons and cl-lib
> in its pre-compiled directory?  Are you building Emacs without aot?

I'm building Emacs with aot on Arch Linux. Recompilation happens in
both Emacs 30.1 and 31.0.50. icons, cl-lib, and warnings are not in
the system-wide /opt/emacs/lib/emacs/31.0.50/native-lisp/ directory.


-- 
mvh/best regards Björn Lindqvist





reply via email to

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