unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#57929: 29.0.50; package-quickstart.elc incompatible with Emacs 28.2 due to defvar-1
@ 2022-09-19  9:56 Stefan Kangas
  2022-09-19 12:38 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 2+ messages in thread
From: Stefan Kangas @ 2022-09-19  9:56 UTC (permalink / raw)
  To: 57929; +Cc: Stefan Monnier

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))





^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#57929: 29.0.50; package-quickstart.elc incompatible with Emacs 28.2 due to defvar-1
  2022-09-19  9:56 bug#57929: 29.0.50; package-quickstart.elc incompatible with Emacs 28.2 due to defvar-1 Stefan Kangas
@ 2022-09-19 12:38 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 2+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-19 12:38 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57929

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






^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-09-19 12:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-19  9:56 bug#57929: 29.0.50; package-quickstart.elc incompatible with Emacs 28.2 due to defvar-1 Stefan Kangas
2022-09-19 12:38 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).