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

From: Eli Zaretskii <[email-masked]>
Date: Sat, 14 Jun 2025 09:25:28 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked],
>   [email-masked]
> Date: Fri, 13 Jun 2025 14:00:31 -0400
> 
> >>> What I asked, and still didn't get an answer to, is at what point does
> >>> a program that calls read-event becomes interruptible by a single C-g,
> >>> after the changes on the branch?
> >>It's interrupted if the `C-g` occurs while running the code rather than
> >>while sitting inside `read-event`.  For the tight `while t` loop, it's
> >>virtually never.
> > For clarity's sake, Stefan is describing what's in the branch right now and
> > I'm describing what will be on the branch before it's ready for merging.
> 
> I thought the difference was only in terms of "emergency quit", which
> I think is not what Eli referred to when he meant "interruptible".

No, this is a gross misunderstanding of what I was saying, and IMO of
the whole discussion.

By "interruptible" I mean the ability of interrupt a Lisp program with
a single C-g.  Currently, some Lisp programs cannot be interrupted
that way (or in any way, except by SIGUSR2 or something similar), but
most are.  Changes proposed by Daniel make this small subset of
programs a bit larger (AFAIU), so we are discussing whether that is a
problem, how significant is that problem, and how to remedy it.

"Emergency exit" (not "emergency quit", which never existed in Emacs)
is the feature whereby typing more than 1 C-g would pop the question
whether to exit Emacs and if so, whether to dump core.