Comment 52 for bug 369800

Revision history for this message
lborgman (lennart-borgman) wrote :

Thanks hobbes. I could not find any special there (but I asked on Emacs Devel too).

However I think Romain Francoise have found the solution! Hurray!

From Francoise I got:

> the issue. There seems to be a problem with the way mumamo sets up
> its advice; it does:
>
> | (defadvice syntax-ppss-flush-cache (around
> | mumamo-advice-syntax-ppss-flush-cache
> | activate
> | compile
> | )
>
> which defines the advice, activates it *and* asks for compilation of
> the function. Then at the end of the file, it does:
>
> | (if t
> | (progn
> | (ad-activate 'syntax-ppss)
> | (ad-activate 'syntax-ppss-flush-cache)
> | (ad-activate 'syntax-ppss-stats)
> | (ad-activate 'rng-do-some-validation-1)
> | (ad-activate 'rng-mark-error)
> | (ad-activate 'xmltok-add-error)
> | )
>
> Which activates the advice again, but this time without asking for
> compilation. Whether or not the function is compiled then depends
> on the value of `ad-default-compilation-action', whose value depends
> on whether or not `byte-compile' is loaded (which can be influenced
> by other factors). (The same for all defadvice calls in mumamo.el.)
>
> The double activation with different flags seems to trigger a bug in
> Emacs, causing infinite recursion when jit-lock is invoked via
> `after-change-functions'. Unfortunately I can't seem to isolate a
> small test case to reproduce this without mumamo.

hobbes, can you please comment out this double activation? (I can't send a new mumamo.el at the moment.)