emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs:Native-Comp Backtrace


From: T.V Raman
Subject: Re: Emacs:Native-Comp Backtrace
Date: Wed, 26 Aug 2020 08:06:27 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

"T.V Raman" <raman@google.com> writes:

Here is some more info based on a work-around:

Conjecture: native-comp has issues with with-eval-after-load and
friends:

The following setup produced the afore-mentioned error:

1. In the emacs startup, load dired-x when dired is loaded:
   (with-eval-after-load "dired" (require 'dired-x))
   2. dired-mode-hook contains dired-omit-mode defined in dired-x
3. During startup, a dired buffer is opened -- either via psession,
   desktop or some other means

   With the above, you get the error (symbol's function definition is
   void: dired-omit-mode)

   Fix: If in the startup file, you remove the with-eval-after-load and
   simply require dired-x, then it works.

   Additional info which lends credence to the conjecture:

   Emacspeak loads module-specific code using eval-after-load e.g. when
   "ido" is loaded, it loads emacspeak-ido after ido is done loading. In
   native-comp emacs, I find that (featurep 'emacspeak-ido) is nil after
   ido is loaded.

   I suspect use-package may also  be affected in  a similar way.
      
> Hi Andrea and others,
>
> This is a follow-on to my earlier message re a possible race
> condition, this time with a backtrace.
>
> 1. I load dired-x in my emacs startup, and I have dired-omit-mode
>    enabled via customize (settings saved to a custom file)
>
>    2. The above emacs startup works with no errors or warnings  with
>       regular emacs.
>
>       3. With emacs native-comp version, this throws a symbol's value
>          as variable is void in the *Messages* buffer.
>          4. native-emacs (native comp version) does not throw a
>             backtrace even if you start it as native-emacs
>             --debug-init
>
>             5. I produced the attached backtrace by setting
>                debug-on-error to t at the top of my early-init.el
>                6. As the backtrace below shows, the psession package
>                   in the process of restoring buffers opens a dired
>                   buffer, and at that point, dired-omit-mode    is on
>                    dired-mode-hook, but apparently dired-x hasn't been
>                   fully loaded yet.
>
>                   Debugger entered--Lisp error: (void-function 
> dired-omit-mode)
>   (dired-omit-mode)
>   (run-hooks change-major-mode-after-body-hook dired-mode-hook)
>   (apply run-hooks (change-major-mode-after-body-hook dired-mode-hook))
>   (run-mode-hooks dired-mode-hook)
>   (dired-mode "~/Mail/foo" "-al")
>   (dired-internal-noselect "~/Mail/foo" nil)
>   (dired-noselect "~/Mail/foo")
>   (run-hook-with-args-until-success dired-noselect "~/Mail/foo")
>   (find-file-noselect "/home/raman/Mail/foo/" nowarn)
>   (psession--restore-some-buffers)
>   (run-hooks emacs-startup-hook term-setup-hook)
>   (#f(compiled-function () #<bytecode -0x11887347ec248cf1>))
>   (normal-top-level)
>
> -- 
> ?7?4Id: kg:/m/0285kf1  ?0?8?7?4

-- 
?7?4Id: kg:/m/0285kf1  ?0?8?7?4



reply via email to

[Prev in Thread] Current Thread [Next in Thread]