bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#30393: 24.4; cperl-mode: indentation failure


From: Alan Mackenzie
Subject: bug#30393: 24.4; cperl-mode: indentation failure
Date: Sun, 11 Feb 2018 10:36:10 +0000
User-agent: Mutt/1.7.2 (2016-11-26)

Hello, Stefan.

On Sat, Feb 10, 2018 at 09:58:55 -0500, Stefan Monnier wrote:
> > I'm not sure, but I think there's a danger of a recursive loop,

> Definitely.

> > should a major mode use a hook in syntax-ppss to calculate syntax-table
> > properties,

> You mean when a major mode sets syntax-propertize-function, right?

> > and that hook call forward-comment.

> The principle I tried to follow to avoid inf-loop is that each
> recursive-invocation of syntax-ppss should be on a strictly smaller
> buffer position.

> Another principle is that syntax-propertize moves
> syntax-propertize--done before calling syntax-propertize-function, so
> similarly each recursive invocation of syntax-propertize would have to
> be a strictly greater buffer position.

> So in a large buffer, this can recurse faily deep, but it shouldn't be
> able to recurse infinitely.

> This said, in practice I haven't bumped into this problem yet, so
> if/when it shows up, we'll see how it should be fixed.

OK, but I suspect in practice, this would be impossible to debug for
lack of reproducibility.

Another definite bug is that the syntax-ppss cache is not flushed when
the syntax-table is changed, whether with set-syntax-table or
modify-syntax-entry.

This is critical, now that primitives depend on this cache.

Would you please fix this, Stefan.

Thanks!

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).





reply via email to

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