GNU bug report logs - #20445
excessive redisplay / echo area resizing during byte-compilation

Previous Next

Package: emacs;

Reported by: Glenn Morris <rgm <at> gnu.org>

Date: Mon, 27 Apr 2015 21:32:02 UTC

Severity: normal

Found in version 25.0.50

Done: Artur Malabarba <bruce.connor.am <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: martin rudalics <rudalics <at> gmx.at>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>,  Artur Malabarba <bruce.connor.am <at> gmail.com>
Cc: 20445 <at> debbugs.gnu.org
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




This bug report was last modified 10 years and 86 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.