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: gregory@heytings.org, larsi@gnus.org, emacs-devel@gnu.org
Subject: Re: New optimisations for long raw strings in C++ Mode.
Date: Wed, 10 Aug 2022 16:23:27 +0000	[thread overview]
Message-ID: <YvPbfzIcL7ibpAa/@ACM> (raw)
In-Reply-To: <83o7wsqlcm.fsf@gnu.org>

Hello, Eli.

On Wed, Aug 10, 2022 at 16:28:09 +0300, Eli Zaretskii wrote:
> > Date: Tue, 9 Aug 2022 21:43:28 +0000
> > Cc: Eli Zaretskii <eliz@gnu.org>, larsi@gnus.org, emacs-devel@gnu.org
> > From: Alan Mackenzie <acm@muc.de>

> > > As has been discussed, CC Mode is, sadly, by design, incompatible with the 
> > > new feature .....

> > Er, actually, CC Mode has been around a tad longer than the new feature.

> That just means it had been doing what it shouldn't for a very long
> time.  It doesn't get any good points for that.

CC Mode has not been doing anything wrong in accessing the buffers it
controls.  The idea that one should access only the characters in the
(BEG END) supplied by fontification_functions (and jit-lock) is false.
It has no basis in rationality.  And in fact, standard font-locking
itself accesses (via syntax-ppss) all character positions from BOB to
BEG.

Just as a matter of interest, to whom it may concern, note that
syntax-ppss behaves differently in narrowed buffers and widened buffers.
In particular, it uses two distinct caches for these two cases, and
erases the "narrowed" cache when point-min changes.  This may have
relevance for font-locking when widen isn't working.

> > It would be more accurate to state that the new feature was, by design,
> > incompatible with existing software.  The new feature, by design, breaks
> > long-standing contracts in Emacs, namely that `widen', etc., work.

> > Of course, testing could have shown up this incompatibility at an early
> > stage, perhaps even leading to a solution.  A pity we didn't have more
> > thorough testing.

> > So, what do you intend to do about this incompatibility you have
> > introduced?  Anything?

> Actually, I'd expect you, as the maintainer of CC Mode, to look into
> this and try to fix whatever needs fixing.  (But for now I cannot
> reproduce the problem, so maybe there's nothing to fix.)

I would have expected the implementor of a new feature to do his utmost
not to break existing software, and should this unfortunately transpire,
to work with others to fix it.  In this case, the implementor, Gregory,
seems overjoyed to have broken CC Mode, and appears to reject any
responsibility for the breakage.

> > What do you intend to do about this?  Anything?

> How about you?

Somebody will have to clean up the mess, yes, and that task, with
virtual certainty, will fall to me, even though I'd far rather be doing
more productive things.

Given how narrowing/widening is essential to all aspects of CC Mode, in
particular to c-parse-state, and that c-parse-state is used in CC Mode's
font-locking, it seems the only way forward is to disable font-locking
entirely when narrowing/widening aren't working.  Either that, or a
complete redesign from scratch.

-- 
Alan Mackenzie (Nuremberg, Germany).



  reply	other threads:[~2022-08-10 16:23 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-06 21:29 New optimisations for long raw strings in C++ Mode Alan Mackenzie
2022-08-07 12:49 ` Lars Ingebrigtsen
2022-08-07 13:25   ` Alan Mackenzie
2022-08-07 13:34     ` Lars Ingebrigtsen
2022-08-07 14:40       ` Alan Mackenzie
2022-08-07 14:41         ` Lars Ingebrigtsen
2022-08-07 14:54         ` Lars Ingebrigtsen
2022-08-07 16:13           ` Alan Mackenzie
2022-08-07 16:17             ` Eli Zaretskii
2022-08-09 11:00               ` Alan Mackenzie
2022-08-09 15:35                 ` Lars Ingebrigtsen
2022-08-09 15:38                   ` Lars Ingebrigtsen
2022-08-09 16:05                     ` Alan Mackenzie
2022-08-09 16:34                       ` Eli Zaretskii
2022-08-09 20:39                         ` Gregory Heytings
2022-08-09 21:43                           ` Alan Mackenzie
2022-08-09 23:05                             ` Stefan Monnier
2022-08-10  2:43                               ` Eli Zaretskii
2022-08-10  7:42                             ` Gregory Heytings
2022-08-10 13:28                             ` Eli Zaretskii
2022-08-10 16:23                               ` Alan Mackenzie [this message]
2022-08-10 16:35                                 ` Eli Zaretskii
2022-08-10 16:50                                   ` Alan Mackenzie
2022-08-10 16:58                                     ` Eli Zaretskii
2022-08-10 17:32                                       ` Alan Mackenzie
2022-08-10 17:41                                         ` Eli Zaretskii
2022-08-10 22:31                                           ` Stefan Monnier
2022-08-11  6:21                                             ` Eli Zaretskii
2022-08-11  7:37                                               ` Stefan Monnier
2022-08-11  6:27                                             ` Immanuel Litzroth
2022-08-11 16:54                                           ` Alan Mackenzie
2022-08-11 17:15                                             ` Eli Zaretskii
2022-08-12 13:05                                           ` Lynn Winebarger
2022-08-12 13:18                                             ` Eli Zaretskii
2022-08-11 15:47                                         ` Yuri Khan
2022-08-11 16:04                                           ` Eli Zaretskii
2022-08-10 17:19                                 ` Gregory Heytings
2022-08-10 17:21                                   ` Eli Zaretskii
2022-08-10 19:45                                   ` Alan Mackenzie
2022-08-14 20:15                                     ` Alan Mackenzie
2022-08-15  8:00                                       ` Gregory Heytings
2022-08-10 13:25                     ` Eli Zaretskii
2022-08-12 12:44                       ` Lars Ingebrigtsen
2022-08-12 12:52                         ` Eli Zaretskii
2022-08-07 15:00         ` Eli Zaretskii

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=YvPbfzIcL7ibpAa/@ACM \
    --to=acm@muc.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=gregory@heytings.org \
    --cc=larsi@gnus.org \
    /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).