GNU bug report logs -
#78737
sit-for behavior changes when byte-compiled
Previous Next
Full log
View this message in rfc822 format
On June 13, 2025 7:46:41 AM PDT, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> 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.
Maybe we're talking past each other? I'm not proposing anything that automatically kills Emacs. I'm not sure what would have given you the impression we were talking about killing Emacs.
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.