Debugger entered--Lisp error: (void-variable subed--init-alist)
twlz0ne opened this issue · comments
Expected Behavior
No error occurs at startup.
Actual Behavior
void-variable subed--init-alist
occurs at startup.
Extra details
Debugger entered--Lisp error: (void-variable subed--init-alist)
Debug on Error enabled globally
Package cl is deprecated
Debugger entered--Lisp error: (void-variable subed--init-alist)
(let ((--dolist-tail-- subed--init-alist)) (while --dolist-tail-- (let ((item (car --dolist-tail--))) (let ((file-ext-regex (car item))) (add-to-list 'auto-mode-alist (cons (concat "\\." file-ext-regex "\\'") 'subed-mode))) (setq --dolist-tail-- (cdr --dolist-tail--)))))
eval-buffer(#<buffer *load*> nil "/Users/*/.emacs.d/elpa/subed-20201228.50..." nil t) ; Reading at buffer position 954
load-with-code-conversion("/Users/*/.emacs.d/elpa/subed-20201228.50..." "/Users/*/.emacs.d/elpa/subed-20201228.50..." nil t)
load("/Users/*/.emacs.d/elpa/subed-20201228.50..." nil t)
package--activate-autoloads-and-load-path(#s(package-desc :name subed :version (20201228 505) :summary "A major mode for editing subtitles" :reqs ((emacs (25 1))) :kind nil :archive nil :dir "/Users/*/.emacs.d/elpa/subed-20201228.50..." :extras ((:url . "https://github.com/rndusr/subed") (:keywords "convenience" "files" "hypermedia" "multimedia")) :signed nil))
package--load-files-for-activation(#s(package-desc :name subed :version (20201228 505) :summary "A major mode for editing subtitles" :reqs ((emacs (25 1))) :kind nil :archive nil :dir "/Users/*/.emacs.d/elpa/subed-20201228.50..." :extras ((:url . "https://github.com/rndusr/subed") (:keywords "convenience" "files" "hypermedia" "multimedia")) :signed nil) nil)
package-activate-1(#s(package-desc :name subed :version (20201228 505) :summary "A major mode for editing subtitles" :reqs ((emacs (25 1))) :kind nil :archive nil :dir "/Users/*/.emacs.d/elpa/subed-20201228.50..." :extras ((:url . "https://github.com/rndusr/subed") (:keywords "convenience" "files" "hypermedia" "multimedia")) :signed nil) nil deps)
package-activate(subed)
package--activate-all()
package-activate-all()
package-initialize()
(progn (toggle-debug-on-error) (setq user-emacs-directory "~/.emacs.d/") (setq package-user-dir (expand-file-name "elpa/" user-emacs-directory)) (package-initialize))
eval((progn (toggle-debug-on-error) (setq user-emacs-directory "~/.emacs.d/") (setq package-user-dir (expand-file-name "elpa/" user-emacs-directory)) (package-initialize)) t)
command-line-1(("--eval" "\n(progn\n (toggle-debug-on-error)\n (setq user-ema..."))
command-line()
normal-top-level()
Steps to reproduce
⋊> ls ~/.emacs.d/elpa/subed-20201228.505/
subed-autoloads.el subed-common.elc subed-config.elc subed-debug.elc subed-mpv.elc subed-srt.el subed-vtt.el subed.el
subed-common.el subed-config.el subed-debug.el subed-mpv.el subed-pkg.el subed-srt.elc subed-vtt.elc subed.elc
⋊> emacs -nw -Q --eval "
(progn
(toggle-debug-on-error)
(setq user-emacs-directory \"~/.emacs.d/\")
(setq package-user-dir (expand-file-name \"elpa/\" user-emacs-directory))
(package-initialize))
" --batch
Environment
- macOS 10.12.6
- Emacs 27.1&28.0
- subed-20201228.505
That prints "Debug on Error enabled globally" and exits with 0.
It's strange.
The error on my computer is caused by the following code in subed-autoloads.el
:
(dolist (item subed--init-alist) (let ((file-ext-regex (car item))) (add-to-list 'auto-mode-alist (cons (concat "\\." file-ext-regex "\\'") 'subed-mode))))
When I moved the definition of subed--init-alist
from subed-config.el
to subed.el
, then remake autoloads, the error dispear:
- subed-config.el
- (defvar subed--init-alist '(("srt" . subed-srt--init)
- ("vtt" . subed-vtt--init))
- "Alist that maps file extensions to format-specific init functions.")
- subed.el
+ ;;;###autoload
+ (defvar subed--init-alist '(("srt" . subed-srt--init)
+ ("vtt" . subed-vtt--init))
+ "Alist that maps file extensions to format-specific init functions.")
...
;;;###autoload
(dolist (item subed--init-alist)
(let ((file-ext-regex (car item)))
(add-to-list 'auto-mode-alist (cons (concat "\\." file-ext-regex "\\'")
'subed-mode))))
- subed-autoloads.el
+ (defvar subed--init-alist '(("srt" . subed-srt--init) ("vtt" . subed-vtt--init)) "\
+ Alist that maps file extensions to format-specific init functions.")
...
(dolist (item subed--init-alist) (let ((file-ext-regex (car item))) (add-to-list 'auto-mode-alist (cons (concat "\\." file-ext-regex "\\'") 'subed-mode))))
Where did you get
subed-autoloads.el
? It's not part of the repo.
Now I understand why there is no error occurs on your computer, because you used the source code directly, that makes autoload
not take effect.
I installed subed via quelpa:
(quelpa '(subed :fetcher github "rndusr/subed" :files "subed/*.el"))
It compiles the source into an ELPA compatible package, the subed-autoloads.el
is thus created.
The little change I made above will ensure that the definition of subed--init-alist
will also be added to subed-autoloads.el
before the dolist
statement: twlz0ne@73ad0a5
Same problem here, I'm using borg to install this package which will also generate an autoload file when building.
twlz0ne's patch resolves this issue.