Subject: bug#65451: 30.0.50; `after-change-functions' are not triggered in the same order the changes are made

From: Stefan Monnier <[email-masked]>
Date: Sat, 30 Mar 2024 11:38:24 -0400

> I still stand by my opinion: Org is relying on something it cannot
> rely upon, not as long as a function that changes a buffer can be
> called from another function which changes the same buffer.

`*-change-functions` should not modify the buffer (we could try and
enforce this, tho in my experience those that do will get punished
pretty quickly already), so the only cases I can think of where "a
function that changes a buffer can be called from another function which
changes the same buffer" is when both of those functions are in our
C code and we should have enough control to fix those cases.

> I don't see how we can avoid breaking code which relies on such
> assumptions, not in general anyway.

All sophisticated-enough users of `*-change-functions` rely on this
(and come with sanity checks to detect the problem and fallback on an
expensive recovery when needed, because indeed we tend to break our
promises 🙁).

So we really should try and fix those.
Alan did convince me that we should treat them as bugs and that we
should try and fix them.

        Stefan