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

From: Eli Zaretskii <[email-masked]>
Date: Thu, 10 Jul 2025 07:50:17 +0300

> From: Spencer Baugh <[email-masked]>
> Date: Wed, 9 Jul 2025 13:43:11 -0400
> Cc: [email-masked], [email-masked], [email-masked]
> 
> > If the architecture is the same, you can take the *.eln files you
> > compiled on your system and install them on the end-user's one.  So I
> > don't see a problem to begin with -- you should be able to solve your
> > problem with a local solution.
> 
> Not if those *.eln files were compiled before installing Emacs, e.g.
> with emacs-lisp-native-compile as you suggested.

Then do it after installing Emacs on the machine which produces the
packages, and then add the resulting *.eln files to the package.

Or do something else; the tools are all there at your disposal.

> > > The strict testing done by comp-el-to-eln-rel-filename is deliberately
> > > weakened for files under PATH_REL_LOADSEARCH or PATH_DUMPLOADSEARCH:
> > > part of the filename is ignored and not checked.  I am simply
> > > suggesting that we should do the same exact thing for files under
> > > PATH_SITELOADSEARCH.
> >
> > I don't see the need.  The Emacs build doesn't compile any files
> > inside directories on that path, so there's no reason for the upstream
> > project to complicate the code on behalf of situations that don't
> > happen when Emacs is built.  There should be no problem for you to do
> > it with your local arrangements.
> 
> What local arrangement are you suggesting?

I don't know!  You haven't explained the rationale for the urge to
AOT-compile the files in site-lisp, nor even why they need to be in
site-lisp (and not in your Emacs tree, where you build) in the first
place.  You haven't explained why you cannot natively-compile the
files after the build is complete, directing the *.eln files to some
shared directory, and package those *.eln files together with the rest
of the built Emacs.  And you haven't explained many other aspects.
Which you don't need to do if you implement your own local solution
for your local problem, but without which you cannot expect us to
suggest the solution of the problem for you.

My point is that I don't see a need for the Emacs upstream project to
support AOT native compilation of site-lisp files, because files in
site-lisp are by definition the responsibility of a site.  The Emacs
project is not obliged to accommodate every single quirk of every
downstream distribution.  We provide the tools and the source code for
you to use and change as you see fit, and I see several possible
avenues of approach for this issue that you could have taken for
solving your problem locally.  But for some reason, you reject all the
proposals, and insist on having something in upstream Emacs.

> I can indeed locally patch comp-el-to-eln-rel-filename to ignore
> part of the filename for files under PATH_SITELOADSEARCH, and that's
> my current plan, if you think this is reasonable.

I don't think it's reasonable, but it's your distribution and your
users you are putting at risk.