* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
[not found] ` <E1ZudLX-0004XR-KP@vcs.savannah.gnu.org>
@ 2015-11-06 14:18 ` Stefan Monnier
2015-11-06 14:31 ` Eli Zaretskii
0 siblings, 1 reply; 21+ messages in thread
From: Stefan Monnier @ 2015-11-06 14:18 UTC (permalink / raw)
To: emacs-devel; +Cc: Eli Zaretskii
> + ;; If we are going to display the result in the echo area, force
> + ;; a more thorough redisplay, in case the sexp we evaluated
> + ;; changes something that should affect the display of the
> + ;; current window. Otherwise, Emacs might decide that only the
> + ;; echo area needs to be redisplayed.
> + (if (eq standard-output t)
> + (force-mode-line-update 'all)))))
What does this have to do with elisp--eval-last-sexp?
Some changes aren't immediately reflected on screen (e.g. toggling
a minor-mode variable) unless one explicitly requests a redisplay or
call force-mode-line-update.
That's always been the case for setting line-spacing. Sometimes you get
lucky, and after setting line-spacing the change is immediately
reflected on screen because you happen to make some other change at the
same time, but it's just wrong to rely on that.
So I think the above change is a bad idea. If we want to "fix it
right", then we should look for ways to automatically react to changes
to line-spacing, rather than doing (force-mode-line-update 'all) in
elisp--eval-last-sexp, which only catches this problem when it goes
through elisp--eval-last-sexp, and which causes unnecessary redisplay
work in the 99.9% of the cases where elisp--eval-last-sexp does
something else.
Stefan
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 14:18 ` [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e" Stefan Monnier
@ 2015-11-06 14:31 ` Eli Zaretskii
2015-11-06 14:53 ` Artur Malabarba
2015-11-06 15:30 ` Stefan Monnier
0 siblings, 2 replies; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-06 14:31 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Eli Zaretskii <eliz@gnu.org>
> Date: Fri, 06 Nov 2015 09:18:41 -0500
>
> > + ;; If we are going to display the result in the echo area, force
> > + ;; a more thorough redisplay, in case the sexp we evaluated
> > + ;; changes something that should affect the display of the
> > + ;; current window. Otherwise, Emacs might decide that only the
> > + ;; echo area needs to be redisplayed.
> > + (if (eq standard-output t)
> > + (force-mode-line-update 'all)))))
>
> What does this have to do with elisp--eval-last-sexp?
"C-x C-e"
> Some changes aren't immediately reflected on screen (e.g. toggling
> a minor-mode variable) unless one explicitly requests a redisplay or
> call force-mode-line-update.
It's IMO confusing and unexpected to have this when you evaluate that.
> That's always been the case for setting line-spacing.
No, it worked correctly before Emacs 24.4, according to my testing.
Probably because we used to trigger thorough redisplay "for other
reasons".
> So I think the above change is a bad idea. If we want to "fix it
> right", then we should look for ways to automatically react to changes
> to line-spacing, rather than doing (force-mode-line-update 'all) in
> elisp--eval-last-sexp, which only catches this problem when it goes
> through elisp--eval-last-sexp, and which causes unnecessary redisplay
> work in the 99.9% of the cases where elisp--eval-last-sexp does
> something else.
Why should we care about performance of "C-x C-e"?
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 14:31 ` Eli Zaretskii
@ 2015-11-06 14:53 ` Artur Malabarba
2015-11-06 15:30 ` Eli Zaretskii
2015-11-06 15:33 ` Stefan Monnier
2015-11-06 15:30 ` Stefan Monnier
1 sibling, 2 replies; 21+ messages in thread
From: Artur Malabarba @ 2015-11-06 14:53 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Stefan Monnier, emacs-devel
> "C-x C-e"
C-x C-e is not the only way to evaluate arbitrary lisp code, there are
plenty of others (eval-buffer, eval-region, eval-defun,
eval-expression, etc).
Sounds odd to single out eval-last-sexp here.
Wouldn't it be better to redisplay more aggressively? Maybe ensure
that the calling the `eval` function always causes a redisplay after
the command-loop?
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 14:31 ` Eli Zaretskii
2015-11-06 14:53 ` Artur Malabarba
@ 2015-11-06 15:30 ` Stefan Monnier
2015-11-06 15:47 ` Eli Zaretskii
1 sibling, 1 reply; 21+ messages in thread
From: Stefan Monnier @ 2015-11-06 15:30 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
>> That's always been the case for setting line-spacing.
> No, it worked correctly before Emacs 24.4, according to my testing.
Yes, but that was an accident. I think what you did is add an arbitrary
hack to paper over this, and I think it'd be better to do it either of:
- live with the apparent regression, telling users that they should
simply be happy to have enjoyed this accident in the past.
- fix it "right". E.g. add ad-hoc code to redisplay_internal that tries
to detect changes to this variable, or add a "write barrier" on that
variable, or deprecated the `line-spacing' variable in favor of
a `set-line-spacing' function (thus providing the write-barrier), ...
> Probably because we used to trigger thorough redisplay "for other
> reasons".
Exactly. People you did this and got the redisplay properly refreshed
were just lucky.
If you fix this case in the way you did, then I see no reason not to
go further down that road and just always redisplay all mode-lines, on
the off-chance that the user set line-spacing, or toggled a minor mode
variable without calling something like force-mode-line-update, set
a variable `toto' which happens to be used by one of the (:eval...)
nodes of the mode-line-format of some of the displayed buffers, ...
> Why should we care about performance of "C-x C-e"?
Why not? I just think your addition of force-mode-line-update will be
wasted work in 99.9% of the cases, and it will only cover very few of
the cases where a force-mode-line-update is needed.
Stefan
PS: I even several times found that the "lucky accident" which causes
the mode-line to be recomputed after things like M-: is a mis-feature
because it doesn't let me know when a call to force-mode-line-update
is needed.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 14:53 ` Artur Malabarba
@ 2015-11-06 15:30 ` Eli Zaretskii
2015-11-06 16:11 ` Artur Malabarba
2015-11-06 15:33 ` Stefan Monnier
1 sibling, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-06 15:30 UTC (permalink / raw)
To: bruce.connor.am; +Cc: monnier, emacs-devel
> Date: Fri, 6 Nov 2015 14:53:01 +0000
> From: Artur Malabarba <bruce.connor.am@gmail.com>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel <emacs-devel@gnu.org>
>
> > "C-x C-e"
>
> C-x C-e is not the only way to evaluate arbitrary lisp code, there are
> plenty of others (eval-buffer, eval-region, eval-defun,
> eval-expression, etc).
Does any of them cause the problem I tried to fix? IOW, if any of
these include the form (setq line-spacing 1.0), does evaluating it
fail to redraw the selected window with the new line-spacing?
> Sounds odd to single out eval-last-sexp here.
I singled it out because it was the only situation I saw where the
evaluation had no effect.
> Wouldn't it be better to redisplay more aggressively? Maybe ensure
> that the calling the `eval` function always causes a redisplay after
> the command-loop?
The problem here was not to call redisplay -- it is always entered
after Emacs finishes running the last command, in this case "C-x C-e".
The problem was to tell redisplay it should consider redrawing the
selected window even though no change happened in the buffer displayed
in that window.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 14:53 ` Artur Malabarba
2015-11-06 15:30 ` Eli Zaretskii
@ 2015-11-06 15:33 ` Stefan Monnier
1 sibling, 0 replies; 21+ messages in thread
From: Stefan Monnier @ 2015-11-06 15:33 UTC (permalink / raw)
To: Artur Malabarba; +Cc: Eli Zaretskii, emacs-devel
> Wouldn't it be better to redisplay more aggressively?
Please no. CPU power is far from free.
> Maybe ensure that the calling the `eval` function always causes
> a redisplay after the command-loop?
`eval' is called in *many* places, so this would be terrible.
Redisplaying all mode-lines can take a significant amount of time,
especially if you have a hundred windows or more (common use case for
me, at least).
Stefan
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 15:30 ` Stefan Monnier
@ 2015-11-06 15:47 ` Eli Zaretskii
2015-11-06 15:54 ` Eli Zaretskii
2015-11-06 21:47 ` Stefan Monnier
0 siblings, 2 replies; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-06 15:47 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org
> Date: Fri, 06 Nov 2015 10:30:51 -0500
>
> >> That's always been the case for setting line-spacing.
> > No, it worked correctly before Emacs 24.4, according to my testing.
>
> Yes, but that was an accident. I think what you did is add an arbitrary
> hack to paper over this, and I think it'd be better to do it either of:
> - live with the apparent regression, telling users that they should
> simply be happy to have enjoyed this accident in the past.
I don't like this alternative. Redisplay should be correct before it
is fast. Users rightfully expect changes to such variables to have
effect immediately, so not doing that looks like a bug. How do you
explain that, after evaluating (setq line-spacing 1.0) nothing
happens, but as soon as you type "M-x", the new setting takes effect?
> - fix it "right". E.g. add ad-hoc code to redisplay_internal that tries
> to detect changes to this variable, or add a "write barrier" on that
> variable, or deprecated the `line-spacing' variable in favor of
> a `set-line-spacing' function (thus providing the write-barrier), ...
This is not the only such variable, there are others. Adding ad-hoc
code for each one sounds _really_ hacky.
I cannot take the other possibilities seriously, and I don't think you
do, either.
> If you fix this case in the way you did, then I see no reason not to
> go further down that road and just always redisplay all mode-lines, on
> the off-chance that the user set line-spacing, or toggled a minor mode
> variable without calling something like force-mode-line-update, set
> a variable `toto' which happens to be used by one of the (:eval...)
> nodes of the mode-line-format of some of the displayed buffers, ...
I see no reason to go down that road. I don't think there are any
problems to fix there, and simply redisplaying all mode lines all the
time will have no effect except slowing down Emacs.
> > Why should we care about performance of "C-x C-e"?
>
> Why not?
Because it's not performance-critical, and cannot be, ever.
> I just think your addition of force-mode-line-update will be wasted
> work in 99.9% of the cases, and it will only cover very few of the
> cases where a force-mode-line-update is needed.
Please show at least a couple of other cases. Then maybe I will
change my mind.
> PS: I even several times found that the "lucky accident" which causes
> the mode-line to be recomputed after things like M-: is a mis-feature
> because it doesn't let me know when a call to force-mode-line-update
> is needed.
I see no way around that, as long as going to minibuffer causes
changes in display, like the menu bar, the tool bar, etc.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 15:47 ` Eli Zaretskii
@ 2015-11-06 15:54 ` Eli Zaretskii
2015-11-06 21:47 ` Stefan Monnier
1 sibling, 0 replies; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-06 15:54 UTC (permalink / raw)
To: monnier; +Cc: emacs-devel
> Date: Fri, 06 Nov 2015 17:47:49 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: emacs-devel@gnu.org
>
> > Yes, but that was an accident. I think what you did is add an arbitrary
> > hack to paper over this, and I think it'd be better to do it either of:
> > - live with the apparent regression, telling users that they should
> > simply be happy to have enjoyed this accident in the past.
>
> I don't like this alternative. Redisplay should be correct before it
> is fast. Users rightfully expect changes to such variables to have
> effect immediately, so not doing that looks like a bug. How do you
> explain that, after evaluating (setq line-spacing 1.0) nothing
> happens, but as soon as you type "M-x", the new setting takes effect?
In the last sentence, I meant to ask how you explain this to the users.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 15:30 ` Eli Zaretskii
@ 2015-11-06 16:11 ` Artur Malabarba
2015-11-06 16:30 ` Eli Zaretskii
0 siblings, 1 reply; 21+ messages in thread
From: Artur Malabarba @ 2015-11-06 16:11 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Stefan Monnier, emacs-devel
2015-11-06 15:30 GMT+00:00 Eli Zaretskii <eliz@gnu.org>:
>> Date: Fri, 6 Nov 2015 14:53:01 +0000
>> From: Artur Malabarba <bruce.connor.am@gmail.com>
>> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel <emacs-devel@gnu.org>
>>
>> > "C-x C-e"
>>
>> C-x C-e is not the only way to evaluate arbitrary lisp code, there are
>> plenty of others (,
>> eval-expression, etc).
>
> Does any of them cause the problem I tried to fix? IOW, if any of
> these include the form (setq line-spacing 1.0), does evaluating it
> fail to redraw the selected window with the new line-spacing?
eval-buffer, eval-region, and eval-defun all do (you have to invoke
them with keys, not with M-x).
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 16:11 ` Artur Malabarba
@ 2015-11-06 16:30 ` Eli Zaretskii
2015-11-06 19:25 ` Eli Zaretskii
0 siblings, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-06 16:30 UTC (permalink / raw)
To: bruce.connor.am; +Cc: monnier, emacs-devel
> Date: Fri, 6 Nov 2015 16:11:43 +0000
> From: Artur Malabarba <bruce.connor.am@gmail.com>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel <emacs-devel@gnu.org>
>
> 2015-11-06 15:30 GMT+00:00 Eli Zaretskii <eliz@gnu.org>:
> >> Date: Fri, 6 Nov 2015 14:53:01 +0000
> >> From: Artur Malabarba <bruce.connor.am@gmail.com>
> >> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel <emacs-devel@gnu.org>
> >>
> >> > "C-x C-e"
> >>
> >> C-x C-e is not the only way to evaluate arbitrary lisp code, there are
> >> plenty of others (,
> >> eval-expression, etc).
> >
> > Does any of them cause the problem I tried to fix? IOW, if any of
> > these include the form (setq line-spacing 1.0), does evaluating it
> > fail to redraw the selected window with the new line-spacing?
>
> eval-buffer, eval-region, and eval-defun all do (you have to invoke
> them with keys, not with M-x).
Thanks, I will think about a solution to at least some of these.
But in any case, "C-x C-e" is frequently used to test the effect of a
variable, so having at least that produce an immediate effect is IMO a
Good Thing.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 16:30 ` Eli Zaretskii
@ 2015-11-06 19:25 ` Eli Zaretskii
2015-11-07 23:41 ` Stefan Monnier
0 siblings, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-06 19:25 UTC (permalink / raw)
To: bruce.connor.am, monnier; +Cc: emacs-devel
> Date: Fri, 06 Nov 2015 18:30:52 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
>
> > Date: Fri, 6 Nov 2015 16:11:43 +0000
> > From: Artur Malabarba <bruce.connor.am@gmail.com>
> > Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel <emacs-devel@gnu.org>
> >
> > 2015-11-06 15:30 GMT+00:00 Eli Zaretskii <eliz@gnu.org>:
> > >> Date: Fri, 6 Nov 2015 14:53:01 +0000
> > >> From: Artur Malabarba <bruce.connor.am@gmail.com>
> > >> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel <emacs-devel@gnu.org>
> > >>
> > >> > "C-x C-e"
> > >>
> > >> C-x C-e is not the only way to evaluate arbitrary lisp code, there are
> > >> plenty of others (,
> > >> eval-expression, etc).
> > >
> > > Does any of them cause the problem I tried to fix? IOW, if any of
> > > these include the form (setq line-spacing 1.0), does evaluating it
> > > fail to redraw the selected window with the new line-spacing?
> >
> > eval-buffer, eval-region, and eval-defun all do (you have to invoke
> > them with keys, not with M-x).
>
> Thanks, I will think about a solution to at least some of these.
>
> But in any case, "C-x C-e" is frequently used to test the effect of a
> variable, so having at least that produce an immediate effect is IMO a
> Good Thing.
Do you like the changes in commit 19e09cf better?
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 15:47 ` Eli Zaretskii
2015-11-06 15:54 ` Eli Zaretskii
@ 2015-11-06 21:47 ` Stefan Monnier
2015-11-07 9:07 ` Eli Zaretskii
1 sibling, 1 reply; 21+ messages in thread
From: Stefan Monnier @ 2015-11-06 21:47 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
>> - live with the apparent regression, telling users that they should
>> simply be happy to have enjoyed this accident in the past.
> I don't like this alternative. Redisplay should be correct before it
> is fast.
We agree in general, of course. But it's always been the case that some
changes require a call to force-mode-line-update. Notice that
> Users rightfully expect changes to such variables to have
> effect immediately, so not doing that looks like a bug. How do you
> explain that, after evaluating (setq line-spacing 1.0) nothing
> happens, but as soon as you type "M-x", the new setting takes effect?
I explain it saying that this variable value is only taken into account
if something is redisplayed. And the user moves on very happy.
E.g. note how in bug#21835, the lack of redisplay is not a cause for
reporting a bug. It's just a minor surprise worthy of a "Note" in
passing to the actual problem of how the cursor is displayed.
If you don't like this answer, how 'bout I return the question:
How do you explain to the user that when he used C-x C-e the display
was immediately updated, but when I put that same code into his
hand-made interactive function, it stopped working and started to
only take effect after something like M-x?
I really can't see why we should hide this weakness of our
redisplay system in the case of C-x C-e. Either this weakness exists
and the Elisp coder will have to know about it sooner or later, or we
fix it for real.
> This is not the only such variable, there are others. Adding ad-hoc
> code for each one sounds _really_ hacky.
Agreed.
> I cannot take the other possibilities seriously, and I don't think you
> do, either.
A `set-line-spacing' function, no, but a write-barrier, yes.
We've already had discussions on emacs-devel to add such a generic
feature cheaply, even with patches submitted.
>> > Why should we care about performance of "C-x C-e"?
>> Why not?
> Because it's not performance-critical, and cannot be, ever.
Of course it can be performance critical in keyboard-macros.
>> I just think your addition of force-mode-line-update will be wasted
>> work in 99.9% of the cases, and it will only cover very few of the
>> cases where a force-mode-line-update is needed.
> Please show at least a couple of other cases.
"grep force-mode-line-update" shows it's still needed at tons of
other places. Adding it in C-x C-e won't help them.
Stefan
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 21:47 ` Stefan Monnier
@ 2015-11-07 9:07 ` Eli Zaretskii
0 siblings, 0 replies; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-07 9:07 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
> From: Stefan Monnier <monnier@IRO.UMontreal.CA>
> Cc: emacs-devel@gnu.org
> Date: Fri, 06 Nov 2015 16:47:58 -0500
>
> >> - live with the apparent regression, telling users that they should
> >> simply be happy to have enjoyed this accident in the past.
> > I don't like this alternative. Redisplay should be correct before it
> > is fast.
>
> We agree in general, of course. But it's always been the case that some
> changes require a call to force-mode-line-update. Notice that
>
> > Users rightfully expect changes to such variables to have
> > effect immediately, so not doing that looks like a bug. How do you
> > explain that, after evaluating (setq line-spacing 1.0) nothing
> > happens, but as soon as you type "M-x", the new setting takes effect?
>
> I explain it saying that this variable value is only taken into account
> if something is redisplayed. And the user moves on very happy.
Not this user. And so I don't want to explain this away like that.
> E.g. note how in bug#21835, the lack of redisplay is not a cause for
> reporting a bug. It's just a minor surprise worthy of a "Note" in
> passing to the actual problem of how the cursor is displayed.
True for the person who reported that bug. Not true for me. Any
change in display when you press M-x is a subtle redisplay bug that
needs to be fixed. It means some redisplay optimization was used
when it shouldn't have been.
> If you don't like this answer, how 'bout I return the question:
>
> How do you explain to the user that when he used C-x C-e the display
> was immediately updated, but when I put that same code into his
> hand-made interactive function, it stopped working and started to
> only take effect after something like M-x?
Well, I was bothered by that as well, so the follow-up commit fixed
that, I hope. Do you like it better?
> I really can't see why we should hide this weakness of our
> redisplay system in the case of C-x C-e. Either this weakness exists
> and the Elisp coder will have to know about it sooner or later, or we
> fix it for real.
I hope I've now fixed it for real.
> > This is not the only such variable, there are others. Adding ad-hoc
> > code for each one sounds _really_ hacky.
>
> Agreed.
The changes I made in 19e09cf are hopefully less hacky.
> > I cannot take the other possibilities seriously, and I don't think you
> > do, either.
>
> A `set-line-spacing' function, no, but a write-barrier, yes.
> We've already had discussions on emacs-devel to add such a generic
> feature cheaply, even with patches submitted.
Please point to those patches, I don't think I have a clear idea what
you allude to here.
> >> > Why should we care about performance of "C-x C-e"?
> >> Why not?
> > Because it's not performance-critical, and cannot be, ever.
>
> Of course it can be performance critical in keyboard-macros.
Redisplay happens only once after the macro finishes, no? Or did you
have some very specific macro in mind?
> >> I just think your addition of force-mode-line-update will be wasted
> >> work in 99.9% of the cases, and it will only cover very few of the
> >> cases where a force-mode-line-update is needed.
> > Please show at least a couple of other cases.
>
> "grep force-mode-line-update" shows it's still needed at tons of
> other places. Adding it in C-x C-e won't help them.
It wasn't supposed to help them. Or maybe I completely misunderstand
what you wanted to say here.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-06 19:25 ` Eli Zaretskii
@ 2015-11-07 23:41 ` Stefan Monnier
2015-11-08 3:36 ` Eli Zaretskii
0 siblings, 1 reply; 21+ messages in thread
From: Stefan Monnier @ 2015-11-07 23:41 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: bruce.connor.am, emacs-devel
> Do you like the changes in commit 19e09cf better?
The performance impact is a bit of an issue, but yes, I like it better.
Stefan
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-07 23:41 ` Stefan Monnier
@ 2015-11-08 3:36 ` Eli Zaretskii
2015-11-08 9:23 ` David Kastrup
2015-11-08 22:25 ` Stefan Monnier
0 siblings, 2 replies; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-08 3:36 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bruce.connor.am, emacs-devel
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: bruce.connor.am@gmail.com, emacs-devel@gnu.org
> Date: Sat, 07 Nov 2015 18:41:22 -0500
>
> > Do you like the changes in commit 19e09cf better?
>
> The performance impact is a bit of an issue
You mean, the 5% slow-down?
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-08 3:36 ` Eli Zaretskii
@ 2015-11-08 9:23 ` David Kastrup
2015-11-08 15:54 ` Eli Zaretskii
2015-11-08 15:55 ` Drew Adams
2015-11-08 22:25 ` Stefan Monnier
1 sibling, 2 replies; 21+ messages in thread
From: David Kastrup @ 2015-11-08 9:23 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Stefan Monnier, bruce.connor.am, emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Stefan Monnier <monnier@iro.umontreal.ca>
>> Cc: bruce.connor.am@gmail.com, emacs-devel@gnu.org
>> Date: Sat, 07 Nov 2015 18:41:22 -0500
>>
>> > Do you like the changes in commit 19e09cf better?
>>
>> The performance impact is a bit of an issue
>
> You mean, the 5% slow-down?
5% slowdown in overall operation for addressing a redisplay quirk seems
like a bad tradeoff. Redisplay quirks are a dime a dozen, after all.
--
David Kastrup
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-08 9:23 ` David Kastrup
@ 2015-11-08 15:54 ` Eli Zaretskii
2015-11-08 15:55 ` Drew Adams
1 sibling, 0 replies; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-08 15:54 UTC (permalink / raw)
To: David Kastrup; +Cc: monnier, bruce.connor.am, emacs-devel
> From: David Kastrup <dak@gnu.org>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, bruce.connor.am@gmail.com, emacs-devel@gnu.org
> Date: Sun, 08 Nov 2015 10:23:27 +0100
>
> 5% slowdown in overall operation for addressing a redisplay quirk seems
> like a bad tradeoff.
Accurate display is not a "quirk". A "real-time display editor"
shouldn't produce display that is out of sync with the internal state,
certainly not when Emacs is idle.
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-08 9:23 ` David Kastrup
2015-11-08 15:54 ` Eli Zaretskii
@ 2015-11-08 15:55 ` Drew Adams
2015-11-08 16:07 ` David Kastrup
1 sibling, 1 reply; 21+ messages in thread
From: Drew Adams @ 2015-11-08 15:55 UTC (permalink / raw)
To: David Kastrup, Eli Zaretskii; +Cc: Stefan Monnier, bruce.connor.am, emacs-devel
> 5% slowdown in overall operation for addressing a redisplay quirk seems
> like a bad tradeoff. Redisplay quirks are a dime a dozen, after all.
5% performance hit each
X 1 dozen
-----------------------
60% performance hit per dozen
;-)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-08 15:55 ` Drew Adams
@ 2015-11-08 16:07 ` David Kastrup
0 siblings, 0 replies; 21+ messages in thread
From: David Kastrup @ 2015-11-08 16:07 UTC (permalink / raw)
To: Drew Adams; +Cc: Eli Zaretskii, Stefan Monnier, bruce.connor.am, emacs-devel
Drew Adams <drew.adams@oracle.com> writes:
>> 5% slowdown in overall operation for addressing a redisplay quirk seems
>> like a bad tradeoff. Redisplay quirks are a dime a dozen, after all.
>
> 5% performance hit each
> X 1 dozen
> -----------------------
> 60% performance hit per dozen
It's more like a dime will buy you 100*(1.05^12 - 1)%, close to 80%.
Just for an automatic mode-line update. And it's not like the mode line
is not _documented_ to require a manual kick after changes.
--
David Kastrup
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-08 3:36 ` Eli Zaretskii
2015-11-08 9:23 ` David Kastrup
@ 2015-11-08 22:25 ` Stefan Monnier
2015-11-09 3:32 ` Eli Zaretskii
1 sibling, 1 reply; 21+ messages in thread
From: Stefan Monnier @ 2015-11-08 22:25 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: bruce.connor.am, emacs-devel
>> The performance impact is a bit of an issue
> You mean, the 5% slow-down?
Yes. I think it's acceptable only because I know it can be optimized
away by moving it into the CONSTANT_P branch.
Stefan
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e"
2015-11-08 22:25 ` Stefan Monnier
@ 2015-11-09 3:32 ` Eli Zaretskii
0 siblings, 0 replies; 21+ messages in thread
From: Eli Zaretskii @ 2015-11-09 3:32 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bruce.connor.am, emacs-devel
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: bruce.connor.am@gmail.com, emacs-devel@gnu.org
> Date: Sun, 08 Nov 2015 17:25:24 -0500
>
> >> The performance impact is a bit of an issue
> > You mean, the 5% slow-down?
>
> Yes. I think it's acceptable only because I know it can be optimized
> away by moving it into the CONSTANT_P branch.
I hope someone will implement CONSTANT_P, then.
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2015-11-09 3:32 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20151106093011.17282.48378@vcs.savannah.gnu.org>
[not found] ` <E1ZudLX-0004XR-KP@vcs.savannah.gnu.org>
2015-11-06 14:18 ` [Emacs-diffs] master 29c360e: Ensure redisplay after "C-x C-e" Stefan Monnier
2015-11-06 14:31 ` Eli Zaretskii
2015-11-06 14:53 ` Artur Malabarba
2015-11-06 15:30 ` Eli Zaretskii
2015-11-06 16:11 ` Artur Malabarba
2015-11-06 16:30 ` Eli Zaretskii
2015-11-06 19:25 ` Eli Zaretskii
2015-11-07 23:41 ` Stefan Monnier
2015-11-08 3:36 ` Eli Zaretskii
2015-11-08 9:23 ` David Kastrup
2015-11-08 15:54 ` Eli Zaretskii
2015-11-08 15:55 ` Drew Adams
2015-11-08 16:07 ` David Kastrup
2015-11-08 22:25 ` Stefan Monnier
2015-11-09 3:32 ` Eli Zaretskii
2015-11-06 15:33 ` Stefan Monnier
2015-11-06 15:30 ` Stefan Monnier
2015-11-06 15:47 ` Eli Zaretskii
2015-11-06 15:54 ` Eli Zaretskii
2015-11-06 21:47 ` Stefan Monnier
2015-11-07 9:07 ` Eli Zaretskii
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.