Subject: bug#79124: emacs -Q doesn't give me a clean slate

From: Paul Eggert <[email-masked]>
Date: Wed, 6 Aug 2025 08:37:42 -0700

On 2025-08-06 07:55, Eli Zaretskii wrote:
>>> The other part of the puzzle is that it is not always
>>> possible to predict in advance what Lisp files will be automatically
>>> loaded at startup because they are needed by the startup code, so they
>>> couldn't all be natively-compiled in advance.
>>
>> That part of the puzzle does not apply, since -Q means "don't run
>> startup code".
> 
> No, it doesn't.  startup.el's code is run in "emacs -Q" as well
> (although some parts of it, like loading the user init file, are
> omitted).

I meant the user startup code. But I don't see why the other part of the 
puzzle applies for the non-user-specific part of startup.el, as that 
stuff ought to be precompiled, not taken from the user's home directory.

>> But I'm not asking for another way to avoid native compilation. Native
>> compilation is fine. Just don't trust what's already in .emacs.d, that's
>> all.
> 
> The way JIT native compilation works, it writes the *.eln files under
> the user home directory, and looks there for *.eln files that were
> already compiled.  So yes, you are asking to either avoid this or
> significantly change how it works.

? It's not much of a change to put in /tmp where it belongs. After all, 
Emacs puts this stuff in /tmp no matter what we do with $HOME, because 
libgccjit ignores $HOME and uses /tmp directly.