[Top][All Lists]

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

Re: New optimisations for long raw strings in C++ Mode.

From: Alan Mackenzie
Subject: Re: New optimisations for long raw strings in C++ Mode.
Date: Wed, 10 Aug 2022 16:23:27 +0000

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

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 via email to

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