[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: An idea: combine-change-calls
From: |
Stefan Monnier |
Subject: |
Re: An idea: combine-change-calls |
Date: |
Sat, 24 Mar 2018 18:18:05 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
> The motivation is bug #30735,
[ Not surprised: I told you CC-mode's change-functions are too costly,
because they presumes that before&after-change-functions are called at
a "human" rate (comparable to pre/post-command-hook).
before&after-change-functions should be handled a bit like POSIX
signals: do as little work as possible there, and handle them
later elsewhere. `comment-region` is not the only command that can
make many small changes. ]
> What do people think?
I actually do like the idea of combining such things, tho it's risky:
e.g. if the code within combine-change-calls uses syntax-ppss it might
get wrong results since syntax-ppss-flush-cache is triggered via
before-change-functions. The same problem would affect
syntax-propertize, of course.
Grepping for `add-hook.*before-change-functions` indicates that similar
problem could appear elsewhere. Not sure what to do about it other than
to say "don't over-use it, it might bite you".
Also we'd need such a system to check that the bounds
are indeed obeyed.
One more thing: with the sample code you showed, undoing will still be
just as slow since it won't benefit from combine-change-calls.
Maybe combine-change-calls should also combine all those changes on the
undo-list into a big "delete+insert" (of course, it could also try and
keep the undo granularity but mark those undo entries so that they're
undone within their own combine-change-calls).
Stefan
- An idea: combine-change-calls, Alan Mackenzie, 2018/03/24
- Re: An idea: combine-change-calls,
Stefan Monnier <=
- Re: An idea: combine-change-calls, Alan Mackenzie, 2018/03/25
- Re: An idea: combine-change-calls, Stefan Monnier, 2018/03/25
- Re: An idea: combine-change-calls, Alan Mackenzie, 2018/03/26
- Re: An idea: combine-change-calls, Stefan Monnier, 2018/03/26
- Re: An idea: combine-change-calls, Alan Mackenzie, 2018/03/27
- Re: An idea: combine-change-calls, Stefan Monnier, 2018/03/27
- Re: An idea: combine-change-calls, Alan Mackenzie, 2018/03/27
- Re: An idea: combine-change-calls, Stefan Monnier, 2018/03/27
- Re: An idea: combine-change-calls, Alan Mackenzie, 2018/03/28
- Re: An idea: combine-change-calls, Stefan Monnier, 2018/03/28