all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
Subject: Re: bug-reference-prog-mode slows down CC Mode's scrolling by ~7%
Date: Fri, 3 Sep 2021 16:15:52 +0000	[thread overview]
Message-ID: <YTJKONTBpmP3CbYQ@ACM> (raw)
In-Reply-To: <83r1e5yk9c.fsf@gnu.org>

Hello, Eli.

On Fri, Sep 03, 2021 at 14:24:31 +0300, Eli Zaretskii wrote:
> > Date: Fri, 3 Sep 2021 10:47:41 +0000
> > Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
> > From: Alan Mackenzie <acm@muc.de>

> > > Bother: this is not future-proof, and certainly isn't scalable.  If we
> > > are changing the protocol, can we instead come up with a more scalable
> > > change, so that functions won't "fight" in the future who gets to be
> > > "the first"?

> > I think we need to be clear about the current situation versus my
> > proposal.  If there is only one element (typically
> > font-lock-fontify-region) on jit-lock-functions, nothing changes.  With
> > several elements:

> > Current situation: The region marked with 'fontified text properties is
> > the _smallest_ returned by the jit-lock-functions functions.  If such a
> > function returns nil (which is usual), that region becomes precisely
> > (BEG END), and we lose all the benefit of jit-lock-bounds.

> > Proposed mechanism: The region marked with 'fontified is that supplied
> > by the first j-l-f function, typically font-lock-fontify-region.  This
> > is an enhancement.

> > Note that it is difficult to use the jit-lock-bounds returned by a
> > subsequent function, if they exceed the bounds returned by the first
> > function.  To do this safely, we would have to re-run all the previous
> > jit-lock-functions on the newly enlarged region.  This would be clumsy,
> > and wouldn't fit in well with our current scheme.

> > As for "fighting" to be the first function in j-l-f, I don't think that
> > should be a problem.  We can document the new &optional parameter to
> > jit-lock-register (not yet implemented) to say "don't use this unless
> > you really know what you're doing".

> > What we have isn't scalable in the sense you mean, and I don't think it
> > can be made scalable without massive changes in the jit-lock mechanism,
> > which might well reverse the benefits of using jit-lock-bounds (the 7%
> > saving in font locking time in CC Mode (and surely other modes, too)).

> You basically say that you consider what I said not important enough
> to handle.

That's not at all what I meant to say.  I'm sorry that it came out like
that.

> The only "arguments" you bring up are that you disagree with my
> assessment.

No.  The matter we're discussing is somewhat complicated, and I think
we're seeing different aspects of it.  That's why I wrote out in detail
what I am seeing.  I don't yet see what you're seeing.

> I don't think those are useful arguments, because who said your vision
> of the future is more accurate than mine?  ....

Not me.  But I think winning back that 7% of fontification speed is worth
the effort.  I think we're still at the stage of exploring alternatives.
Stefan has suggested one or two.

-- 
Alan Mackenzie (Nuremberg, Germany).



  reply	other threads:[~2021-09-03 16:15 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-01 17:33 bug-reference-prog-mode slows down CC Mode's scrolling by ~7% Alan Mackenzie
2021-09-01 17:44 ` Eli Zaretskii
2021-09-01 17:55   ` Alan Mackenzie
2021-09-01 18:01     ` Eli Zaretskii
2021-09-01 18:20       ` Alan Mackenzie
2021-09-01 18:28         ` Eli Zaretskii
2021-09-01 19:19           ` Alan Mackenzie
2021-09-01 20:59 ` Stefan Monnier
2021-09-02  6:26   ` Eli Zaretskii
2021-09-02 16:57   ` Alan Mackenzie
2021-09-02 18:46     ` Stefan Monnier
2021-09-02 19:24       ` Alan Mackenzie
2021-09-02 21:08         ` Alan Mackenzie
2021-09-03  6:16           ` Eli Zaretskii
2021-09-03 12:30             ` Stefan Monnier
2021-09-03 12:38               ` Eli Zaretskii
2021-09-03 22:25                 ` Stefan Monnier
2021-09-04  6:13                   ` Eli Zaretskii
2021-09-04 13:36                     ` Stefan Monnier
2021-09-04 13:55                       ` Eli Zaretskii
2021-09-04 14:44                         ` Stefan Monnier
2021-09-04 14:56                           ` Eli Zaretskii
2021-09-04 15:55                             ` Stefan Monnier
2021-09-04 16:12                               ` Eli Zaretskii
2021-09-04 16:24                                 ` Stefan Monnier
2021-09-04 16:28                                   ` Eli Zaretskii
2021-09-04 16:40                                     ` Stefan Monnier
2021-09-03  6:10         ` Eli Zaretskii
2021-09-03 10:47           ` Alan Mackenzie
2021-09-03 11:24             ` Eli Zaretskii
2021-09-03 16:15               ` Alan Mackenzie [this message]
2021-09-03 12:27             ` Stefan Monnier
2021-09-03 12:19           ` Stefan Monnier
2021-09-03 12:35             ` Eli Zaretskii
2021-09-03 16:52           ` Alan Mackenzie
2021-09-03 20:51             ` Alan Mackenzie
2021-09-04  6:09               ` Eli Zaretskii
2021-09-04 14:50                 ` Alan Mackenzie
2021-09-04 15:00                   ` Stefan Monnier
2021-09-04 15:32                     ` Alan Mackenzie
2021-09-04 15:36                       ` Eli Zaretskii
2021-09-04 15:43                         ` Alan Mackenzie
2021-09-04 15:48                           ` Eli Zaretskii
2021-09-04 16:05                             ` Alan Mackenzie
2021-09-04 16:15                               ` Eli Zaretskii
2021-09-06 10:46                                 ` Alan Mackenzie
2021-09-06 11:10                                   ` Eli Zaretskii
2021-09-06 19:08                                     ` Alan Mackenzie
2021-09-06 19:23                                       ` Eli Zaretskii
2021-09-18 11:37                                         ` Alan Mackenzie
2021-09-18 11:59                                           ` Eli Zaretskii
2021-09-06 21:59                                       ` andrés ramírez
2021-09-07 19:47                                         ` Alan Mackenzie
2021-09-07 17:57                                           ` andrés ramírez
2021-09-06 13:24                                   ` Stefan Monnier
2021-09-04 16:06                       ` Stefan Monnier
2021-09-04 16:23                         ` Eli Zaretskii
2021-09-04 16:39                           ` Stefan Monnier
2021-09-04 17:19                             ` Eli Zaretskii
2021-09-04 17:47                               ` Stefan Monnier
2021-09-04 18:10                                 ` Eli Zaretskii
2021-09-04 18:40                                   ` Stefan Monnier
2021-09-11 12:49                                     ` Eli Zaretskii
2021-09-11 17:04                                       ` Stefan Monnier
2021-09-11 17:17                                         ` Eli Zaretskii
2021-09-11 18:00                                           ` Stefan Monnier
2021-09-11 18:16                                             ` Eli Zaretskii
2021-09-11 19:55                                               ` Stefan Monnier
2021-09-12  3:51                                                 ` Eli Zaretskii
2021-09-12 16:41                                                   ` Stefan Monnier
2021-09-12 16:53                                                     ` Eli Zaretskii
2021-09-12 17:41                                                       ` Stefan Monnier
2021-09-12 17:55                                                         ` Eli Zaretskii
2021-09-12 21:11                                                           ` Stefan Monnier

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

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

  git send-email \
    --in-reply-to=YTJKONTBpmP3CbYQ@ACM \
    --to=acm@muc.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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 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.