Re: Deferring native compilation finalization until idle

Perry Fraser <[email protected]> Sat, 25 Jul 2026 15:01:41 -0400
Newsgroups gmane.emacs.devel
Message-ID <[email protected]>
Stéphane Marks <[email protected]> writes:

> On Sat, Jul 25, 2026 at 11:39 AM Perry Fraser <[email protected]>
> wrote:
>>  Stéphane Marks <[email protected]> writes:
>>
>>> I pretty much live in Emacs on macOS and this is a non-issue, IME.
>>
>>  Are you able to reproduce the behavior I described when starting
>>  with an empty config and a custom eln cache path in your
>>  early-init.el? (I found it especially obvious when launching M-x
>>  gnus, hitting m to compose a message, and then typing.)
>>
>>  I also assume you aren’t doing anything odd like running with SIP
>>  disabled.
>
> SIP remains enabled on my systems. On my M1 MAX macOS 26.4 laptop,
> the only computer I have access to this month, after installing a
> jimeh nightly as I mentioned and using a custom eln cache path (as I
> always do), it rebuilds from scratch because the binary hash changed
> (you can see this in the variable comp-abi-hash) and I do not see
> annoying hangs.

Not to be pushy, but I am still curious what behavior you see when
running the above steps to reproduce. Additionally, is your eln cache
path outside of the .app itself? (See below.)

> The Emacs main event loop is not impacted by asynchronous native
> compilations so I can't say what is preventing your Emacs from
> processing input keys. The only explanation I have is that macOS
> itself is doing precisely the thing that etc/PROBLEMS suggests a
> workaround for and which the jimeh builds use:
>
>   codesign --force --sign - \
>       --entitlements macos-disable-library-validation.entitlements \
>       src/emacs
>
> Are you using that?

I am not, though I think there are some additional details that need
mentioned in the PROBLEMS file for this to be an effective solution.
(Namely, macos-disable-library-validation.entitlements needs to be a
file with the appropriate entitlement enabled in it[1], and this also
requires the eln cache location to be within the .app itself as I just
found out.)

Thanks,

― Perry



Footnotes
_________

[1] You can generate an example entitlements file by running `codesign
-d --entitlements - --xml path-to-jimeh-build/Emacs.app | plutil
-convert xml1 -o - -'.