GNU bug report logs -
#72433
29.4; Inconsistent "Loading" message suppression for batch mode
Previous Next
Reported by: Derek Upham <derek_upham <at> mailfence.com>
Date: Sat, 3 Aug 2024 01:07:02 UTC
Severity: normal
Tags: notabug, wontfix
Found in version 29.4
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#72433: 29.4; Inconsistent "Loading" message suppression for batch mode
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 72433 <at> debbugs.gnu.org.
--
72433: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72433
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
> Date: Sat, 3 Aug 2024 18:08:02 +0200 (CEST)
> From: Derek Upham <derek_upham <at> mailfence.com>
> Cc: 72433 <at> debbugs.gnu.org
>
> Got it. Is it worth turning this into a code comment, before that second block?
>
> /* Support interactive users with extra progress messages,
> following minibuffer conventions. */
Done, and closing the bug.
[Message part 3 (message/rfc822, inline)]
The relevant function is "load" (a.k.a "Fload").
The relevant file is "src/lread.c".
This exists in the current emacs-30 branch HEAD commit 94fe5894d99.
The function "load" has two code blocks that display progress messages
when loading files. First:
if (NILP (nomessage) || force_load_messages)
{
if (is_module)
message_with_string ("Loading %s (module)...", file, 1);
else if (is_native_elisp)
message_with_string ("Loading %s (native compiled elisp)...", file, 1);
else if (!compiled)
message_with_string ("Loading %s (source)...", file, 1);
else if (newer)
message_with_string ("Loading %s (compiled; note, source file is newer)...",
file, 1);
else /* The typical case; compiled file newer than source file. */
message_with_string ("Loading %s...", file, 1);
}
Second:
if (!noninteractive && (NILP (nomessage) || force_load_messages))
{
if (is_module)
message_with_string ("Loading %s (module)...done", file, 1);
else if (is_native_elisp)
message_with_string ("Loading %s (native compiled elisp)...done", file, 1);
else if (!compiled)
message_with_string ("Loading %s (source)...done", file, 1);
else if (newer)
message_with_string ("Loading %s (compiled; note, source file is newer)...done",
file, 1);
else /* The typical case; compiled file newer than source file. */
message_with_string ("Loading %s...done", file, 1);
}
This pair follows the standard Emacs practice of an initial progress
message, a long activity, and then then the same message with "done" on
the end.
The second block's test skips the body if the "noninteractive" flag is
set. (The "-batch" command line argument sets that flag, in "main()".)
But the first block's test does not take "noninteractive" into account.
That means that batch mode produces loading "half-messages".
Loading /etc/emacs/site-start.d/00debian.el (source)...
Loading /etc/emacs/site-start.d/50autoconf.el (source)...
Loading /etc/emacs/site-start.d/50bbdb3.el (source)...
We probably want consistent non-display in batch mode, which we can get
by adding a similar "!noninteractive" test to the first progress block.
In GNU Emacs 29.4 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.42,
cairo version 1.18.0) of 2024-06-29, modified by Debian built on sbuild
Windowing system distributor 'The X.Org Foundation', version 11.0.12101011
System Description: Debian GNU/Linux trixie/sid
Configured using:
'configure --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/libexec
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-libsystemd --with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.4/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --without-gconf --with-mailutils
--with-native-compilation --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/libexec
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-libsystemd --with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.4/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --without-gconf --with-mailutils
--with-native-compilation --with-cairo --with-x=yes
--with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
-Werror=implicit-function-declaration
-ffile-prefix-map=/build/reproducible-path/emacs-29.4+1=. -fstack-protector-strong
-fstack-clash-protection -Wformat -Werror=format-security
-fcf-protection -Wall' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
LDFLAGS=-Wl,-z,relro'
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 SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2
XPM GTK3 ZLIB
--
Derek Upham
derek_upham <at> mailfence.com
This bug report was last modified 288 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.