GNU bug report logs -
#78737
sit-for behavior changes when byte-compiled
Previous Next
Full log
Message #194 received at 78737 <at> debbugs.gnu.org (full text, mbox):
> Date: Fri, 13 Jun 2025 04:49:21 -0700
> From: Daniel Colascione <dancol <at> dancol.org>
> CC: pipcet <at> protonmail.com, monnier <at> iro.umontreal.ca, 78737 <at> debbugs.gnu.org
>
>
>
> On June 13, 2025 4:36:42 AM PDT, Eli Zaretskii <eliz <at> gnu.org> wrote:
> >> From: Daniel Colascione <dancol <at> dancol.org>
> >> Cc: Pip Cet <pipcet <at> protonmail.com>, monnier <at> iro.umontreal.ca,
> >> 78737 <at> debbugs.gnu.org
> >> Date: Fri, 13 Jun 2025 00:53:38 -0700
> >>
> >> > If you are talking about a GUI session, then IME the 'emergency exit"
> >> > procedure isn't reliably working in that case, and I'm not sure the
> >> > implementation intends to support that. I always knew that it's only
> >> > reliably working on TTY frames.
> >> >
> >> > Or are you talking about the effect of the changes on the branch?
> >>
> >> FWIW, the purpose of my N-times-in-T-milliseconds-within-one-command
> >> formulation of emergency exit is to get the mechanism working reliably
> >> in all cases.
> >>
> >> I can definitely type 4-5 C-gs in a GUI Emacs (well, NS, but I recall
> >> PGTK being similar?) and not have Emacs quit. If I mash C-g, it
> >> sometimes does, and sometimes doesn't.
> >>
> >> Right now, the logic is this:
> >>
> >> {
> >> /* Request quit when it's safe. */
> >> int count = NILP (Vquit_flag) ? 1 : force_quit_count + 1;
> >> force_quit_count = count;
> >> if (count == 3)
> >> Vinhibit_quit = Qnil;
> >> Vquit_flag = Qt;
> >> }
> >>
> >> IOW, the first quit after clearing Vquit_flag resets the count to one.
> >> Maybe that's why it isn't working reliably right now. If we reformulate
> >> this mechanism not in terms of count == 3 (which is fiddly for all sorts
> >> of reasons, since Vquit_flag can get reset) but in terms of the UX
> >> directly --- N recent quits in T time in a single command --- we make
> >> the whole thing more reliable.
> >>
> >> If you set T=infinity and N=3, you get the current force quit UX (modulo
> >> my upgrade-before-disabling-inhibit-quit thing), just more reliably, and
> >> you can break out of arbitrary Lisp code.
> >
> >I suggest to leave the emergency exit feature alone for now, and focus
> >on the interruptibility of Lisp programs.
>
> That *is* the interruptabiltity of Lisp programs.l
No, not in my book. A Lisp program should be interruptible without
killing the Emacs session. "Emergency exit", OTOH, kills the Emacs
session.
So we should discuss these two features separately.
This bug report was last modified 4 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.