Update INSTALL for native compilation of Lisp files

* INSTALL: Add section "Native compilation of Lisp files" under
ADDITIONAL DISTRIBUTION FILES and correspondingly augment item 6
of DETAILED BUILDING AND INSTALLATION.  In the latter also note
differences between in-source-tree and out-of-tree builds for
running 'src/emacs' uninstalled.
scratch/interpreted-function
Stephen Berman 2024-04-08 13:56:56 +02:00
parent c9d7721db6
commit b9b2bc7192
1 changed files with 38 additions and 4 deletions

42
INSTALL
View File

@ -273,6 +273,25 @@ to force GTK+ to run under Broadway, start Emacs like this:
The GNUstep build also supports the Wayland window system. If that is
what you want, see nextstep/INSTALL.
* Native compilation of Lisp files
In addition to byte-compiling files of Lisp code, Emacs can also produce
"native code", which usually runs several times faster than the
corresponding byte-compiled code. To build Emacs with this feature,
your system must have not only GCC (the C compiler) and Binutils (the
assembler and linker) but also the 'libgccjit' shared library, which is
part of the GCC distribution. If these components are available,
building Emacs will automatically produce natively compiled Lisp code.
By default, Emacs natively compiles only pre-loaded Lisp files during
the build process; other Lisp files are natively compiled
"just-in-time", i.e., the first time they are loaded into the running
Emacs. If you want Emacs to natively compile all Lisp files during the
build ("ahead of time"), use the 'configure' option
'--with-native-compilation=aot'. If you do not want natively compiled
Lisp code even if your system satisfies the build requirements, use the
'configure' option '--with-native-compilation=no'.
DETAILED BUILDING AND INSTALLATION:
(This is for a Unix or Unix-like system. For GNUstep and macOS,
@ -568,10 +587,18 @@ need to create them if you have nothing to put in them.
wish to add to various termcap entries. (This is unlikely to be necessary.)
6) Run 'make' in the top directory of the Emacs distribution to finish
building Emacs in the standard way. The final executable file is
named 'src/emacs'. You can execute this file "in place" without
copying it, if you wish; then it automatically uses the sibling
directories ../lisp, ../lib-src, ../info.
building Emacs in the standard way. The final executable file is named
'src/emacs'. You can execute this file "in place" without copying it,
if you wish; then it automatically uses the sibling directories ../lisp,
../lib-src, ../info, ../native-lisp (if built with support for native
compilation).
If you build Emacs in a directory separate from the source directory
("out-of-tree"), run 'make' in the build directory. Then you can
execute the 'src/emacs' file under that directory "in place". However,
in this case the Emacs executable, while still using the ../lisp and
../info subdirectories of the source tree, will use the ../lib-src and
../native-lisp subdirectories from the build tree.
Or you can "install" the executable and the other files into their
installed locations, with 'make install'. By default, Emacs's files
@ -589,6 +616,13 @@ are installed in the following directories:
at the same time; in particular, you don't have to
make Emacs unavailable while installing a new version.
'/usr/local/lib/emacs/VERSION/native-lisp' holds the natively compiled
pre-loaded Emacs Lisp files. If the build used the
'configure' option '--with-native-compilation=aot', then
this directory holds all natively compiled Lisp files.
'~/.emacs.d/eln-cache/' holds the just-in-time natively compiled Lisp files.
'/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC
file, and other architecture-independent files Emacs
might need while running.