Subject: bug#78737: sit-for behavior changes when byte-compiled

From: Daniel Colascione <[email-masked]>
Date: Fri, 13 Jun 2025 09:14:20 -0700

On June 13, 2025 9:03:21 AM PDT, Eli Zaretskii <[email-masked]> wrote:
>> From: Stefan Monnier <[email-masked]>
>> Cc: Daniel Colascione <[email-masked]>,  [email-masked],  Eli
>>  Zaretskii <[email-masked]>
>> Date: Fri, 13 Jun 2025 10:51:37 -0400
>> 
>> > Making
>> >
>> >     (while t (read-event))
>> >
>> > infloop without being able to quit is a bad idea.  We shouldn't do it.
>> 
>> I don't find this terribly problematic, If you think of what that loop
>> means it *is* a "please shoot me in the foot" kind of thing.
>> 
>> I agree that not being able to escape is a problem, but it's not the
>> only way to get into such trouble.  IOW I think it just gets us back to
>> the fact that we need an "emergency quit" for bugs (which `kill -USR2`
>> can sometimes provide, tho it's not a quit per-se).
>
>What I asked, and still didn't get an answer to, is at what point does

I believe I answered your question at length in <https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-06/msg00678.html> and specifically addressed the question above. I believe I'd addressed the subject several times before as well.

Could you please take a look at the proposal before declaring these questions unanswered?

>a program that calls read-event becomes interruptible by a single C-g,
>after the changes on the branch?  The above loop is not interruptible,
>but Daniel says that his proposal allows interrupting Lisp programs,
>just not silly programs such as the one above.  So if we start from
>the above silly program, and add to it some meaningful processing of
>the event read by read-event, at what point does such a program become
>interruptible by a single C-g?
>
>Later responses by Daniel seem to indicate that the answer is "never".
>It seems like his proposal is to change the behavior of C-g such that
>to interrupt a Lisp program the user will need two or more C-g presses
>(with the number customizable) during some predefine time interval.
>Is that understanding correct?

No, that is not correct, and I've said so many times. I'm not sure what I could say to increase clarity.

Outside contrived corner cases, the only difference users will notice is that quitting works more reliably.