[Top][All Lists]

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

Re: CC Mode with font-lock-maximum-decoration 2 [Was Major modes using `

From: Eli Zaretskii
Subject: Re: CC Mode with font-lock-maximum-decoration 2 [Was Major modes using `widen' is a good, even essential, programming practice.]
Date: Mon, 08 Aug 2022 20:41:37 +0300

> Date: Mon, 08 Aug 2022 20:15:25 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: emacs-devel@gnu.org
> > For this measurement, I started with subr.el, and appended copies of it
> > to itself, then took functions off the end, to make it the same size as
> > xdisp.c.  xdisp.c is 1209233 bytes, my .el buffer was 1209371 bytes.
> > 
> > I used M-: (benchmark-run 1 (time-scroll-b)) on each buffer, with:
> > 
> >     (defun time-scroll-b (&optional arg)    ; For use in `benchmark-run'.
> >       (condition-case nil
> >           (while t
> >             (if arg (scroll-down) (scroll-up))
> >             (sit-for 0))
> >         (error nil)))
> > 
> > ..  The exact results were:
> > (xdisp.c): (5.7370774540000005 9 0.7672129740000013)
> > (elisp):   (4.1201735589999995 5 0.42918214299999846).
> > 
> > This was, of course, on an optimised build on GNU/Linux using the Linux
> > console, both measurements starting at BOB, having typed and deleted a
> > character to erase existing font-locking.
> Editing source code is more than just scrolling through the text and
> getting it fontified, though.  For realistic measurements, you need to
> emulate and time a typical mix of editing operations.

And btw, I'm not sure I understand what you are saying.  Are you
saying that level 2 is enough for fontifications in C mode?  If so,
what are we losing when compared to the value t, and if we don't lose
anything important, why do we need any fontifications beyond what
level 2 gives us?

And what about the value nil instead of 2?

IOW, if you are saying that you consider level 2 to be the recommended
level for C sources, why didn't we make that change long ago?

For Lisp, btw, the difference between level 2 and t is negligible.
And the same goes for most/all other modes, which is the reason why we
have set the value to t years ago.  I'm quite sure at that time the
difference between 2 and t for C mode was also very small.

reply via email to

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