[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Native Compile: Example Of Possibly Spurious Warning
From: |
Eli Zaretskii |
Subject: |
Re: Native Compile: Example Of Possibly Spurious Warning |
Date: |
Mon, 17 May 2021 09:01:54 +0300 |
> From: "T.V Raman" <raman@google.com>
> Date: Sun, 16 May 2021 13:51:02 -0700 (PDT)
>
> Here is an example.
>
> eak/lisp/emacspeak-preamble.el: Error: Symbol's value as variable is
> void emacspeak-user-directory Disable showing Disable logging
> The above file contains this innocent looking defvar:
> (defvar emacspeak-user-directory (expand-file-name "~/.emacspeak/")
> "Emacspeak resources, e.g. pronunciation dicts.")
>
> The only library it has required at that point is cl-lib
>
> In the running emacs, the variable emacspeak-user-directory has the
> expected value:
> "/home/raman/.emacspeak/"
>
> So why the warning above?
How can we know without seeing the Lisp source file(s) relevant to
this compilation? The answer is somewhere in those files.
In general, native-compilation runs in a separate process that doesn't
inherit the environment and loaded packages of your interactive
session, so it is more sensitive to problems than when you
byte-compile the same source from your interactive session. In
particular, the Emacs sub-process that runs native-compilation is run
in the batch mode, which doesn't load your init files.
So you could try byte-compiling the same file from the shell prompt in
batch mode, as an approximation to what native-compilation does; any
warning or error you see in this batch byte-compilation will also
happen in the async native-compilation.
Re: Native Compile: Example Of Possibly Spurious Warning, Andrea Corallo, 2021/05/17