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

From: Stefan Monnier <[email-masked]>
Date: Fri, 13 Jun 2025 11:24:29 -0400

> We should start by agreeing that the capability of interrupting a
> running Lisp program is a real need.  Are we in agreement about that?
> If not, let's first hear the arguments why not.

It's a real need, but there's also a real need for some ELisp functions
to catch normal quits.  So we can't have "normal quits" as the universal
answer to "interrupting a running Lisp program".

What we have instead is that "normal quit" should work to interrupt any
well-behaved ELisp programs, plus it should also work to interrupt most
other ELisp programs (IOW it shouldn't be hard to write well-behaved
ELisp code), but there has always been and will always be cases where we
need an "emergency quit" to interrupt some ELisp programs (and that
feature has been missing in GUI builds for a while).

        Stefan

PS: BTW, since we're talking about uses of `inhibit-quit`, I just
    remembered that correctness reasons, `unbind_to` *should* run with
    `inhibit-quit` set.