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 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
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.