GNU bug report logs - #59669
29.0.50; ;;;###foo-autoloads included in package's autoloads file

Previous Next

Package: emacs;

Reported by: Stefan Monnier <monnier <at> iro.umontreal.ca>

Date: Tue, 29 Nov 2022 04:32:02 UTC

Severity: normal

Found in version 29.0.50

To reply to this bug, email your comments to 59669 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 bug-gnu-emacs <at> gnu.org:
bug#59669; Package emacs. (Tue, 29 Nov 2022 04:32:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 29 Nov 2022 04:32:02 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.50; ;;;###foo-autoloads included in package's autoloads file
Date: Mon, 28 Nov 2022 23:30:50 -0500
Package: Emacs
Version: 29.0.50


The new handling of autoloads seems to have an unintended side effect:
When I install for example the `rudel` package from GNU ELPA, the
`rudel-autoloads.el` file created in
~/.emacs.d/elpa/rudel-0.3.2/rudel-autoloads.el
includes things like:

    ;;; Generated autoloads from rudel-backend.el
    
    (eieio-defclass-autoload 'rudel-backend-factory 'nil "\
    rudel-backend" "Factory class that holds an object for each known backend\ncategory. Objects manage backend implementation for one backend\ncategory each.")
    (defmacro rudel--with-memoization (place &rest code) (declare (indent 1) (debug t)) (gv-letplace (getter setter) place `(or ,getter ,(macroexp-let2 nil val (macroexp-progn code) `(progn ,(funcall setter val) ,val)))))
    (cl-defmethod rudel-get-factory ((this (subclass rudel-backend-factory)) category) "\
    Return the factory responsible for CATEGORY.
    If there is no responsible factory, create one and return it." (rudel--with-memoization (gethash category (eieio-oref-default this 'factories)) (make-instance 'rudel-backend-factory)))

but if you look at `rudel-backends.el` you'll see that this comes from:
things like:

    ;;;###rudel-autoload
    (progn
    (defmacro rudel--with-memoization (place &rest code)
      (declare (indent 1) (debug t))
      (gv-letplace (getter setter) place
        `(or ,getter
             ,(macroexp-let2 nil val (macroexp-progn code)
                `(progn
                   ,(funcall setter val)
                   ,val))))))

Where those `;;;###rudel-autoload` are used by Rudel's GNUmakefile to
build a `rudel-loaddefs.el` file (included in the tarball) but are not
supposed to make their way to `rudel-autoloads.el`.

The effect is that startup is slowed down and the Emacs sessions are
unnecessarily bloated because even if you don't use Rudel, the mere fact
of having it installed will now cause Emacs to load several packages
at startup.

I thought the new code would actually autogenerate the
`rudel-loaddefs.el` file, which would be perfect for Rudel.


        Stefan


 In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.16.0, Xaw3d scroll bars) of 2022-11-23 built on pastel
Repository revision: dad88321e5226dd2a7108927677b11bece234670
Repository branch: work
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Debian GNU/Linux 11 (bullseye)

Configured using:
 'configure -C --enable-checking --enable-check-lisp-object-type --with-modules --with-cairo --with-tiff=ifavailable
 'CFLAGS=-Wall -g3 -Og -Wno-pointer-sign'
 PKG_CONFIG_PATH=/home/monnier/lib/pkgconfig'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG SECCOMP SOUND
THREADS TOOLKIT_SCROLL_BARS WEBP X11 XAW3D XDBE XIM XINPUT2 XPM LUCID
ZLIB

Important settings:
  value of $LANG: fr_CH.UTF-8
  locale-coding-system: utf-8-unix

Major mode: InactiveMinibuffer

Minor modes in effect:
  shell-dirtrack-mode: t
  server-mode: t
  electric-pair-mode: t
  global-reveal-mode: t
  reveal-mode: t
  auto-insert-mode: t
  savehist-mode: t
  minibuffer-electric-default-mode: t
  global-compact-docstrings-mode: t
  url-handler-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/monnier/src/emacs/nongnu/packages/org-contrib/org-contrib-autoloads hides /home/monnier/src/emacs/nongnu/packages/org-contrib/lisp/org-contrib-autoloads
