[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Lisp primitives and their calling of the change hooks
From: |
Eli Zaretskii |
Subject: |
Re: Lisp primitives and their calling of the change hooks |
Date: |
Fri, 05 Jan 2018 16:08:31 +0200 |
> Date: Fri, 5 Jan 2018 13:34:48 +0000
> Cc: address@hidden, address@hidden
> From: Alan Mackenzie <address@hidden>
>
> On Fri, Jan 05, 2018 at 15:00:21 +0200, Eli Zaretskii wrote:
> > > Date: Fri, 5 Jan 2018 11:41:07 +0000
> > > Cc: address@hidden, address@hidden
> > > From: Alan Mackenzie <address@hidden>
>
> > > The "complex primitive" case can be distinguised from the "atomic
> > > primitive" case because either the call to `after-change-functions'
> > > is missing (i.e. there are two consecutive calls to
> > > `before-change-functions'), or in the first call to
> > > `after-change-functions', `OLD-LEN' is less then `END' - `BEG' in
> > > `before-change-functions'.
>
> > > The above leaves unsaid what happens when a "complex primitive" happens
> > > to call b-c-f and a-c-f as though it were an "atomic primitive".
>
> > It also provides no way to know, up front, whether a given primitive
> > I'm about to call, is one or the other. IMO, we need some way of
> > doing that, if we want to document this distinction.
>
> Do we really need this level of detail? My idea was to enable users of
> b-c-f and a-c-f to predict what they're going to be being hit with.
>
> There are two patterns of handling b/a-c-f, the "atomic" and the
> "complex". My above proposal documents enough for somebody using
> b/a-c-f to be able to handle the "atomic" and "complex" uses.
> [...]
> What am I missing here?
Maybe it's me that is missing something. You first say above that you
want to "enable users of b-c-f and a-c-f to predict what they're going
to be being hit with", which is exactly my concern, but then provide a
recipe that AFAIU only works post-factum, i.e. the user can only know
whether they called an "atomic" or a "complex" primitive by analyzing
the calls to the 2 hooks as result of calling the primitive. If
that's indeed what you are saying, IMO it's not a useful criterion,
because generally when I read documentation, I shouldn't be required
to write code in order to interpret the documentation.
> Why does that hacker need to know exactly what each buffer-changing
> primitive does, or which falls into which category? Surely it is enough
> that she handle the b/a-c-f calls appropriately.
How can she handle these calls correctly unless she knows which of the
hooks will be called by a given primitive, and whether these calls
will be balanced? And if she doesn't need to know that, then why do
we have to tell here these details about the 2 classes of primitives?
IOW, accurate information is only useful if one knows exactly how to
apply it to the practical case in hand.
- Re: Lisp primitives and their calling of the change hooks, (continued)
- Re: Lisp primitives and their calling of the change hooks, Stefan Monnier, 2018/01/07
- Re: Lisp primitives and their calling of the change hooks, Alan Mackenzie, 2018/01/07
- Re: Lisp primitives and their calling of the change hooks, Eli Zaretskii, 2018/01/07
- Re: Lisp primitives and their calling of the change hooks, Eli Zaretskii, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks, Alan Mackenzie, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks, Eli Zaretskii, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks, Alan Mackenzie, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks,
Eli Zaretskii <=
- Re: Lisp primitives and their calling of the change hooks, Alan Mackenzie, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks, Stefan Monnier, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks, Alan Mackenzie, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks, Stefan Monnier, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks, Eli Zaretskii, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks, Stefan Monnier, 2018/01/05
- Re: Lisp primitives and their calling of the change hooks, Eli Zaretskii, 2018/01/06
- Re: Lisp primitives and their calling of the change hooks, Stefan Monnier, 2018/01/06