From: sbaugh@catern.com
To: 69863@debbugs.gnu.org
Subject: bug#69863: 30.0.50; elisp-flymake-byte-compile hangs forever if buffer contains circular list
Date: Sun, 17 Mar 2024 18:03:10 +0000 (UTC) [thread overview]
Message-ID: <87frwosplu.fsf@earth.mail-host-address-is-not-set> (raw)
1. emacs -Q
2. In *scratch*, M-x flymake-mode
3. In *scratch*, insert this text:
#1=(1 . #1#)
4. M-x proced
5. Observe that there's a Emacs subprocess at 100% CPU which will never finish
The subprocess is running byte-compile-file, which when it sees a
circular list, runs forever at 100% CPU.
In turn this is because macroexpand-all has that behavior when passed a
circular list, e.g. (macroexpand-all '#1=(1 . #1#))
I'm not sure how this could be fixed, maybe elisp-flymake-byte-compile
could have a timeout on its subprocess? Or maybe byte-compile-file
could invoke read in such a way that it errors if it reads an infinite
structure? Or maybe macroexpand-all should detect infinite structures
and abort?
In GNU Emacs 30.0.50 (build 3, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.16.0, Xaw3d scroll bars) of 2024-03-17 built on earth
Repository revision: 39239982403f01a37d42d1cd8db0b2ed0b48b50c
Repository branch: HEAD
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Debian GNU/Linux 12 (bookworm)
Configured using:
'configure -C --with-x-toolkit=lucid'
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 XAW3D XDBE XIM
XINPUT2 XPM LUCID ZLIB
Important settings:
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-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 pp flymake project comp-run emacsbug message
mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec
password-cache epa derived epg rfc6068 epg-config gnus-util mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
cl-print debug backtrace cus-start cus-load find-func time-date subr-x
cl-extra shortdoc comp-common rx help-fns radix-tree help-mode warnings
icons compile text-property-search comint ansi-osc ansi-color ring
vc-git diff-mode easy-mmode vc-dispatcher cl-loaddefs cl-lib
bug-reference byte-opt gv bytecomp byte-compile thingatpt 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
touch-screen 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 dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)
Memory information:
((conses 16 136447 45220) (symbols 48 9286 0) (strings 32 35565 2968)
(string-bytes 1 984707) (vectors 16 20041)
(vector-slots 8 229862 11860) (floats 8 104 356)
(intervals 56 1154 69) (buffers 984 22))
reply other threads:[~2024-03-17 18:03 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87frwosplu.fsf@earth.mail-host-address-is-not-set \
--to=sbaugh@catern.com \
--cc=69863@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).