From ce5bca491344520cab2cdd998441761765fc66f3 Mon Sep 17 00:00:00 2001 From: Robert Pluim Date: Tue, 7 Dec 2021 18:43:01 +0100 Subject: [PATCH] Document native-comp-async-report-warning-errors more The docstring has a description of how fix problems in lisp code detected by native compilation, but not the Emacs Lisp manual, so document it there as well. * doc/lispref/compile.texi (Native-Compilation Functions): Refer to 'native-comp-async-report-warning-errors' (Native-Compilation Variables): Explain potential cause of warnings from native compilation. --- doc/lispref/compile.texi | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi index 523758c10f5..1ca1f66b95d 100644 --- a/doc/lispref/compile.texi +++ b/doc/lispref/compile.texi @@ -924,7 +924,11 @@ of the main Emacs process. This leaves the main Emacs process free to use while the compilation runs in the background. This is the method used by Emacs to natively-compile any Lisp file or byte-compiled Lisp file that is loaded into Emacs, when no natively-compiled file for it -is available. +is available. Note that because of this use of a subprocess, native +compilation may produce warning and errors which byte-compilation does +not, and lisp code may thus need to be modified to work correctly. See +@code{native-comp-async-report-warnings-errors} in @pxref{Native-Compilation +Variables} for more details. @defun native-compile-async files &optional recursively load selector This function compiles the named @var{files} asynchronously. The @@ -1038,6 +1042,12 @@ Emacs session in a buffer named @file{*Warnings*}. The default value @code{t} means display the resulting buffer. To log warnings without popping up the @file{*Warnings*} buffer, set this variable to @code{silent}. + + A common cause for asynchronous native-compilation to produce +warnings is compiling a file that is missing some @code{require} of a +necessary feature. The feature may be loaded into the main emacs, but +because native compilation always starts from a subprocess with a +pristine environment, that may not be true for the subprocess. @end defopt @defopt native-comp-async-query-on-exit -- 2.39.2