GNU bug report logs - #80172
31.0.50; package-quickstart-refresh miscompiled since package-activate.el extraction

Previous Next

Package: emacs;

Reported by: Daniel Mendler <mail <at> daniel-mendler.de>

Date: Sat, 10 Jan 2026 19:11:01 UTC

Severity: normal

Found in version 31.0.50

To reply to this bug, email your comments to 80172 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to monnier <at> iro.umontreal.ca, philipk <at> posteo.net, bug-gnu-emacs <at> gnu.org:
bug#80172; Package emacs. (Sat, 10 Jan 2026 19:11:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Daniel Mendler <mail <at> daniel-mendler.de>:
New bug report received and forwarded. Copy sent to monnier <at> iro.umontreal.ca, philipk <at> posteo.net, bug-gnu-emacs <at> gnu.org. (Sat, 10 Jan 2026 19:11:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Daniel Mendler <mail <at> daniel-mendler.de>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; package-quickstart-refresh miscompiled since
 package-activate.el extraction
Date: Sat, 10 Jan 2026 20:10:14 +0100
Hello,

since the extraction of package-activate.el the function
`package-quickstart-refresh' seems to be miscompiled.

As a result of the miscompilation the variable `Info-directory-list' is
not written to the package-quickstart.el file. The problem seems to be
that `Info-directory-list' is treated as lexically bound variable, while
it is actually dynamically bound.

I inspect the disassembly of `package-quickstart-refresh' by evaluating:

(require 'package)
(disassemble 'package-quickstart-refresh)

This is an excerpt - note the missing `Info-directory-list'.

...
13      dup
14      varbind   package--quickstart-dir
15      varbind   print-level
16      varbind   print-length
17      varbind   coding-system-for-write
18      varbind   package-activated-list
19      varbind   package--quickstart-pkgs
20      varref    package-alist
22:1    dup
...

In contrast, when I eavluate the following, the disassembly differs:

(require 'package)
(require 'info)
(defun package-quickstart-refresh () ;; The source of package-quickstart-refresh
   ...)
(byte-compile 'package-quickstart-refresh)
(disassemble 'package-quickstart-refresh)

...
12      dup
13      constant  ("")
14      constant  nil
15      varbind   package--quickstart-dir
16      varbind   Info-directory-list
17      varbind   print-level
18      varbind   print-length
19      varbind   coding-system-for-write
20      varbind   package-activated-list
21      varbind   package--quickstart-pkgs
23      varref    package-alist
25:1    dup
...

Thanks!

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.49, cairo version 1.18.4) of 2026-01-10
Windowing system distributor 'The X.Org Foundation', version 11.0.12101016
System Description: Debian GNU/Linux 13 (trixie)

Configured using:
 'configure --prefix=$HOME/.local/share/emacs
 --without-compress-install --with-tree-sitter --with-native-compilation
 --with-dbus --without-selinux --without-threads --disable-gc-mark-trace
 --without-gsettings --without-gpm --with-cairo --with-cairo-xcb
 --with-xinput2 --with-x-toolkit=gtk3 --without-toolkit-scroll-bars
 'CFLAGS=-O3 -mtune=native -march=native''

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LIBOTF LIBSYSTEMD
LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP
SOUND SQLITE3 TIFF TREE_SITTER WEBP X11 XDBE XIM XINERAMA XINPUT2 XPM
XRANDR GTK3 ZLIB




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#80172; Package emacs. (Sun, 11 Jan 2026 22:47:01 GMT) Full text and rfc822 format available.

Message #8 received at 80172 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Mendler <mail <at> daniel-mendler.de>
To: 80172 <at> debbugs.gnu.org
Subject: Re: bug#80172: Acknowledgement (31.0.50; package-quickstart-refresh
 miscompiled since package-activate.el extraction)
Date: Sun, 11 Jan 2026 23:46:04 +0100
[Message part 1 (text/plain, inline)]
The problem is fixed if we add a (defvar Info-directory-list) to
package.el:

[0001-package.el-Declare-Info-directory-list.patch (text/x-diff, inline)]
From e19825381134c0f46c0bc737eb7687f9423e6cea Mon Sep 17 00:00:00 2001
From: Daniel Mendler <mail <at> daniel-mendler.de>
Date: Sun, 11 Jan 2026 23:36:24 +0100
Subject: [PATCH] package.el: Declare Info-directory-list

* lisp/emacs-lisp/package.el (Info-directory-list): New variable
declaration.
---
 lisp/emacs-lisp/package.el | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index c928aeb0ed3..d64c47a12d1 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -4573,6 +4573,8 @@ package--quickstart-rel
       `(file-name-concat package--quickstart-dir ,(file-relative-name file package--quickstart-dir))
     file))
 
+(defvar Info-directory-list)
+
 (defun package-quickstart-refresh ()
   "(Re)Generate the `package-quickstart-file'."
   (interactive)
-- 
2.47.3

[Message part 3 (text/plain, inline)]
But I don't understand why the (devar Info-directory-list) in
package-activate.el is not already sufficient.

Daniel

This bug report was last modified today.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.