GNU bug report logs -
#57929
29.0.50; package-quickstart.elc incompatible with Emacs 28.2 due to defvar-1
Previous Next
To reply to this bug, email your comments to 57929 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
monnier <at> iro.umontreal.ca, bug-gnu-emacs <at> gnu.org
:
bug#57929
; Package
emacs
.
(Mon, 19 Sep 2022 09:57:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Stefan Kangas <stefankangas <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
monnier <at> iro.umontreal.ca, bug-gnu-emacs <at> gnu.org
.
(Mon, 19 Sep 2022 09:57:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
It seems like the package-quickstart.elc is now backwards-incompatible
since defvar-1 is missing.
I guess this is a known issue whenever we change things like this, but I
thought it was worth pointing out since it bit me. I had to delete
package-quickstart.elc to use Emacs 28 with packages.
Steps to reproduce:
0. mv ~/.emacs.d/elpa{,old}
[Using Emacs 29.0.50]
1. ${MASTER}/emacs -Q --batch --eval "(progn (package-initialize) \
(package-install 'yasnippet-snippets) \
(package-quickstart-refresh))"
[Using Emacs 28.2]
2. ${EMACS28}/emacs -Q --eval '(progn (toggle-debug-on-error) \
(package-initialize))'
Result:
Debugger entered--Lisp error: (void-function defvar-1)
defvar-1(yas-global-mode nil "Non-nil if Yas-Global mode is
enabled.\nSee the `ya...")
byte-code("\304\211\30\31\305\302\306\307\304!\206\17\0\n@!\"\210\310\311\312\313\314$\210\315\316\317\314#\210\320\316\321\322#\210\323\316\312\321#\210\310\316\312\324\314$\210..."
[load-file-name load-true-file-name load-path package-activated-list
"/home/skangas/.emacs.d/elpa/yasnippet-0.14.0/yasni..." add-to-list
directory-file-name file-name-directory autoload yas-minor-mode
"yasnippet" "Toggle YASnippet mode.\n\nWhen YASnippet mode is ena..."
t put yas-global-mode globalized-minor-mode defvar-1 nil "Non-nil if
Yas-Global mode is enabled.\nSee the `ya..." custom-autoload "Toggle
Yas minor mode in all buffers.\nWith prefix ..." snippet-mode "A mode
for editing yasnippets" register-definition-prefixes
("help-snippet-def" "snippet-mode-map" "yas") provide
yasnippet-autoloads
"/home/skangas/.emacs.d/elpa/yasnippet-snippets-1.0..."
yasnippet-snippets-initialize "yasnippet-snippets" "Load the
`yasnippet-snippets' snippets directory." eval-after-load yasnippet
#f(compiled-function () #<bytecode 0x1f4006430b51>)
("yasnippet-snippets-") yasnippet-snippets-autoloads delete-dups
append (yasnippet yasnippet-snippets)] 6)
load("~/.emacs.d/package-quickstart.elc" nil nomessage)
package-activate-all()
package-initialize()
(progn (toggle-debug-on-error) (package-initialize))
command-line-1(("--eval" "(progn (toggle-debug-on-error)
(package-initialize..."))
command-line()
normal-top-level()
In GNU Emacs 28.2.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version
3.24.24, cairo version 1.16.0)
of 2022-09-16 built on joffe
Repository revision: d04ba5ec73b15cb481859434e5dd1b91eb581803
Repository branch: emacs-28
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Debian GNU/Linux 11 (bullseye)
Configured using:
'configure --with-native-compilation'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB
Important settings:
value of $LC_COLLATE: C
value of $LC_CTYPE: sv_SE.UTF-8
value of $LC_TIME: C
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
Load-path shadows:
None found.
Features:
(shadow sort hashcash mail-extr emacsbug message rmc puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util rmail rmail-loaddefs auth-source eieio eieio-core
eieio-loaddefs password-cache json map text-property-search time-date
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils comp comp-cstr warnings subr-x rx cl-seq cl-macs cl-extra
help-mode seq byte-opt gv cl-loaddefs cl-lib bytecomp byte-compile cconv
iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process
native-compile emacs)
Memory information:
((conses 16 77702 7444)
(symbols 48 7876 1)
(strings 32 22191 3539)
(string-bytes 1 770393)
(vectors 16 17490)
(vector-slots 8 308076 13362)
(floats 8 29 38)
(intervals 56 204 0)
(buffers 992 11))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#57929
; Package
emacs
.
(Mon, 19 Sep 2022 12:40:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 57929 <at> debbugs.gnu.org (full text, mbox):
Stefan Kangas [2022-09-19 05:56:39] wrote:
> It seems like the package-quickstart.elc is now backwards-incompatible
> since defvar-1 is missing.
Yes, same old issue of compatibility for `.elc` files.
It would be good to improve our handling of such situations (for
`package-quickstart.elc` as well as for other compiled files such as
those in ELPA packages).
I can think of two ways to detect the problem:
- When loading the `.elc` file signals an error.
[ It might be a legitimate error, but we could catch it and ask the
user if we should try loading the non-compiled file instead. ]
- When the loaded file's version marker is "too large". The 4th byte of
`.elc` files holds the major version of the Emacs that compiled it
(except that 29.0.xx counts as 28, see comment in bytecomp.el:2390),
so we could easily use this evidence that the file was compiled by
a newer Emacs to skip the .`elc` file.
Once detected we could also delete the file, or recompile it, or suggest
doing one of those. Deleting could throw away a handy file.
And recompiling may generate an invalid `.elc` file if some of the
dependencies defining macros aren't loaded (or may fail if some of the
required dependencies aren't in `load-path`).
Stefan
This bug report was last modified 2 years and 65 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.