unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: David Engster <deng@randomsample.de>
Cc: gundaetiapo@gmail.com, 15045@debbugs.gnu.org, eric@siege-engine.com
Subject: bug#15045: Point jumps inappropriately around time of Semantic lexing
Date: Fri, 09 Aug 2013 21:31:27 +0300	[thread overview]
Message-ID: <83siyira0w.fsf@gnu.org> (raw)
In-Reply-To: <87pptmsv4z.fsf@engster.org>

> From: David Engster <deng@randomsample.de>
> Cc: gundaetiapo@gmail.com,  monnier@iro.umontreal.ca,  15045@debbugs.gnu.org,  eric@siege-engine.com
> Date: Fri, 09 Aug 2013 18:10:04 +0200
> 
> >> >> However, doing redisplay in timers is not nice.
> >> >
> >> > Why not?
> >> 
> >> Because doing redisplay is a user-visible side effect, and in general,
> >> timers shouldn't have those.
> >
> > How else can a timer such as that of display-time do its thing?  IOW,
> > when the purpose of a timer is to cause something to be displayed,
> > they have no alternative but to force redisplay.
> 
> As you know, Emacs does not have strict timers. If you say to Emacs: one
> minute from now, say 'foo', and Emacs happens to be busy one minute from
> now, nothing will happen until it waits again. So I wonder: with such a
> lenient definition of "timer", does the wait for the next redisplay
> really matter?

Emacs very seldom is busy for a long time, so in practice you will see
the 1-min timer do its thing pretty much on time.

> After which idle time does redisplay kick in anyway?

Redisplay doesn't count idle time to kick in, so there's no answer to
your question.  Redisplay is triggered by several reasons, one of them
being waiting for keyboard input, which you might call "being idle",
although that's not exactly accurate.

> As a sidenote: What "bunch of useful features" do you have in mind for
> non-idle timers that do redisplay? They shouldn't alter buffer content,
> so what can they do that would need immediate redisplay? Displaying some
> kind of progress/time indicator is pretty much the only thing I can come
> up with.

Any display-related feature, such as blinking something, displaying
something ion the mode line or header line, etc.  Altering a buffer
can be one of the effects, btw, e.g. in a feature that shows the list
of processes on a system and refreshes that list every second.

> > IOW, it's the caller of input-pending-p etc. that is the fault here,
> > not the timers that it inadvertently lets run.
> 
> Until yesterday, I was completely unaware that `accept-process-output'
> or `input-pending-p' could run timers that do redisplay, and I think I'm
> in good company. The doc-strings do not mention it, so there must be
> lots of third-party code which does not pay attention to this, so we
> should try that this bug triggers as little as possible.

I agree that the doc strings should make a prominent reference to this
issue.

> >> In fact, I just understood another bug in speck-mode (which is similar
> >> to flycheck). I sometimes had unwanted scrolls there, too, and I now saw
> >> that those also happen at every full minute while typing.
> >
> > Then there's the same bug there, that's all.
> 
> Yes. But it shows that this bug is easy to make, and it's hard to track
> down.

It is also very rare.





  reply	other threads:[~2013-08-09 18:31 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-07 17:59 bug#15045: Point jumps inappropriately around time of Semantic lexing Barry OReilly
2013-08-07 18:30 ` Stefan Monnier
2013-08-07 18:42   ` David Engster
2013-08-07 19:31     ` Barry OReilly
2013-08-07 19:44       ` Eli Zaretskii
2013-08-07 20:39         ` Barry OReilly
2013-08-08  2:41           ` Eli Zaretskii
2013-08-08 17:07             ` Barry OReilly
2013-08-08 17:46               ` Eli Zaretskii
2013-08-07 21:23       ` Stefan Monnier
2013-08-08 17:21     ` David Engster
2013-08-08 18:06       ` Stefan Monnier
2013-08-08 18:13         ` David Engster
2013-08-08 21:39         ` Eli Zaretskii
2013-08-08 22:51           ` Stefan Monnier
2013-08-09  7:56             ` Eli Zaretskii
2013-08-09 14:03               ` Stefan Monnier
2013-08-09 14:16                 ` Eli Zaretskii
2013-08-09 17:34                   ` Stefan Monnier
2013-08-09 18:23                     ` Eli Zaretskii
2013-08-08 20:03       ` Barry OReilly
2013-08-08 20:30         ` David Engster
2013-08-08 21:49           ` Eli Zaretskii
2013-08-09  5:36             ` David Engster
2013-08-09  7:53               ` Eli Zaretskii
2013-08-09 11:50                 ` Eric M. Ludlam
2013-08-09 13:31                   ` Eli Zaretskii
2013-08-09 14:04                   ` Stefan Monnier
2013-08-09 14:19                     ` Eli Zaretskii
2013-08-09 18:08                       ` Stefan Monnier
2013-08-09 18:38                         ` Eli Zaretskii
2013-08-09 18:41                           ` David Engster
2013-08-09 20:49                             ` Eli Zaretskii
2013-08-09 21:36                             ` Stefan Monnier
2013-08-10  9:42                               ` David Engster
2013-08-09 21:46                           ` Stefan Monnier
2013-08-09 16:10                 ` David Engster
2013-08-09 18:31                   ` Eli Zaretskii [this message]
2013-08-10  9:54                     ` David Engster
2013-08-10 10:22                       ` Eli Zaretskii
2013-08-10 18:06                         ` Barry OReilly
2013-10-14 19:32                           ` Barry OReilly
2013-10-14 19:51                             ` Eli Zaretskii
2013-10-15 13:42                               ` Stefan Monnier
2013-10-15 14:12                                 ` Barry OReilly
2013-10-15 16:28                                   ` Eli Zaretskii
2013-10-15 17:08                                     ` Barry OReilly
2013-10-15 18:48                                       ` Eli Zaretskii
2013-10-15 19:19                                         ` Barry OReilly
2013-10-16  2:57                                       ` Stefan Monnier
2013-10-16 14:57                                         ` Barry OReilly
2013-10-16 17:50                                           ` Stefan Monnier
2013-10-16 18:32                                             ` Barry OReilly
2013-10-17 15:03                                             ` Barry OReilly
2013-10-17 18:18                                               ` Stefan Monnier
2013-10-17 20:01                                                 ` Barry OReilly
2013-10-18  0:27                                                   ` Stefan Monnier
2013-10-18 14:03                                                     ` Barry OReilly
2013-10-25 19:15                                                       ` Barry OReilly
2013-11-14 18:21                                                         ` Barry OReilly
2013-11-16  4:14                                                           ` Stefan Monnier
2013-11-16  4:54                                                             ` Barry OReilly
2013-11-16 17:37                                                               ` Stefan Monnier
2013-11-16 20:33                                                                 ` Barry OReilly
2013-11-16 21:29                                                                   ` Stefan Monnier
2013-08-09 18:50                   ` Stefan Monnier
2013-08-09  9:12               ` martin rudalics
2013-08-09 16:27                 ` David Engster
2013-08-09 17:10                   ` martin rudalics
2013-08-09 18:51                   ` Stefan Monnier
2013-08-08 21:26         ` Stefan Monnier
2013-08-08 21:57           ` Eli Zaretskii
2013-08-08 22:50             ` Stefan Monnier
2013-08-09  7:54               ` Eli Zaretskii
2013-08-08 21:47         ` Eli Zaretskii
2013-08-09  3:26       ` Eric M. Ludlam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83siyira0w.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=15045@debbugs.gnu.org \
    --cc=deng@randomsample.de \
    --cc=eric@siege-engine.com \
    --cc=gundaetiapo@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).