[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Lisp watchpoints
From: |
Noam Postavsky |
Subject: |
Re: Lisp watchpoints |
Date: |
Sun, 22 Nov 2015 21:31:53 -0500 |
On Sun, Nov 22, 2015 at 3:41 PM, Eli Zaretskii <address@hidden> wrote:
> Is it possible to have watchers that don't require a Funcall, or avoid
> exposing the watcher function to Lisp to begin with? Funcall can GC,
> so the usability of such watchers for internal purposes might be
> limited in some situations.
Yes, avoiding exposure to Lisp is what I had in mind when I said
We could make `add-variable-watcher' callable only from C, and
manipulate some internal hash table instead of the symbol's plist. Of
course this would make it less flexible, but it avoids the whole
problem of running arbitrary Lisp code for variable-write (and read,
though I don't plan to implement read watchpoints for now).
But I wasn't aware of the Funcall GC thing.
>
> How about allowing special, say, integer values for a watcher, which
> will then cause a call to a C function from a table indexed by the
> watcher value? Or something else to that effect.
That could work.
>
> Another comment is: do we care about scalability of property lists for
> storing watchers?
I actually tried to use a hashtable first but it didn't work so I
switched to property lists because it's simpler. (I think my problem
with the hashtable was that I missed the note about staticpro).
>
> The debug command might be more mnemonic (at least for me ;-) if it
> were called 'debug-watch', or maybe 'debug-set-watchpoint'. A similar
> command for Edebug would also be nice.
Sure, I have no particular attachment to the current names. When I
figure out how to do plain debug properly, I'll look at an Edebug
version. :)
> P.S. We should decide whether we ad this to the emacs-25 branch or to
> master.
Right, so I think the arguments for emacs-25 despite feature freeze would be
- watchpoints would be useful for catching all those bugs we have to
fix before release :)
- fixing a performance regression (I guess? I haven't made any
measurements though)
- Lisp watchpoints (Was: [Emacs-diffs] master 19e09cf: Ensure redisplay after evaluation), Noam Postavsky, 2015/11/15
- Re: Lisp watchpoints, Stefan Monnier, 2015/11/16
- Re: Lisp watchpoints, Noam Postavsky, 2015/11/22
- Re: Lisp watchpoints,
Noam Postavsky <=
- Re: Lisp watchpoints, Noam Postavsky, 2015/11/28
- Re: Lisp watchpoints, Stefan Monnier, 2015/11/28
- Re: Lisp watchpoints, Noam Postavsky, 2015/11/29
- Re: Lisp watchpoints, Andreas Schwab, 2015/11/29
- Re: Lisp watchpoints, Noam Postavsky, 2015/11/29
- Re: Lisp watchpoints, Stefan Monnier, 2015/11/29
- Re: Lisp watchpoints, Eli Zaretskii, 2015/11/29
- Re: Lisp watchpoints, Noam Postavsky, 2015/11/29
- Re: Lisp watchpoints, Stefan Monnier, 2015/11/29
- Re: Lisp watchpoints, Eli Zaretskii, 2015/11/30