Subject: Re: bug#58558: 29.0.50; re-search-forward is slow in some buffers

From: Alan Mackenzie <[email-masked]>
Date: Wed, 12 Apr 2023 15:59:42 +0000

Hello, Eli.

On Wed, Apr 12, 2023 at 18:22:22 +0300, Eli Zaretskii wrote:
> > From: Stefan Monnier <[email-masked]>
> > Cc: [email-masked],  [email-masked],  [email-masked],  [email-masked]
> > Date: Wed, 12 Apr 2023 10:38:50 -0400

> > > Also, that code was there in Emacs 28 as well, so how come it suddenly
> > > has this effect now?

> > The effect of the code depends on whether the buffer that's current when
> > `cc-defs.el` is loaded has set `parse-sexp-lookup-properties`
> > buffer-locally or not.

> > I don't have Emacs-28 at hand, but the value of
> > `parse-sexp-lookup-properties` in *scratch* is (buffer-local) t in
> > Emacs-29 and (global) nil in Emacs-27.

> Ah, okay.  So in Emacs 29 we started setting this variable locally in
> some buffers?  Do you happen to know where's the change which caused
> that, and why was it done?

I suspect this commit as the cause:

commit 6ccc4b6bc8a14daca6b3e3250574752c90c1eb9b
Author: Noam Postavsky <[email-masked]>
Date:   Fri May 6 18:31:00 2022 +0200

    Handle elisp #-syntax better in Emacs Lisp mode

    * elisp-mode.el (elisp-mode-syntax-propertize): New function.
    (emacs-lisp-mode): Set it as syntax-propertize-function (bug#15998).

Lisp Interaction Mode is derived from Emacs Lisp Mode.  Whenever there
is a non-nil syntax-propertize-function, run-mode-hooks sets
parse-sexp-lookup-properties to t.

This is probably harmless in *scratch*.

-- 
Alan Mackenzie (Nuremberg, Germany).