/home/monnier/src/emacs/nongnu/packages/php-mode/php-mode-autoloads hides /home/monnier/src/emacs/nongnu/packages/php-mode/lisp/php-mode-autoloads
/home/monnier/src/emacs/nongnu/packages/org-contrib/lisp/ob-arduino hides /home/monnier/src/emacs/nongnu/packages/arduino-mode/ob-arduino
/home/monnier/src/emacs/nongnu/packages/stylus-mode/jade-mode hides /home/monnier/src/emacs/nongnu/packages/jade-mode/jade-mode
/home/monnier/src/emacs/nongnu/packages/stylus-mode/sws-mode hides /home/monnier/src/emacs/nongnu/packages/jade-mode/sws-mode
/home/monnier/src/emacs/nongnu/packages/stylus-mode/stylus-mode hides /home/monnier/src/emacs/nongnu/packages/jade-mode/stylus-mode
/home/monnier/src/emacs/nongnu/packages/magit/magit-autoloads hides /home/monnier/src/emacs/nongnu/packages/magit/lisp/magit-autoloads
/home/monnier/src/emacs/nongnu/packages/magit/git-commit-autoloads hides /home/monnier/src/emacs/nongnu/packages/magit/lisp/git-commit-autoloads
/home/monnier/src/emacs/nongnu/packages/magit/magit-pkg hides /home/monnier/src/emacs/nongnu/packages/magit/lisp/magit-pkg
/home/monnier/src/emacs/nongnu/packages/magit/magit-section-autoloads hides /home/monnier/src/emacs/nongnu/packages/magit/lisp/magit-section-autoloads
/home/monnier/src/emacs/nongnu/packages/magit/git-commit-pkg hides /home/monnier/src/emacs/nongnu/packages/magit/lisp/git-commit-pkg
/home/monnier/src/emacs/nongnu/packages/magit/magit-section-pkg hides /home/monnier/src/emacs/nongnu/packages/magit/lisp/magit-section-pkg
/home/monnier/src/emacs/nongnu/packages/pdf-tools/pdf-tools-autoloads hides /home/monnier/src/emacs/nongnu/packages/pdf-tools/lisp/pdf-tools-autoloads
/home/monnier/src/emacs/nongnu/packages/geiser-kawa/geiser-kawa-autoloads hides /home/monnier/src/emacs/nongnu/packages/geiser-kawa/elisp/geiser-kawa-autoloads
/home/monnier/src/emacs/nongnu/packages/with-editor/with-editor-autoloads hides /home/monnier/src/emacs/nongnu/packages/with-editor/lisp/with-editor-autoloads
/home/monnier/src/emacs/nongnu/packages/geiser/geiser-autoloads hides /home/monnier/src/emacs/nongnu/packages/geiser/elisp/geiser-autoloads
/home/monnier/src/emacs/nongnu/packages/subed/subed-autoloads hides /home/monnier/src/emacs/nongnu/packages/subed/subed/subed-autoloads
/home/monnier/src/emacs/elpa/packages/bbdb/bbdb-autoloads hides /home/monnier/src/emacs/elpa/packages/bbdb/lisp/bbdb-autoloads
/home/monnier/src/emacs/nongnu/packages/org-contrib/lisp/org-notify hides /home/monnier/src/emacs/elpa/packages/org-notify/org-notify
/home/monnier/src/emacs/elpa/packages/srht/srht-autoloads hides /home/monnier/src/emacs/elpa/packages/srht/lisp/srht-autoloads
/home/monnier/src/emacs/elpa/packages/transient/transient-autoloads hides /home/monnier/src/emacs/elpa/packages/transient/lisp/transient-autoloads
/home/monnier/src/emacs/nongnu/packages/paredit/test hides /home/monnier/src/emacs/elpa/packages/num3-mode/test
/home/monnier/src/emacs/elpa/packages/gpr-query/gpr-query hides /home/monnier/src/emacs/elpa/packages/ada-mode/gpr-query
/home/monnier/src/emacs/elpa/packages/gpr-query/prj hides /home/monnier/src/emacs/elpa/packages/ada-mode/prj
/home/monnier/src/emacs/nongnu/packages/org-contrib/lisp/org-contacts hides /home/monnier/src/emacs/elpa/packages/org-contacts/org-contacts
/home/monnier/src/emacs/elpa/packages/taxy-magit-section/taxy-magit-section hides /home/monnier/src/emacs/elpa/packages/taxy/taxy-magit-section
/home/monnier/src/emacs/nongnu/packages/forth-mode/build hides /home/monnier/src/emacs/elpa/packages/lentic/build
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/realgud-trepan-ni/cask-install
/home/monnier/src/emacs/nongnu/packages/mentor/url-scgi hides /home/monnier/src/emacs/elpa/packages/url-scgi/url-scgi
/home/monnier/src/emacs/elpa/packages/ada-mode/gpr-mode hides /home/monnier/src/emacs/elpa/packages/gpr-mode/gpr-mode
/home/monnier/src/emacs/elpa/packages/ada-mode/gpr-skel hides /home/monnier/src/emacs/elpa/packages/gpr-mode/gpr-skel
/home/monnier/src/emacs/elpa/packages/ada-mode/gpr-process hides /home/monnier/src/emacs/elpa/packages/gpr-mode/gpr-process
/home/monnier/src/emacs/elpa/packages/ada-mode/gpr-indent-user-options hides /home/monnier/src/emacs/elpa/packages/gpr-mode/gpr-indent-user-options
/home/monnier/src/emacs/elpa/packages/ada-mode/gnat-core hides /home/monnier/src/emacs/elpa/packages/wisi/gnat-core
/home/monnier/src/emacs/nongnu/packages/paredit/test hides /home/monnier/src/emacs/elpa/packages/easy-kill/test
/home/monnier/src/emacs/elpa/packages/use-package/use-package-tests hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-tests
/home/monnier/src/emacs/elpa/packages/use-package/use-package-delight hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-delight
/home/monnier/src/emacs/elpa/packages/use-package/use-package-diminish hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-diminish
/home/monnier/src/emacs/elpa/packages/use-package/bind-chord hides /home/monnier/src/emacs/elpa/packages/bind-key/bind-chord
/home/monnier/src/emacs/elpa/packages/use-package/use-package-lint hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-lint
/home/monnier/src/emacs/elpa/packages/use-package/use-package-core hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-core
/home/monnier/src/emacs/elpa/packages/use-package/use-package-ensure hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-ensure
/home/monnier/src/emacs/elpa/packages/use-package/use-package-chords hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-chords
/home/monnier/src/emacs/elpa/packages/use-package/bind-key hides /home/monnier/src/emacs/elpa/packages/bind-key/bind-key
/home/monnier/src/emacs/elpa/packages/use-package/use-package-chords-tests hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-chords-tests
/home/monnier/src/emacs/elpa/packages/use-package/use-package-jump hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-jump
/home/monnier/src/emacs/elpa/packages/use-package/use-package hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package
/home/monnier/src/emacs/elpa/packages/use-package/use-package-bind-key hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-bind-key
/home/monnier/src/emacs/elpa/packages/use-package/use-package-ensure-system-package hides /home/monnier/src/emacs/elpa/packages/bind-key/use-package-ensure-system-package
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/realgud/cask-install
/home/monnier/src/emacs/elpa/packages/hydra/hydra-test hides /home/monnier/src/emacs/elpa/packages/lv/hydra-test
/home/monnier/src/emacs/elpa/packages/hydra/hydra hides /home/monnier/src/emacs/elpa/packages/lv/hydra
/home/monnier/src/emacs/elpa/packages/hydra/lv hides /home/monnier/src/emacs/elpa/packages/lv/lv
/home/monnier/src/emacs/elpa/packages/hydra/hydra-ox hides /home/monnier/src/emacs/elpa/packages/lv/hydra-ox
/home/monnier/src/emacs/elpa/packages/hydra/hydra-examples hides /home/monnier/src/emacs/elpa/packages/lv/hydra-examples
/home/monnier/src/emacs/elpa/packages/embark-consult/embark-consult hides /home/monnier/src/emacs/elpa/packages/embark/embark-consult
/home/monnier/src/emacs/elpa/packages/embark-consult/embark hides /home/monnier/src/emacs/elpa/packages/embark/embark
/home/monnier/src/emacs/elpa/packages/embark-consult/avy-embark-collect hides /home/monnier/src/emacs/elpa/packages/embark/avy-embark-collect
/home/monnier/src/emacs/elpa/packages/embark-consult/embark-org hides /home/monnier/src/emacs/elpa/packages/embark/embark-org
/home/monnier/src/emacs/elpa/packages/ess/ess-autoloads hides /home/monnier/src/emacs/elpa/packages/ess/lisp/ess-autoloads
/home/monnier/src/emacs/elpa/packages/transient/lisp/transient hides /home/monnier/src/emacs/work/lisp/transient
/home/monnier/src/emacs/elpa/packages/eglot/eglot hides /home/monnier/src/emacs/work/lisp/progmodes/eglot
/home/monnier/src/emacs/elpa/packages/csharp-mode/csharp-mode hides /home/monnier/src/emacs/work/lisp/progmodes/csharp-mode
/home/monnier/src/emacs/nongnu/packages/lua-mode/lua-mode hides /home/monnier/src/emacs/work/lisp/progmodes/lua-mode
/home/monnier/src/emacs/nongnu/packages/org-contrib/lisp/ob-julia hides /home/monnier/src/emacs/work/lisp/org/ob-julia
/home/monnier/src/emacs/nongnu/packages/org-contrib/lisp/ol-man hides /home/monnier/src/emacs/work/lisp/org/ol-man
/home/monnier/src/emacs/nongnu/packages/org-contrib/lisp/ox-koma-letter hides /home/monnier/src/emacs/work/lisp/org/ox-koma-letter
/home/monnier/src/emacs/elpa/packages/cl-generic/cl-generic hides /home/monnier/src/emacs/work/lisp/emacs-lisp/cl-generic
/home/monnier/.emacs.d/elpa/hyperbole-8.0.0/set hides /home/monnier/src/emacs/work/lisp/emacs-lisp/set
/home/monnier/src/emacs/elpa/packages/nadvice/nadvice hides /home/monnier/src/emacs/work/lisp/emacs-lisp/nadvice
/home/monnier/src/emacs/elpa/packages/seq/seq hides /home/monnier/src/emacs/work/lisp/emacs-lisp/seq
/home/monnier/src/emacs/elpa/packages/cl-lib/cl-lib hides /home/monnier/src/emacs/work/lisp/emacs-lisp/cl-lib
/home/monnier/src/emacs/work/lisp/keymap hides /home/monnier/src/emacs/work/lisp/emacs-lisp/keymap
/home/monnier/src/emacs/elpa/packages/landmark/landmark hides /home/monnier/src/emacs/work/lisp/obsolete/landmark
/home/monnier/src/emacs/elpa/packages/crisp/crisp hides /home/monnier/src/emacs/work/lisp/obsolete/crisp

