]> git.eshelyaron.com Git - emacs.git/commitdiff
Document 'startup-redirect-eln-cache'
authorEli Zaretskii <eliz@gnu.org>
Thu, 8 Jun 2023 05:50:54 +0000 (08:50 +0300)
committerEli Zaretskii <eliz@gnu.org>
Thu, 8 Jun 2023 05:50:54 +0000 (08:50 +0300)
* doc/lispref/compile.texi (Native Compilation)
(Native-Compilation Functions): Document
'startup-redirect-eln-cache'.

* etc/PROBLEMS: Fix last change.
* etc/NEWS: Mark 'startup-redirect-eln-cache' as documented.

doc/lispref/compile.texi
etc/NEWS
etc/PROBLEMS

index 6ae6755ad7636e1362434298a4c0eec4526e8b1d..a51691bddcf8f93336b41ee5c5dade72cda92af6 100644 (file)
@@ -854,7 +854,10 @@ that the latter technique might still produce a small number of
 @file{*.eln} files if Emacs needs to generate @dfn{trampolines}, which
 are used if Lisp primitives are advised or redefined in your Lisp code
 that is being natively compiled.  @xref{Native-Compilation Variables,
-trampolines}.
+trampolines}.  Alternatively, you can specify that the @file{*.eln}
+files are written to a non-default directory using the
+@code{startup-redirect-eln-cache} function; @pxref{Native-Compilation
+Functions}.
 
 @menu
 * Native-Compilation Functions::  Functions to natively-compile Lisp.
@@ -977,6 +980,22 @@ the native-compilation support compiled into it.  On systems that load
 @file{libgccjit} dynamically, it also makes sure that library is
 available and can be loaded.  Lisp programs that need to know up front
 whether native-compilation is available should use this predicate.
+@end defun
+
+  By default, asynchronous native compilation writes the @file{*.eln}
+files it produces to a subdirectory of the first writable directory
+specified by the @code{native-comp-eln-load-path} variable
+(@pxref{Native-Compilation Variables}).  You can change this by using
+the following function in your startup files:
+
+@defun startup-redirect-eln-cache cache-directory
+This function arranges for the asynchronous native compilation to
+write the produced @file{*.eln} files to @var{cache-directory}, which
+must be a single directory, a string.  It also destructively modifies
+@code{native-comp-eln-load-path} such that its first element is
+@var{cache-directory}.  If @var{cache-directory} is not an absolute
+file name, it is interpreted relative to @code{user-emacs-directory}
+(@pxref{Init File}).
 @end defun
 
 @node Native-Compilation Variables
index d3146fab8ebcc133ceb872f513dccd66759f6572..ca0d602e9adc03fcc24ad0bd1e31f5a562a37743 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -226,7 +226,7 @@ ones for the current Emacs version).  Note that subdirectories of the
 system directory where the "*.eln" files are installed (usually, the
 last entry in 'native-comp-eln-load-path') are not deleted.
 
----
++++
 *** New function 'startup-redirect-eln-cache'.
 This function can be called in your init files to change the
 user-specific directory where Emacs stores the "*.eln" files produced
index 561b116c9bd03acc20bf8707807f6e2441dcd85f..e5baa8ee18a1e8f872c2851e02e0a74e06835ac1 100644 (file)
@@ -2755,8 +2755,7 @@ one, you could use the following workarounds:
     directory to that new home directory.
   . Move all the *.eln files from ~/.emacs.d/eln-cache to a directory
     out of the C:\Users tree, and customize Emacs to use that
-    directory for *.eln files.  This requires to add that directory to
-    the value of native-comp-eln-load-path, and also call the function
+    directory for *.eln files.  This requires to call the function
     startup-redirect-eln-cache in your init file, to force Emacs to
     write *.eln files compiled at run time to that directory.
   . Delete all *.eln files in your ~/.emacs.d/eln-cache directory, and