bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#20445: excessive redisplay / echo area resizing during byte-compilat


From: martin rudalics
Subject: bug#20445: excessive redisplay / echo area resizing during byte-compilation
Date: Wed, 29 Apr 2015 09:11:33 +0200

> This is the problem: in order to "not emit a message" this code emits
> the message and then immediately hides it by emitting "the empty
> message" on top of it.
>
> Since `message' redisplays right away (rather than waiting for the next
> "idle" moment to perform redisplay, as is the case for normal buffer
> changes), this result in a lot of wasted work, and it won't truly do
> what was intended:
> - If your machine/display is slow enough, you will see it
> - If your system "prints" messages by speaking them out loud (e.g. with
>    emacspeak) you will hear them.
>
> Why not just do:
>
>       (when byte-compile--interactive
>         (apply #'message format args))
>
> ?

But if there are no errors this would not display a message at all with
Glenn's scenario.  IMHO `byte-compile--interactive' puts the cart before
the horse.  Rather, displaying messages should be the default and the
caller should be able to suppress them via a `byte-compile--no-message'
variable or something the like.  So I'd instead use

  (unless byte-compile--no-message
    (apply #'message format args)))

martin





reply via email to

[Prev in Thread] Current Thread [Next in Thread]