unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Po Lu <luangruo@yahoo.com>,
	monnier@iro.umontreal.ca, gregory@heytings.org, mattiase@acm.org,
	philipk@posteo.net, silent2600@gmail.com, emacs-devel@gnu.org
Subject: Re: emacs master + org Wrong type argument: number-or-marker-p
Date: Thu, 4 Aug 2022 10:18:21 +0000	[thread overview]
Message-ID: <Yuuc7WVfnULW6ddB@ACM> (raw)
In-Reply-To: <831qtw4btm.fsf@gnu.org>

Hello, Eli.

On Thu, Aug 04, 2022 at 12:06:45 +0300, Eli Zaretskii wrote:
> > From: Po Lu <luangruo@yahoo.com>
> > Cc: monnier@iro.umontreal.ca,  acm@muc.de,  gregory@heytings.org,
> >   mattiase@acm.org,  philipk@posteo.net,  silent2600@gmail.com,
> >   emacs-devel@gnu.org
> > Date: Thu, 04 Aug 2022 16:42:33 +0800

> > Eli Zaretskii <eliz@gnu.org> writes:

> > And what if someone wants to write a fontification function whose
> > results depend, for example, on a single character at a known position
> > outside of the accessible region? That cannot result in a freeze

> I cannot reason about something as abstract and theoretical.

CC Mode is such a mode, though it depends on more than just a single
character outside the accessible region.

[ .... ]

> > I'm just trying to demonstrate what will happen once the forced
> > narrowing starts to interfere with the operation of various pieces of
> > third party code, which might possibly be discovered some time after
> > Emacs 29 is released.  Long-running fontification was not a
> > significant source of complaints for their developers in the past,
> > and things are likely to remain that way.

> Users did and do complain about locked-up Emacs when they try to edit
> files with long lines.  They just didn't realize one of the reasons
> was font-lock (or syntax-ppss), so they didn't complain specifically
> about that.  But every complaint you see about these situations is
> basically a complaint about font-lock and its syntax-parsing parts.

Has anybody asked the question why is font-lock so slow on these long
lines?  The answer is surely not the use of widen and narrow-to-region.
A piece of text takes exactly as long to fontify when its buffer is
narrowed as when it is not.

I think (though I have not analysed it any further) the cause of this
slowness is font-lock fontifying from BOL to EOL.  That's an awful lot of
fontification if we have long lines.  If this is the case, a better
solution to the problem would be to restrict the font-locked region to,
say, the visible line.  Or to the window.  Or something like that.

The current "solution" breaks things, because it doesn't fix what is
broken and fixes what isn't broken.  In particular, it breaks CC Mode
when there are long lines in a buffer.

> Anyway, this discussion doesn't lead anywhere.  We have decided to try
> this way of solving a long-standing problem in Emacs, and no amount of
> talking will cause us to change that decision.  Only code that makes
> font-lock and syntax.c significantly faster, and/or reports about
> specific issues (as opposed to general semi-philosophical concerns)
> caused by these changes, can affect both the implementation of these
> changes and our future decisions about its defaults.

I don't want to be provocative, but having opcodes that only work most of
the time rather than all of the time isn't a mere semi-philosophical
concern.

