doomemacs icon indicating copy to clipboard operation
doomemacs copied to clipboard

Debugger entered--Lisp error: (void-variable \.\.\.)

Open liar666 opened this issue 1 year ago • 3 comments

I confirm that...

  • [X] I have searched the issue tracker, documentation, FAQ, Discourse, and Google, in case this issue has already been reported/resolved.

  • [X] I have read "How to Debug Issues", and will use it to provide as much information about this issue as possible.

  • [X] The issue can be reproduced on the latest available commit of Doom.

  • [X] The issue can be reproduced on a stable release of Emacs, such as 27, 28, or 29. (Unstable versions end in .50, .60, or .9x)

Expected behavior

doom sync -u / doom upgrade should work flawlessly

Current behavior

After doom sync -u running emacs --debug-init shows:

Debugger entered--Lisp error: (void-variable \.\.\.)
  (progn (set-fontset-font "fontset-default" nil (font-spec :name "Symbola:" :registry "iso10646-1")) (set-fontset-font "fontset-default" '(65792 . 65855) (font-spec :name "UbuntuMono Nerd Font Mono:" :registry "iso10646-1")) (set-fontset-font "fontset-default" '(65792 . 65855) (font-spec :name "Noto Sans Symbols:" :registry "iso10646-1") nil 'append) (set-fontset-font "fontset-default" '(65792 . 65855) (font-spec :name "Aegean:" :registry "iso10646-1") nil 'append) (set-fontset-font "fontset-default" '(65792 . 65855) (font-spec :name "Symbola:" :registry "iso10646-1") nil 'append) (set-fontset-font "fontset-default" '(71424 . 71487) (font-spec :name "UbuntuMono Nerd Font Mono:" :registry "iso10646-1")) (set-fontset-font "fontset-default" '(128768 . 128895) (font-spec :name "UbuntuMono Nerd Font Mono:" :registry "iso10646-1")) (set-fontset-font "fontset-default" '(128768 . 128895) (font-spec :name "Noto Sans Symbols:" :registry "iso10646-1") nil 'append) (set-fontset-font "fontset-default" '(128768 . 128895) (font-spec :name "Symbola:" :registry "iso10646-1") nil 'append) \.\.\.)
  eval((progn (set-fontset-font "fontset-default" nil (font-spec :name "Symbola:" :registry "iso10646-1")) (set-fontset-font "fontset-default" '(65792 . 65855) (font-spec :name "UbuntuMono Nerd Font Mono:" :registry "iso10646-1")) (set-fontset-font "fontset-default" '(65792 . 65855) (font-spec :name "Noto Sans Symbols:" :registry "iso10646-1") nil 'append) (set-fontset-font "fontset-default" '(65792 . 65855) (font-spec :name "Aegean:" :registry "iso10646-1") nil 'append) (set-fontset-font "fontset-default" '(65792 . 65855) (font-spec :name "Symbola:" :registry "iso10646-1") nil 'append) (set-fontset-font "fontset-default" '(71424 . 71487) (font-spec :name "UbuntuMono Nerd Font Mono:" :registry "iso10646-1")) (set-fontset-font "fontset-default" '(128768 . 128895) (font-spec :name "UbuntuMono Nerd Font Mono:" :registry "iso10646-1")) (set-fontset-font "fontset-default" '(128768 . 128895) (font-spec :name "Noto Sans Symbols:" :registry "iso10646-1") nil 'append) (set-fontset-font "fontset-default" '(128768 . 128895) (font-spec :name "Symbola:" :registry "iso10646-1") nil 'append) \.\.\.))
  unicode-fonts--setup-1("fontset-default" nil)
  unicode-fonts-setup()
  (let (inhibit-redisplay inhibit-message) (unicode-fonts-setup))
  (progn (select-frame frame 'norecord) (require 'unicode-fonts) (if doom-symbol-font (progn (let ((doom-symbol-font-family (plist-get (font-face-attributes doom-symbol-font) :family))) (let ((--dolist-tail-- unicode-fonts-block-font-mapping)) (while --dolist-tail-- (let (...) (let* ... ...) (setq --dolist-tail-- ...))))))) (let (inhibit-redisplay inhibit-message) (unicode-fonts-setup)))
  (unwind-protect (progn (select-frame frame 'norecord) (require 'unicode-fonts) (if doom-symbol-font (progn (let ((doom-symbol-font-family (plist-get ... :family))) (let ((--dolist-tail-- unicode-fonts-block-font-mapping)) (while --dolist-tail-- (let ... ... ...)))))) (let (inhibit-redisplay inhibit-message) (unicode-fonts-setup))) (if (frame-live-p old-frame) (progn (select-frame old-frame 'norecord))) (if (buffer-live-p old-buffer) (progn (set-buffer old-buffer))))
  (let ((old-frame (selected-frame)) (old-buffer (current-buffer))) (unwind-protect (progn (select-frame frame 'norecord) (require 'unicode-fonts) (if doom-symbol-font (progn (let ((doom-symbol-font-family ...)) (let (...) (while --dolist-tail-- ...))))) (let (inhibit-redisplay inhibit-message) (unicode-fonts-setup))) (if (frame-live-p old-frame) (progn (select-frame old-frame 'norecord))) (if (buffer-live-p old-buffer) (progn (set-buffer old-buffer)))))
  (progn (let ((old-frame (selected-frame)) (old-buffer (current-buffer))) (unwind-protect (progn (select-frame frame 'norecord) (require 'unicode-fonts) (if doom-symbol-font (progn (let (...) (let ... ...)))) (let (inhibit-redisplay inhibit-message) (unicode-fonts-setup))) (if (frame-live-p old-frame) (progn (select-frame old-frame 'norecord))) (if (buffer-live-p old-buffer) (progn (set-buffer old-buffer))))))
  (if (and frame (display-multi-font-p frame)) (progn (let ((old-frame (selected-frame)) (old-buffer (current-buffer))) (unwind-protect (progn (select-frame frame 'norecord) (require 'unicode-fonts) (if doom-symbol-font (progn (let ... ...))) (let (inhibit-redisplay inhibit-message) (unicode-fonts-setup))) (if (frame-live-p old-frame) (progn (select-frame old-frame 'norecord))) (if (buffer-live-p old-buffer) (progn (set-buffer old-buffer)))))))
  +unicode-setup-fonts-h(#<frame *scratch* – Doom Emacs 0x2bf21e0>)
  +unicode-init-fonts-h()
  run-hooks(after-setting-font-hook)
  doom-init-fonts-h()
  run-hooks(after-init-hook delayed-warnings-hook)
  command-line()
  normal-top-level()

Steps to reproduce

  1. Run doom sync -u / doom upgrade
  2. start emacs --debug-init
  3. See error Debugger entered--Lisp error: (void-variable \.\.\.) and things related to font-spec :name "Symbola:"

System Information

https://pastebin.com/xvk3gu4M

liar666 avatar Nov 15 '23 23:11 liar666

I had this issue also. Reinstalling Doom fixed it. Specifically, in my case I ran rm -rf $DOOMLOCALDIR; doom install.

zeorin avatar Nov 26 '23 17:11 zeorin

I just ran into the same error. No idea what caused it, but commenting out the unicode module in $DOOMDIR/init.el and running doom sync allowed me to restart Emacs without doing a full reinstall.

I did try re-installing the unicode module afterwards, but it went back to same Debugger entered--Lisp error: (void-variable \.\.\.) error on startup, so I have to leave it uninstalled for now.

cpackard avatar Dec 29 '23 13:12 cpackard

Update: deleting the cache file ~/.emacs.d/.local/cache/pcache/unicode-fonts and restarting emacs fixed the issue for me.

Digging into the unicode-fonts-setup function from the stacktrace, I found that the issue was the bad void-variable \... being persisted in the unicode-fonts--instructions cache. It looks like the same issue as #5671.

I don't know how that bad value was added to the var originally, but removing the cache file allowed the correct values to regenerate. Eval-ing (unicode-fonts-setup unicode-fonts-fontset-names t) should also force the cache to regenerate.

cpackard avatar Dec 29 '23 15:12 cpackard