Subject: bug#78783: 30.1.50; AOT-compiling site-lisp during the Emacs build doesn't work

From: Eli Zaretskii <[email-masked]>
Date: Wed, 09 Jul 2025 15:01:44 +0300

> From: Spencer Baugh <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Tue, 08 Jul 2025 14:25:03 -0400
> 
> Eli Zaretskii <[email-masked]> writes:
> >> This is a general problem with AOT-compiling files which are
> >> subsequently installed somewhere else.  It applies both for core Emacs
> >> files and for site-lisp.
> >
> > No, core Emacs files are okay and supported.
> >
> > It's compiling site-lisp files in this way is not supported.  And you
> > still haven't answered my question: why do you need that?
> >
> > The supported way of compiling site-lisp files is after they are
> > installed in site-lisp.
> 
> This makes it difficult to develop code that will be installed in
> site-lisp, because code which is not installed cannot be tested with the
> native-compilation that will be used when that code is actually
> installed.  Since there are sometimes bugs in packages when used with
> native compilation, it would be better to be able to run the code before
> it is installed with the same native-compilation artifacts that will be
> used when it is installed.

Emacs 30 and later has the emacs-lisp-native-compile command, which
can be used to compile the file visited in the current buffer.  The
companion command emacs-lisp-native-compile-and-load will also load
the resulting .eln file.  I think these two commands can be used to
test the results of natively-compiling any Lisp file, anywhere.