bug#81643: 32.0.50; use-package :hook is not the same as :init add-hook
Lucas Jimenez via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <[email protected]>
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Message-ID | <[email protected]> |
Hi,
The manual says that :hook is the same as add-hook in :init
These tests show that it isn't the case.
I don't know if the manual is wrong or if it's a bug with use-package
I would prefer to be a bug, since I like to use all the use-package
attributes as much as possible.
All tests are done one by one with emacs -Q and restarting each time to
test each case. Both tests should end with the modus-vivendi loaded, but
that isn't the case proving that :hook is not the same as add-hook in :init
Test 1:
(use-package modus-themes
:no-require t
:init
(require-theme 'modus-themes)
(defun test-hook-attr ()
(load-theme 'modus-vivendi))
:hook (modus-themes-after-load-theme . test-hook-attr)
:config
(modus-themes-load-theme 'modus-operandi))
Test 2:
(use-package modus-themes
:no-require t
:init
(require-theme 'modus-themes)
(defun test-hook-attr ()
(load-theme 'modus-vivendi))
(add-hook 'modus-themes-after-load-theme-hook #'test-hook-attr)
:config
(modus-themes-load-theme 'modus-operandi))
In GNU Emacs 32.0.50 (build 1, x86_64-apple-darwin21.6.0, NS
appkit-2113.65 Version 12.7.6 (Build 21H1320)) of 2026-08-10 built on
mcbata
Windowing system distributor 'Apple', version 10.3.2113
System Description: macOS 12.7.6
Configured using:
'configure --prefix=/opt/local --disable-silent-rules --without-dbus
--without-gconf --without-libotf --without-m17n-flt --with-libgmp
--with-gnutls --with-xml2 --with-modules --with-sqlite3 --with-webp
--with-native-compilation=aot --infodir /opt/local/share/info/emacs
--disable-gc-mark-trace --with-ns --with-lcms2 --without-harfbuzz
--without-xaw3d --with-imagemagick --with-rsvg --with-xwidgets
--with-tree-sitter 'CFLAGS=-pipe -Os -Wno-attributes
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -arch
x86_64' 'CPPFLAGS=-isystem/opt/local/include
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk'
'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-no_pie
-Wl,-rpath /opt/local/lib/gcc15 -Wl,-rpath /opt/local/lib
-Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
-arch x86_64''
Configured features:
ACL GIF GLIB GMP GNUTLS IMAGEMAGICK JPEG LCMS2 LIBXML2 MODULES
NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS ZLIB
Important settings:
value of $LC_ALL: en_US.UTF-8
value of $LC_CTYPE: UTF-8
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
minibuffer-nonselected-mode: t
minibuffer-regexp-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug lisp-mnt message mailcap yank-media puny
dired dired-loaddefs rfc822 mml mml-sec password-cache epa epg rfc6068
epg-config gnus-util text-property-search mm-decode mm-bodies mm-encode
mailabbrev gmm-utils mailheader sendmail mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils modus-themes easy-mmode
derived pcase color cl-macs gv cl-extra help-mode cl-seq
use-package-core time-date subr-x comp-run bytecomp byte-compile
comp-common rx warnings icons cl-loaddefs cl-lib rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util
term/common-win 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 oclosure
cl-preloaded button loaddefs theme-loaddefs 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 xwidget-internal kqueue cocoa ns lcms2 multi-tty
make-network-process tty-child-frames native-compile emacs)
Memory information:
((conses 16 170948 10308) (symbols 48 9721 0) (strings 32 22459 2465)
(string-bytes 1 781124) (vectors 16 12335)
(vector-slots 8 169088 5024) (floats 8 167 11) (intervals 56 512 2)
(buffers 1064 10))