-- 
Alan Mackenzie (Nuremberg, Germany).



  reply	other threads:[~2022-08-04 10:18 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-01 13:13 emacs master + org Wrong type argument: number-or-marker-p hx
2022-08-01 13:37 ` Eli Zaretskii
2022-08-01 15:11   ` Philip Kaludercic
2022-08-01 15:52     ` Eli Zaretskii
2022-08-01 16:07       ` Philip Kaludercic
2022-08-01 16:34         ` Visuwesh
2022-08-01 16:11       ` Gregory Heytings
2022-08-01 16:25         ` Eli Zaretskii
2022-08-01 16:34           ` Philip Kaludercic
2022-08-01 16:39             ` Eli Zaretskii
2022-08-01 17:15               ` Mattias Engdegård
2022-08-01 17:24                 ` Eli Zaretskii
2022-08-01 17:36                   ` Mattias Engdegård
2022-08-01 17:59                     ` Eli Zaretskii
2022-08-01 18:06                       ` Gregory Heytings
2022-08-01 18:25                         ` Eli Zaretskii
2022-08-01 19:14                           ` Gregory Heytings
2022-08-01 18:47                         ` Mattias Engdegård
2022-08-01 19:16                           ` Gregory Heytings
2022-08-01 20:05                             ` Alan Mackenzie
2022-08-02 13:46                               ` Eli Zaretskii
2022-08-02 18:59                                 ` Alan Mackenzie
2022-08-02 19:15                                   ` Eli Zaretskii
2022-08-02 20:28                                     ` Alan Mackenzie
2022-08-03  1:21                                       ` Po Lu
2022-08-03  2:38                                         ` Eli Zaretskii
2022-08-03  4:34                                           ` Po Lu
2022-08-03 12:02                                             ` Eli Zaretskii
2022-08-03 12:07                                               ` Po Lu
2022-08-03 12:34                                                 ` Eli Zaretskii
2022-08-03 13:10                                                   ` Po Lu
2022-08-03 13:36                                                     ` Eli Zaretskii
2022-08-04  1:04                                                       ` Po Lu
2022-08-04  1:09                                                         ` Gregory Heytings
2022-08-04  1:27                                                           ` Po Lu
2022-08-04  6:45                                                           ` Eli Zaretskii
2022-08-03 20:47                                               ` Stefan Monnier
2022-08-04  5:51                                                 ` Eli Zaretskii
2022-08-04  6:19                                                   ` Po Lu
2022-08-04  7:10                                                     ` Eli Zaretskii
2022-08-04  7:31                                                       ` Po Lu
2022-08-04  7:58                                                         ` Eli Zaretskii
2022-08-04  8:42                                                           ` Po Lu
2022-08-04  9:06                                                             ` Eli Zaretskii
2022-08-04 10:18                                                               ` Alan Mackenzie [this message]
2022-08-04 13:18                                                                 ` Eli Zaretskii
2022-08-04 16:07                                                                   ` Alan Mackenzie
2022-08-04 16:37                                                                     ` Eli Zaretskii
2022-08-04 10:26                                                               ` Po Lu
2022-08-04 11:33                                                                 ` Werner LEMBERG
2022-08-04 13:10                                                                 ` Eli Zaretskii
2022-08-04 21:56                                                           ` Stefan Monnier
2022-08-03  7:21                                         ` Gregory Heytings
2022-08-03 11:07                                           ` Po Lu
2022-08-03 12:25                                             ` Eli Zaretskii
2022-08-03 15:25                                             ` Gregory Heytings
2022-08-04  1:02                                               ` Po Lu
2022-08-04  1:08                                                 ` Gregory Heytings
2022-08-04  9:14                                                 ` Stefan Monnier
2022-08-05  3:19                                               ` Richard Stallman
2022-08-03  8:57                                         ` Stefan Monnier
2022-08-03 11:05                                           ` Po Lu
2022-08-03 11:50                                       ` Eli Zaretskii
2022-08-02  8:25                             ` Mattias Engdegård
2022-08-02  8:43                               ` Gregory Heytings
2022-08-02  8:28                           ` Stefan Monnier
2022-08-02  8:40                             ` Mattias Engdegård
2022-08-01 16:36           ` Gregory Heytings
2022-08-01 16:49           ` Lars Ingebrigtsen
2022-08-01 17:23             ` Andreas Schwab
2022-08-07 15:22           ` Julien Cubizolles
2022-08-01 16:39         ` Andreas Schwab
2022-08-02 16:37         ` Opcode Versioning Was: " Sam Steingold
2022-08-02 22:10           ` Stefan Monnier
2022-08-04 14:59             ` Sam Steingold
2022-08-04 22:11               ` Stefan Monnier
2022-08-02  8:59       ` Po Lu
  -- strict thread matches above, loose matches on Subject: below --
2022-08-01 13:45 Gerd Möllmann
2022-08-01 17:36 Gerd Möllmann
2022-08-01 17:58 ` Lars Ingebrigtsen

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=Yuuc7WVfnULW6ddB@ACM \
    --to=acm@muc.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=gregory@heytings.org \
    --cc=luangruo@yahoo.com \
    --cc=mattiase@acm.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=philipk@posteo.net \
    --cc=silent2600@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).