Features:
(shadow sort mail-extr emacsbug wgrep grep dabbrev cus-start cus-load
buttercup buttercup-compat vc-backup shortdoc slime-tests ert ewoc slime
drupal/emacs-drush drupal/etags etags fileloop xref arc-mode
archive-mode pp hyperspec macros kmacro reftex-parse sm-c-mode sh-script
make-mode latexenc dired-aux drupal/ispell drupal/eldoc
drupal/autoinsert drupal-mode cc-styles cc-align cc-engine cc-langs
cc-vars cc-defs sql dired-x files-x prolog smie align quail org-eldoc
org-element avl-tree generator ol-eww eww xdg url-queue mm-url ol-rmail
ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view
mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg
dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap
nnmail mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range
gnus-win gnus nnheader range wid-edit ol-docview ol-bibtex ol-bbdb
ol-w3m ol-doi org-link-doi autorevert imenu doc-view filenotify
jka-compr image-mode exif rect epa-file view cal-china lunar solar
cal-dst cal-bahai cal-islam cal-hebrew holidays holiday-loaddefs
cal-french org-journal org-crypt org ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list
org-faces org-entities org-version ob-emacs-lisp ob-core ob-eval
org-table oc-basic bibtex iso8601 org-keys oc org-loaddefs cal-iso
diary-lib diary-loaddefs mule-util cal-move cal-menu calendar
cal-loaddefs sieve-mode reftex-dcr reftex reftex-loaddefs reftex-vars
tex-mode shell drupal/pcomplete pcomplete cl-print debug backtrace
find-func log-edit message sendmail yank-media puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader add-log
log-view pcvs-util smerge-mode diff whitespace vc executable copyright
misearch multi-isearch vc-git diff-mode easy-mmode vc-dispatcher
filecache bug-reference raku-detect server cl-extra time-date
flymake-proc flymake project compile text-property-search comint
ansi-osc ansi-color noutline outline flyspell ispell checkdoc lisp-mnt
thingatpt elec-pair reveal autoinsert savehist minibuf-eldef disp-table
compact-docstrings corfu undo-fu-autoloads inkpot-theme-autoloads
keycast-autoloads rubocop-autoloads pcmpl-args-autoloads
undo-fu-session-autoloads flymake-popon-autoloads drupal-mode-autoloads
org-superstar-autoloads apache-mode-autoloads dart-mode-autoloads
lua-mode-autoloads evil-goggles-autoloads monokai-theme-autoloads
cyberpunk-theme-autoloads mpv-autoloads highlight-parentheses-autoloads
multiple-cursors-autoloads dockerfile-mode-autoloads
symbol-overlay-autoloads diff-ansi-autoloads free-keys-autoloads
evil-anzu-autoloads anzu-autoloads tuareg-autoloads caml-autoloads
jinja2-mode-autoloads pcre2el-autoloads paredit-autoloads
apropospriate-theme-autoloads shellcop-autoloads racket-mode-autoloads
pacmacs-autoloads gnuplot-autoloads stylus-mode-autoloads
spell-fu-autoloads nginx-mode-autoloads material-theme-autoloads
raku-mode-autoloads arduino-mode-autoloads ede/auto eieio-base
guru-mode-autoloads vc-fossil-autoloads jade-mode-autoloads
zig-mode-autoloads subatomic-theme-autoloads orgit-autoloads
evil-nerd-commenter-autoloads typescript-mode-autoloads
buttercup-autoloads evil-numbers-autoloads git-modes-autoloads
with-simulated-input-autoloads evil-indent-plus-autoloads
jabber-autoloads alect-themes-autoloads geiser-chicken-autoloads
sly-autoloads gruvbox-theme-autoloads vcomplete-autoloads
editorconfig-autoloads org-journal-autoloads elpher-autoloads
coffee-mode-autoloads emacsql-autoloads scala-mode-autoloads
ample-theme-autoloads htmlize-autoloads graphql-mode-autoloads
wgrep-autoloads markdown-mode-autoloads inf-clojure-autoloads
yasnippet-snippets-autoloads autothemer-autoloads moe-theme-autoloads
evil-visualstar-autoloads org-auto-tangle-autoloads
gnu-apl-mode-autoloads geiser-mit-autoloads zenburn-theme-autoloads
afternoon-theme-autoloads org-mime-autoloads xah-fly-keys-autoloads
geiser-stklos-autoloads proof-general-autoloads proof-site
proof-autoloads webpaste-autoloads evil-args-autoloads
org-present-autoloads org-drill-autoloads julia-mode-autoloads
corfu-terminal-autoloads cycle-at-point-autoloads gotham-theme-autoloads
tangotango-theme-autoloads telephone-line-autoloads
geiser-gambit-autoloads d-mode-autoloads ws-butler-autoloads
nasm-mode-autoloads spacemacs-theme-autoloads opam-switch-mode-autoloads
boxquote-autoloads org-tree-slide-autoloads projectile-autoloads
nix-mode-autoloads swift-mode-autoloads ujelly-theme-autoloads
geiser-gauche-autoloads swsw-autoloads idle-highlight-mode-autoloads
flymake-kondor-autoloads hl-block-mode-autoloads web-mode-autoloads
j-mode-autoloads inf-ruby-autoloads anti-zenburn-theme-autoloads
evil-exchange-autoloads iedit-autoloads haskell-mode-autoloads
geiser-guile-autoloads popon-autoloads evil-lisp-state-autoloads
evil-autoloads goto-chg-autoloads better-jumper-autoloads
annotate-autoloads doc-show-inline-autoloads tablist-autoloads
rainbow-delimiters-autoloads mentor-autoloads xml-rpc-autoloads
textile-mode-autoloads bison-mode-autoloads rfc-mode-autoloads
geiser-chibi-autoloads sass-mode-autoloads haml-mode-autoloads
systemd-autoloads rust-mode-autoloads elixir-mode-autoloads
cdlatex-autoloads haskell-tng-mode-autoloads geiser-kawa-autoloads
cider-autoloads parseedn-autoloads parseclj-autoloads
yaml-mode-autoloads evil-matchit-autoloads oblivion-theme-autoloads
recomplete-autoloads forth-mode-autoloads scroll-on-jump-autoloads
geiser-chez-autoloads sesman-autoloads geiser-racket-autoloads
geiser-impl help-fns radix-tree help-mode geiser-custom geiser-base ring
helm-autoloads popup-autoloads helm-core-autoloads
scroll-on-drag-autoloads toc-org-autoloads subed-autoloads
focus-autoloads edit-indirect-autoloads sweeprolog-autoloads
visual-fill-column-autoloads go-mode-autoloads dracula-theme-autoloads
solarized-theme-autoloads slime-autoloads macrostep-autoloads
kotlin-mode-autoloads smartparens-autoloads crux-autoloads
bind-map-autoloads clojure-mode-autoloads idris-mode-autoloads
prop-menu-autoloads scad-mode-autoloads ement-autoloads gnugo-autoloads
detached-autoloads wconf-autoloads json-mode-autoloads
ada-ref-man-autoloads memory-usage-autoloads rich-minority-autoloads
capf-autosuggest-autoloads rt-liberation-autoloads bbdb-autoloads
auto-correct-autoloads tramp-nspawn-autoloads
yasnippet-classic-snippets-autoloads elisp-benchmarks-autoloads
luwak-autoloads gnus-mock-autoloads fontaine-autoloads vdiff-autoloads
omn-mode-autoloads osc-autoloads pspp-mode-autoloads hcel-autoloads
mines-autoloads comint-mime-autoloads tiny-autoloads phps-mode-autoloads
sql-indent-autoloads ascii-art-to-unicode-autoloads agitate-autoloads
vc-hgcmd-autoloads wpuzzle-autoloads nameless-autoloads
gle-mode-autoloads crdt-autoloads perl-doc-autoloads
ahungry-theme-autoloads nano-modeline-autoloads dired-du-autoloads
adjust-parens-autoloads dired-git-info-autoloads polymode-autoloads
pyim-basedict-autoloads repology-autoloads ace-window-autoloads
easy-escape-autoloads org-notify-autoloads flymake-proselint-autoloads
yasnippet-autoloads org-translate-autoloads
highlight-escape-sequences-autoloads lmc-autoloads counsel-autoloads
landmark-autoloads diffview-autoloads validate-autoloads muse-autoloads
sql-smie-autoloads code-cells-autoloads jgraph-mode-autoloads
multishell-autoloads wcheck-mode-autoloads gcmh-autoloads
marginalia-autoloads dts-mode-autoloads ediprolog-autoloads
paced-autoloads exwm-autoloads devdocs-autoloads sokoban-autoloads
valign-autoloads rnc-mode-autoloads el-search-autoloads stream-autoloads
sml-mode-autoloads scanner-autoloads djvu-autoloads
expand-region-autoloads poke-mode-autoloads org-modern-autoloads
gnu-elpa-keyring-update-autoloads minimap-autoloads plz-autoloads
sql-beeline-autoloads cycle-quotes-autoloads lin-autoloads
buffer-expose-autoloads midi-kbd-autoloads isearch-mb-autoloads
eglot-autoloads f90-interface-browser-autoloads emacspeak-autoloads
xclip-autoloads brief-autoloads company-math-autoloads
dbus-codegen-autoloads csv-mode-autoloads chess-autoloads
svg-tag-mode-autoloads visual-filename-abbrev-autoloads mct-autoloads
rcirc-menu-autoloads beacon-autoloads org-remark-autoloads
aggressive-indent-autoloads ack-autoloads arbitools-autoloads
shelisp-autoloads gpr-query-autoloads ob-haxe-autoloads
ebdb-i18n-chn-autoloads vlf-autoloads enwc-autoloads
system-packages-autoloads docbook-autoloads notmuch-indicator-autoloads
num3-mode-autoloads notes-mode-autoloads trinary-autoloads
temp-buffer-browse-autoloads scroll-restore-autoloads
html5-schema-autoloads math-symbol-lists-autoloads poke-autoloads
gnu-elpa-autoloads gnu-elpa-features vcl-mode-autoloads
jarchive-autoloads guess-language-autoloads oauth2-autoloads
svg-clock-autoloads org-real-autoloads ol rx org-compat advice org-macs
format-spec inspector-autoloads treeview-autoloads
uni-confusables-autoloads register-list-autoloads excorporate-autoloads
url-http-ntlm-autoloads url-auth ada-mode-autoloads fsm-autoloads
pq-autoloads multi-mode-autoloads ftable-autoloads crisp-autoloads
captain-autoloads cursory-autoloads realgud-node-debug-autoloads
diminish-autoloads org-edna-autoloads aumix-mode-autoloads
parsec-autoloads coterm-autoloads uniquify-files-autoloads
cape-autoloads minibuffer-header-autoloads advice-patch-autoloads
org-contacts-autoloads sed-mode-autoloads poker-autoloads
wrap-search-autoloads sisu-mode-autoloads sketch-mode-autoloads
quarter-plane-autoloads markchars-autoloads setup-autoloads
engrave-faces-autoloads pinentry-autoloads sotlisp-autoloads
ggtags-autoloads gtags-mode-autoloads hiddenquote-autoloads
which-key-autoloads minibuffer-line-autoloads epoch-view-autoloads
disk-usage-autoloads rmsbolt-autoloads debbugs-autoloads
vc-got-autoloads ivy-hydra-autoloads hydra-autoloads blist-autoloads
ilist-autoloads timerfunctions-autoloads spinner-autoloads
smart-yank-autoloads transcribe-autoloads ssh-deploy-autoloads
path-iterator-autoloads all-autoloads nano-agenda-autoloads
electric-spacing-autoloads tramp-theme-autoloads relint-autoloads
slime-volleyball-autoloads ergoemacs-mode-autoloads on-screen-autoloads
nlinum-autoloads bug-hunter-autoloads org-transclusion-autoloads
nhexl-mode-autoloads auto-overlays-autoloads jumpc-autoloads
zones-autoloads shell-quasiquote-autoloads nano-theme-autoloads
realgud-lldb-autoloads boxy-headlines-autoloads zuul-autoloads
tempel-autoloads delight-autoloads darkroom-autoloads
cobol-mode-autoloads visual-fill-autoloads diff-hl-autoloads
ampc-autoloads ivy-posframe-autoloads pyim-autoloads xr-autoloads
frog-menu-autoloads taxy-magit-section-autoloads taxy-autoloads
smalltalk-mode-autoloads prefixed-core-autoloads rudel-autoloads
rudel-interactive rudel-backend warnings icons lentic-server-autoloads
lentic-autoloads logos-autoloads dismal-autoloads gited-autoloads
sql-cassandra-autoloads kind-icon-autoloads tomelr-autoloads
windower-autoloads parser-generator-autoloads javaimp-autoloads
triples-autoloads realgud-trepan-ni-autoloads async-autoloads finder-inf
orgalist-autoloads compact-docstrings-autoloads altcaps-autoloads
tmr-autoloads bluetooth-autoloads dash-autoloads peg-autoloads
rcirc-color-autoloads objed-autoloads flylisp-autoloads
dict-tree-autoloads undo-tree-autoloads xpm-autoloads denote-autoloads
realgud-ipdb-autoloads vcard-autoloads lex-autoloads cpio-mode-autoloads
vertico-posframe-autoloads kmb-autoloads gnome-c-style-autoloads
websocket-autoloads wisitoken-grammar-mode-autoloads mmm-mode-autoloads
topspace-autoloads realgud-jdb-autoloads rainbow-mode-autoloads
js2-mode-autoloads ioccur-autoloads osm-autoloads
boxy-headings-autoloads shell-command+-autoloads url-scgi-autoloads
rbit-autoloads vertico-autoloads company-statistics-autoloads
sm-c-mode-autoloads gpr-mode-autoloads gnat-compiler-autoloads
wisi-autoloads web-server-autoloads swiper-autoloads trie-autoloads
heap-autoloads tNFA-autoloads queue-autoloads vigenere-autoloads
package-fixes-autoloads toc-mode-autoloads ebdb-gnorb-autoloads cl-seq
gnorb-autoloads ivy-explorer-autoloads buffer-env-autoloads
vc-backup-autoloads satchel-autoloads xelb-autoloads
cl-generic-autoloads easy-kill-autoloads csharp-mode-autoloads
aircon-theme-autoloads loccur-autoloads aggressive-completion-autoloads
webfeeder-autoloads boxy-autoloads nftables-mode-autoloads
consult-recoll-autoloads bnf-mode-autoloads pabbrev-autoloads
leaf-autoloads adaptive-wrap-autoloads doc-toc-autoloads ztree-autoloads
use-package-autoloads bind-key-autoloads gpastel-autoloads
cpupower-autoloads ef-themes-autoloads transient-cycles-autoloads
vundo-autoloads pulsar-autoloads context-coloring-autoloads
caps-lock-autoloads persist-autoloads realgud-node-inspect-autoloads
realgud-autoloads test-simple-autoloads loc-changes-autoloads
eldoc-eval-autoloads psgml-autoloads frame-tabs-autoloads
myers-autoloads eev-autoloads names-autoloads kiwix-autoloads
request-autoloads greenbar-autoloads rec-mode-autoloads
shen-mode-autoloads greader-autoloads orderless-autoloads
graphql-autoloads load-relative-autoloads emms-autoloads
iterators-autoloads load-dir-autoloads clipboard-collector-autoloads
hook-helpers-autoloads other-frame-window-autoloads
company-ebdb-autoloads info ebdb-autoloads company-autoloads
assess-autoloads m-buffer-autoloads seq-autoloads ivy-avy-autoloads
avy-autoloads ivy-autoloads corfu-doc-autoloads corfu-autoloads
posframe-autoloads filladapt-autoloads svg-lib-autoloads metar-autoloads
cl-lib-autoloads lv-autoloads embark-consult-autoloads consult-autoloads
compat-autoloads nadvice-autoloads embark-autoloads windresize-autoloads
ess-autoloads ustar-withsub-autoloads package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source eieio eieio-core cl-macs gv pcase password-cache json subr-x
map byte-opt bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc
iso-transl tooltip cconv 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 nadvice seq simple cl-generic indonesian philippine
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 abbrev obarray button
loaddefs theme-loaddefs oclosure cl-preloaded faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 660170 428829) (symbols 48 39681 0) (strings 32 176938 29615)
 (string-bytes 1 6222634) (vectors 16 106517)
 (vector-slots 8 2535516 605998) (floats 8 1274 467)
 (intervals 56 45994 129) (buffers 984 83))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59669; Package emacs. (Sun, 25 Feb 2024 05:54:02 GMT) Full text and rfc822 format available.

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

From: Jim Porter <jporterbugs <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>, bug-gnu-emacs <at> gnu.org
Subject: Re: 29.0.50; ; ; ;
 ###foo-autoloads included in package's autoloads file
Date: Sat, 24 Feb 2024 21:53:02 -0800
On 11/28/2022 8:30 PM, Stefan Monnier wrote:
> Package: Emacs
> Version: 29.0.50
> 
> 
> The new handling of autoloads seems to have an unintended side effect:
> When I install for example the `rudel` package from GNU ELPA, the
> `rudel-autoloads.el` file created in
> ~/.emacs.d/elpa/rudel-0.3.2/rudel-autoloads.el
> includes things like:
> 
>      ;;; Generated autoloads from rudel-backend.el
>      
>      (eieio-defclass-autoload 'rudel-backend-factory 'nil "\
>      rudel-backend" "Factory class that holds an object for each known backend\ncategory. Objects manage backend implementation for one backend\ncategory each.")
>      (defmacro rudel--with-memoization (place &rest code) (declare (indent 1) (debug t)) (gv-letplace (getter setter) place `(or ,getter ,(macroexp-let2 nil val (macroexp-progn code) `(progn ,(funcall setter val) ,val)))))
>      (cl-defmethod rudel-get-factory ((this (subclass rudel-backend-factory)) category) "\
>      Return the factory responsible for CATEGORY.
>      If there is no responsible factory, create one and return it." (rudel--with-memoization (gethash category (eieio-oref-default this 'factories)) (make-instance 'rudel-backend-factory)))
> 
> but if you look at `rudel-backends.el` you'll see that this comes from:
> things like:
> 
>      ;;;###rudel-autoload
>      (progn
>      (defmacro rudel--with-memoization (place &rest code)
>        (declare (indent 1) (debug t))
>        (gv-letplace (getter setter) place
>          `(or ,getter
>               ,(macroexp-let2 nil val (macroexp-progn code)
>                  `(progn
>                     ,(funcall setter val)
>                     ,val))))))
> 
> Where those `;;;###rudel-autoload` are used by Rudel's GNUmakefile to
> build a `rudel-loaddefs.el` file (included in the tarball) but are not
> supposed to make their way to `rudel-autoloads.el`.

I think I may have fixed this in bug#65023. Could you try again with 
Emacs 29.2 (or later)?




This bug report was last modified 59 days ago.

Previous Next


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