Closed prehensilecode closed 2 years ago
Getting this, also:
Local variables list is not properly terminated
Loading /home/amontero/.spacemacs.d/init.el (source)...done
The lines above are the first two lines on my messages buffer. Normal boot, without --debug-init
.
Emacs 28.1 (kelleyk's PPA for Ubuntu Bionic without native compilation).
Spacemacs develop
branch, up to date as of today, same commit as OP.
I've just also found that the mssage does not appear after temporarily rolling back to 27.1.
UPDATE: Absence or presence of a linefeed at end of the file .emacs.d/cache/last-emacs-version
does not do anything, contrary to initial report. In both cases, the warning message appears.
This happens on the 28.1 macos
build from Emacs for MacOS as well, either installed from the website or via brew install emacs
(same origin).
The message "Local variables list is not properly terminated" in the *Message*
buffer is just a message, no harmful.
You can consider it as a message, or, it's a minor issue from upstream (Emacs issue).
How it happend: when the emacs open a file, it will try to search the local variable settings in the file, typcial format:
#!/bin/sh
print("hello")
# Local Variables:
# mode: shell
# End:
The file local variables begin with "Local Variables:", end with "End:", it's processed in the elisp function hack-local-variables--find-variables
.
If there has "Local Variables:" but no "End:' in a file, the hack-local-variables--find-variables
will emit the messsage.
Example: openning a file containt following line will cause emacs emit the message.
print("Local Variables:")
And the Spacemacs file core/core-custom-settings.el
has a line contain "Local Variables:", https://github.com/syl20bnr/spacemacs/blob/d1bdf6c6349246774b1116b81666f19b8f8484fe/core/core-custom-settings.el#L87
then the Emacs emit the message, you can try with emacs -q
and open the test file.
Upstream issue link: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55865
I have the same problem on ArchLinux with Emacs 28.1 And I cannot start the Spacemacs settings This is my Backtrace:
Debugger entered--Lisp error: (void-variable projectile-mode) (if projectile-mode nil (projectile-mode)) spacemacs-buffer//insert-recent-files-by-project((7 . 5)) (cond ((eq el 'warnings) (spacemacs-buffer//insert-errors) (spacemacs-buffer//insert-warnings)) ((eq el 'recents) (spacemacs-buffer//insert-recent-files list-size)) ((eq el 'recents-by-project) (spacemacs-buffer//insert-recent-files-by-project list-size)) ((eq el 'todos) (spacemacs-buffer//insert-todos list-size)) ((eq el 'agenda) (spacemacs-buffer//insert-agenda list-size)) ((eq el 'bookmarks) (spacemacs-buffer//insert-bookmarks list-size)) ((and (eq el 'projects) (fboundp 'projectile-mode)) (spacemacs-buffer//insert-projects list-size))) (let ((el (or (car-safe els) els)) (list-size (or (cdr-safe els) spacemacs-buffer-startup-lists-length))) (cond ((eq el 'warnings) (spacemacs-buffer//insert-errors) (spacemacs-buffer//insert-warnings)) ((eq el 'recents) (spacemacs-buffer//insert-recent-files list-size)) ((eq el 'recents-by-project) (spacemacs-buffer//insert-recent-files-by-project list-size)) ((eq el 'todos) (spacemacs-buffer//insert-todos list-size)) ((eq el 'agenda) (spacemacs-buffer//insert-agenda list-size)) ((eq el 'bookmarks) (spacemacs-buffer//insert-bookmarks list-size)) ((and (eq el 'projects) (fboundp 'projectile-mode)) (spacemacs-buffer//insert-projects list-size)))) (let ((els (car --dolist-tail--))) (let ((el (or (car-safe els) els)) (list-size (or (cdr-safe els) spacemacs-buffer-startup-lists-length))) (cond ((eq el 'warnings) (spacemacs-buffer//insert-errors) (spacemacs-buffer//insert-warnings)) ((eq el 'recents) (spacemacs-buffer//insert-recent-files list-size)) ((eq el 'recents-by-project) (spacemacs-buffer//insert-recent-files-by-project list-size)) ((eq el 'todos) (spacemacs-buffer//insert-todos list-size)) ((eq el 'agenda) (spacemacs-buffer//insert-agenda list-size)) ((eq el 'bookmarks) (spacemacs-buffer//insert-bookmarks list-size)) ((and (eq el 'projects) (fboundp 'projectile-mode)) (spacemacs-buffer//insert-projects list-size)))) (setq --dolist-tail-- (cdr --dolist-tail--))) (while --dolist-tail-- (let ((els (car --dolist-tail--))) (let ((el (or (car-safe els) els)) (list-size (or (cdr-safe els) spacemacs-buffer-startup-lists-length))) (cond ((eq el 'warnings) (spacemacs-buffer//insert-errors) (spacemacs-buffer//insert-warnings)) ((eq el 'recents) (spacemacs-buffer//insert-recent-files list-size)) ((eq el 'recents-by-project) (spacemacs-buffer//insert-recent-files-by-project list-size)) ((eq el 'todos) (spacemacs-buffer//insert-todos list-size)) ((eq el 'agenda) (spacemacs-buffer//insert-agenda list-size)) ((eq el 'bookmarks) (spacemacs-buffer//insert-bookmarks list-size)) ((and (eq el 'projects) (fboundp 'projectile-mode)) (spacemacs-buffer//insert-projects list-size)))) (setq --dolist-tail-- (cdr --dolist-tail--)))) (let ((--dolist-tail-- (append '(warnings) dotspacemacs-startup-lists))) (while --dolist-tail-- (let ((els (car --dolist-tail--))) (let ((el (or (car-safe els) els)) (list-size (or (cdr-safe els) spacemacs-buffer-startup-lists-length))) (cond ((eq el 'warnings) (spacemacs-buffer//insert-errors) (spacemacs-buffer//insert-warnings)) ((eq el 'recents) (spacemacs-buffer//insert-recent-files list-size)) ((eq el 'recents-by-project) (spacemacs-buffer//insert-recent-files-by-project list-size)) ((eq el 'todos) (spacemacs-buffer//insert-todos list-size)) ((eq el 'agenda) (spacemacs-buffer//insert-agenda list-size)) ((eq el 'bookmarks) (spacemacs-buffer//insert-bookmarks list-size)) ((and (eq el ...) (fboundp ...)) (spacemacs-buffer//insert-projects list-size)))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (let ((dotspacemacs-startup-buffer-show-icons dotspacemacs-startup-buffer-show-icons)) (if (display-graphic-p) (if (configuration-layer/package-used-p 'all-the-icons) nil (message "Package `all-the-icons' isn't installed") (setq dotspacemacs-startup-buffer-show-icons nil)) (setq dotspacemacs-startup-buffer-show-icons nil)) (if dotspacemacs-startup-buffer-show-icons (progn (require 'all-the-icons))) (let ((--dolist-tail-- (append '(warnings) dotspacemacs-startup-lists))) (while --dolist-tail-- (let ((els (car --dolist-tail--))) (let ((el (or ... els)) (list-size (or ... spacemacs-buffer-startup-lists-length))) (cond ((eq el ...) (spacemacs-buffer//insert-errors) (spacemacs-buffer//insert-warnings)) ((eq el ...) (spacemacs-buffer//insert-recent-files list-size)) ((eq el ...) (spacemacs-buffer//insert-recent-files-by-project list-size)) ((eq el ...) (spacemacs-buffer//insert-todos list-size)) ((eq el ...) (spacemacs-buffer//insert-agenda list-size)) ((eq el ...) (spacemacs-buffer//insert-bookmarks list-size)) ((and ... ...) (spacemacs-buffer//insert-projects list-size)))) (setq --dolist-tail-- (cdr --dolist-tail--)))))) spacemacs-buffer//do-insert-startupify-lists() (progn (spacemacs-buffer//do-insert-startupify-lists) (recentf-mode -1) (line-number-at-pos)) (unwind-protect (progn (spacemacs-buffer//do-insert-startupify-lists) (recentf-mode -1) (line-number-at-pos)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (spacemacs-buffer//do-insert-startupify-lists) (recentf-mode -1) (line-number-at-pos)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))) (let ((temp-buffer (generate-new-buffer " temp" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (spacemacs-buffer//do-insert-startupify-lists) (recentf-mode -1) (line-number-at-pos)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (setq lines (let ((temp-buffer (generate-new-buffer " temp" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (spacemacs-buffer//do-insert-startupify-lists) (recentf-mode -1) (line-number-at-pos)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (let ((icons dotspacemacs-startup-buffer-show-icons) lines) (setq dotspacemacs-startup-buffer-show-icons nil) (setq lines (let ((temp-buffer (generate-new-buffer " temp" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (spacemacs-buffer//do-insert-startupify-lists) (recentf-mode -1) (line-number-at-pos)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq dotspacemacs-startup-buffer-show-icons icons) lines) (let ((startup-list-line-height (let ((icons dotspacemacs-startup-buffer-show-icons) lines) (setq dotspacemacs-startup-buffer-show-icons nil) (setq lines (let ((temp-buffer ...)) (save-current-buffer (set-buffer temp-buffer) (unwind-protect ... ...)))) (setq dotspacemacs-startup-buffer-show-icons icons) lines)) (image-height (- (window-text-height) 26 startup-list-line-height))) (max image-height 3)) spacemacs-buffer//banner-fit-height-size() (float (spacemacs-buffer//banner-fit-height-size)) (/ (float (spacemacs-buffer//banner-fit-height-size)) height) (let ((factor (/ (float (spacemacs-buffer//banner-fit-height-size)) height))) (min factor 1)) (let nil (let ((factor (/ (float (spacemacs-buffer//banner-fit-height-size)) height))) (min factor 1))) (if (eq dotspacemacs-startup-banner-scale 'auto) (let nil (let ((factor (/ (float (spacemacs-buffer//banner-fit-height-size)) height))) (min factor 1))) (let ((factor dotspacemacs-startup-banner-scale)) factor)) (let ((title spacemacs-buffer-logo-title) (spec (create-image banner)) (unscaled-size (image-size spec)) (height (cdr unscaled-size)) (scale (if (eq dotspacemacs-startup-banner-scale 'auto) (let nil (let ((factor ...)) (min factor 1))) (let ((factor dotspacemacs-startup-banner-scale)) factor))) (size (cons ( scale (car unscaled-size)) ( scale (cdr unscaled-size)))) (width (car size)) (left-margin (max 0 (floor (- spacemacs-buffer--window-width width) 2)))) (plist-put (cdr spec) :scale scale) (insert (make-string left-margin 32)) (insert-image spec) (insert "\n\n") (insert (make-string (max 0 (floor (/ (- spacemacs-buffer--window-width (+ ... 1)) 2))) 32)) (insert (format "%s\n\n" title))) (progn (let ((title spacemacs-buffer-logo-title) (spec (create-image banner)) (unscaled-size (image-size spec)) (height (cdr unscaled-size)) (scale (if (eq dotspacemacs-startup-banner-scale 'auto) (let nil (let (...) (min factor 1))) (let ((factor dotspacemacs-startup-banner-scale)) factor))) (size (cons ( scale (car unscaled-size)) ( scale (cdr unscaled-size)))) (width (car size)) (left-margin (max 0 (floor (- spacemacs-buffer--window-width width) 2)))) (plist-put (cdr spec) :scale scale) (insert (make-string left-margin 32)) (insert-image spec) (insert "\n\n") (insert (make-string (max 0 (floor (/ (- spacemacs-buffer--window-width ...) 2))) 32)) (insert (format "%s\n\n" title)))) (if (file-exists-p banner) (progn (let ((title spacemacs-buffer-logo-title) (spec (create-image banner)) (unscaled-size (image-size spec)) (height (cdr unscaled-size)) (scale (if (eq dotspacemacs-startup-banner-scale 'auto) (let nil (let ... ...)) (let (...) factor))) (size (cons ( scale (car unscaled-size)) ( scale (cdr unscaled-size)))) (width (car size)) (left-margin (max 0 (floor (- spacemacs-buffer--window-width width) 2)))) (plist-put (cdr spec) :scale scale) (insert (make-string left-margin 32)) (insert-image spec) (insert "\n\n") (insert (make-string (max 0 (floor (/ ... 2))) 32)) (insert (format "%s\n\n" title))))) spacemacs-buffer//insert-image-banner("/home/weber/.emacs.d/core/banners/img/spacemacs.pn...") (if (image-type-available-p (intern (file-name-extension banner))) (spacemacs-buffer//insert-image-banner banner) (spacemacs-buffer//insert-ascii-banner-centered banner)) (progn (spacemacs-buffer/message (format "Banner: %s" banner)) (if (image-type-available-p (intern (file-name-extension banner))) (spacemacs-buffer//insert-image-banner banner) (spacemacs-buffer//insert-ascii-banner-centered banner))) (if banner (progn (spacemacs-buffer/message (format "Banner: %s" banner)) (if (image-type-available-p (intern (file-name-extension banner))) (spacemacs-buffer//insert-image-banner banner) (spacemacs-buffer//insert-ascii-banner-centered banner)))) (let ((banner (spacemacs-buffer//choose-banner)) (buffer-read-only nil)) (if banner (progn (spacemacs-buffer/message (format "Banner: %s" banner)) (if (image-type-available-p (intern (file-name-extension banner))) (spacemacs-buffer//insert-image-banner banner) (spacemacs-buffer//insert-ascii-banner-centered banner)))) (spacemacs-buffer//insert-buttons) (spacemacs//redisplay)) spacemacs-buffer/insert-banner-and-buttons() (save-excursion (if (> (buffer-size) 0) (progn (set 'save-line (line-number-at-pos)) (let ((inhibit-read-only t)) (erase-buffer)))) (spacemacs-buffer/set-mode-line "") (if dotspacemacs-startup-buffer-show-version (spacemacs-buffer//insert-version) (let ((inhibit-read-only t)) (insert "\n"))) (spacemacs-buffer/insert-banner-and-buttons) (if (and (boundp 'spacemacs-initialized) spacemacs-initialized) (progn (spacemacs-buffer//notes-redisplay-current-note) (if dotspacemacs-startup-lists (progn (spacemacs-buffer/insert-startup-lists))) (spacemacs-buffer//insert-footer) (configuration-layer/display-summary emacs-start-time) (spacemacs-buffer/set-mode-line spacemacs--default-mode-line) (force-mode-line-update) (spacemacs-buffer-mode)))) (save-current-buffer (set-buffer (get-buffer-create spacemacs-buffer-name)) (page-break-lines-mode) (save-excursion (if (> (buffer-size) 0) (progn (set 'save-line (line-number-at-pos)) (let ((inhibit-read-only t)) (erase-buffer)))) (spacemacs-buffer/set-mode-line "") (if dotspacemacs-startup-buffer-show-version (spacemacs-buffer//insert-version) (let ((inhibit-read-only t)) (insert "\n"))) (spacemacs-buffer/insert-banner-and-buttons) (if (and (boundp 'spacemacs-initialized) spacemacs-initialized) (progn (spacemacs-buffer//notes-redisplay-current-note) (if dotspacemacs-startup-lists (progn (spacemacs-buffer/insert-startup-lists))) (spacemacs-buffer//insert-footer) (configuration-layer/display-summary emacs-start-time) (spacemacs-buffer/set-mode-line spacemacs--default-mode-line) (force-mode-line-update) (spacemacs-buffer-mode)))) (if save-line (progn (goto-char (point-min)) (forward-line (1- save-line)) (forward-to-indentation 0)) (spacemacs-buffer/goto-link-line))) (progn (setq spacemacs-buffer--window-width (if dotspacemacs-startup-buffer-responsive (window-width) 80) spacemacs-buffer--last-width spacemacs-buffer--window-width) (save-current-buffer (set-buffer (get-buffer-create spacemacs-buffer-name)) (page-break-lines-mode) (save-excursion (if (> (buffer-size) 0) (progn (set 'save-line (line-number-at-pos)) (let ((inhibit-read-only t)) (erase-buffer)))) (spacemacs-buffer/set-mode-line "") (if dotspacemacs-startup-buffer-show-version (spacemacs-buffer//insert-version) (let ((inhibit-read-only t)) (insert "\n"))) (spacemacs-buffer/insert-banner-and-buttons) (if (and (boundp 'spacemacs-initialized) spacemacs-initialized) (progn (spacemacs-buffer//notes-redisplay-current-note) (if dotspacemacs-startup-lists (progn (spacemacs-buffer/insert-startup-lists))) (spacemacs-buffer//insert-footer) (configuration-layer/display-summary emacs-start-time) (spacemacs-buffer/set-mode-line spacemacs--default-mode-line) (force-mode-line-update) (spacemacs-buffer-mode)))) (if save-line (progn (goto-char (point-min)) (forward-line (1- save-line)) (forward-to-indentation 0)) (spacemacs-buffer/goto-link-line))) (if current-prefix-arg (switch-to-buffer-other-window spacemacs-buffer-name) (switch-to-buffer spacemacs-buffer-name)) (spacemacs//redisplay)) (if (or (not (eq spacemacs-buffer--last-width (window-width))) (not buffer-exists) refresh) (progn (setq spacemacs-buffer--window-width (if dotspacemacs-startup-buffer-responsive (window-width) 80) spacemacs-buffer--last-width spacemacs-buffer--window-width) (save-current-buffer (set-buffer (get-buffer-create spacemacs-buffer-name)) (page-break-lines-mode) (save-excursion (if (> (buffer-size) 0) (progn (set 'save-line (line-number-at-pos)) (let (...) (erase-buffer)))) (spacemacs-buffer/set-mode-line "") (if dotspacemacs-startup-buffer-show-version (spacemacs-buffer//insert-version) (let ((inhibit-read-only t)) (insert "\n"))) (spacemacs-buffer/insert-banner-and-buttons) (if (and (boundp 'spacemacs-initialized) spacemacs-initialized) (progn (spacemacs-buffer//notes-redisplay-current-note) (if dotspacemacs-startup-lists (progn ...)) (spacemacs-buffer//insert-footer) (configuration-layer/display-summary emacs-start-time) (spacemacs-buffer/set-mode-line spacemacs--default-mode-line) (force-mode-line-update) (spacemacs-buffer-mode)))) (if save-line (progn (goto-char (point-min)) (forward-line (1- save-line)) (forward-to-indentation 0)) (spacemacs-buffer/goto-link-line))) (if current-prefix-arg (switch-to-buffer-other-window spacemacs-buffer-name) (switch-to-buffer spacemacs-buffer-name)) (spacemacs//redisplay))) (let ((buffer-exists (buffer-live-p (get-buffer spacemacs-buffer-name))) (save-line nil)) (if (not buffer-exists) (progn (setq spacemacs-buffer--note-widgets nil))) (if (or (not (eq spacemacs-buffer--last-width (window-width))) (not buffer-exists) refresh) (progn (setq spacemacs-buffer--window-width (if dotspacemacs-startup-buffer-responsive (window-width) 80) spacemacs-buffer--last-width spacemacs-buffer--window-width) (save-current-buffer (set-buffer (get-buffer-create spacemacs-buffer-name)) (page-break-lines-mode) (save-excursion (if (> (buffer-size) 0) (progn (set ... ...) (let ... ...))) (spacemacs-buffer/set-mode-line "") (if dotspacemacs-startup-buffer-show-version (spacemacs-buffer//insert-version) (let (...) (insert "\n"))) (spacemacs-buffer/insert-banner-and-buttons) (if (and (boundp ...) spacemacs-initialized) (progn (spacemacs-buffer//notes-redisplay-current-note) (if dotspacemacs-startup-lists ...) (spacemacs-buffer//insert-footer) (configuration-layer/display-summary emacs-start-time) (spacemacs-buffer/set-mode-line spacemacs--default-mode-line) (force-mode-line-update) (spacemacs-buffer-mode)))) (if save-line (progn (goto-char (point-min)) (forward-line (1- save-line)) (forward-to-indentation 0)) (spacemacs-buffer/goto-link-line))) (if current-prefix-arg (switch-to-buffer-other-window spacemacs-buffer-name) (switch-to-buffer spacemacs-buffer-name)) (spacemacs//redisplay)))) spacemacs-buffer/goto-buffer() spacemacs/init() (let ((file-name-handler-alist nil)) (require 'core-spacemacs) (spacemacs/dump-restore-load-path) (configuration-layer/load-lock-file) (spacemacs/init) (configuration-layer/stable-elpa-init) (configuration-layer/load) (spacemacs-buffer/display-startup-note) (spacemacs/setup-startup-hook) (spacemacs/dump-eval-delayed-functions) (if (and dotspacemacs-enable-server (not (spacemacs-is-dumping-p))) (progn (require 'server) (if dotspacemacs-server-socket-dir (progn (setq server-socket-dir dotspacemacs-server-socket-dir))) (if (server-running-p) nil (message "Starting a server...") (server-start))))) (if (not (version<= spacemacs-emacs-min-version emacs-version)) (error (concat "Your version of Emacs (%s) is too old. " "Spacemacs requires Emacs version %s or above.") emacs-version spacemacs-emacs-min-version) (let ((file-name-handler-alist nil)) (require 'core-spacemacs) (spacemacs/dump-restore-load-path) (configuration-layer/load-lock-file) (spacemacs/init) (configuration-layer/stable-elpa-init) (configuration-layer/load) (spacemacs-buffer/display-startup-note) (spacemacs/setup-startup-hook) (spacemacs/dump-eval-delayed-functions) (if (and dotspacemacs-enable-server (not (spacemacs-is-dumping-p))) (progn (require 'server) (if dotspacemacs-server-socket-dir (progn (setq server-socket-dir dotspacemacs-server-socket-dir))) (if (server-running-p) nil (message "Starting a server...") (server-start)))))) eval-buffer(#<buffer load> nil "/home/weber/.emacs.d/init.el" nil t) ; Reading at buffer position 3147 load-with-code-conversion("/home/weber/.emacs.d/init.el" "/home/weber/.emacs.d/init.el" t t) load("/home/weber/.emacs.d/init" noerror nomessage) startup--load-user-init-file(#f(compiled-function () #<bytecode 0xcc589e2652c5baa>) #f(compiled-function () #<bytecode -0x1f3c686ddc0cdc35>) t) command-line() normal-top-level()
Upstream is “won’t fix”
And the Spacemacs file
core/core-custom-settings.el
has a line contain "Local Variables:",
Couldn't we simply replace this by (concat "Local " "Variables:)
as a workaround?
Description :octocat:
On startup, warning message: "Local variables list is not properly terminated."
Starting Emacs with
--debug-init
shows:The file
last-emacs-version
has no line ending. If I add one, then save it, and restart Emacs, the warning message goes away.Reproduction guide :beetle:
Observed behaviour: :eyes: :broken_heart: Warning message appears: "Local variables list is not properly terminated"
Expected behaviour: :heart: :smile: No warning message.
System Info :computer:
Backtrace :paw_prints: