[slime-devel] eval-in-emacs and 'window'-debugger
Helmut Eller
e9626484 at stud3.tuwien.ac.at
Mon Aug 30 06:37:48 UTC 2004
Antonio Menezes Leitao <aml at gia.ist.utl.pt> writes:
> Is there a different swank function for that? (in the
> emacs-lisp-interface from Franz I used a lep::eval-in-emacs that did
> precisely what I needed).
No, there's currently no such thing. We could probably generalize the
code that reads input from the REPL (see READ-USER-INPUT-FROM-EMACS)
to support arbitrary calls. But this will not happen before the Great
Release.
> This is very useful to provide refactoring operations (that operate on
> the Lisp side) that need to interact with the user using emacs lisp
> operations such as y-or-n-p or read-from-minibuffer.
I think it is good principle to keep the interaction between Emacs and
Lisp to a minimum. I'm not sure, tough, whether such Y-OR-N-P-style
functions help to reduce the interactions; experience will tell.
> I know that it might be difficult to find a general scheme to
> translate from emacs lisp values to common lisp values but all I need
> is symbols, strings, numbers and such.
Yes, keywords, strings, numbers, and cons trees map quite nicely
between the to dialects. For other objects it's better to exchange
some index or numeric id.
> A few years ago I developed a 'window'-debugger and 'window'-inspector
> for Ilisp+CMUCL similar to what I used in the Explorer Lisp Machines.
> I recently adapted it to Slime+Whatever-Common-Lisp-slime-supports.
> If anyone is interested I can post it.
Please post the code, so that we have some examples for your needs.
> 1. The function swank::inspected-parts should provide a recognizable
> value for unbound slots. Here is one example in SBCL
[...]
> 2. The function swank::frame-locals doesn't distinguish valid locals
> from invalid ones.
[...]
We have this UNBOUND-SLOT-FILLER objects, but I think they aren't used
very consistently, probably only for Allegro. I'll have look at it.
Helmut.
More information about the slime-devel
mailing list