Subject: Xanalys support for SLIME project
From: [email-masked]
To: lisp-support <[email-masked]>
Cc: Helmut Eller <[email-masked]>, [email-masked]
Date: Tue, 11 May 2004 10:32:34 +1000

Dear support,

As we at Memetrics are users of SLIME, the new emacs/lisp 
interface, and have some paid support incidents which will
lapse in a couple of months, we thought we'd be happy to
spend 1 or 2 of them on getting Xanalys to help improve SLIME
for us.  To this end, I asked the main maintainer of the
Lispworks backend for SLIME, Helmut Eller, what he would
like to see from Xanalys, and he came up with the following:

> Alain wrote:
> If you (or anyone else) can specify to me _exactly_ what would be
> neat/required to get some missing features implemented, I could see
> what I could do about getting some patches and/or code from Xanalys.

Helmut> I think a nice feature would be a function to get the
Helmut> precise position of dspecs in a stream.  Currently we use
Helmut> some regexp kludges in Emacs for that.  This fails
Helmut> sometimes and can't work if the definition is generated by
Helmut> a macro.  I imagine a function like:

Helmut>  (dspec-stream-position DSPEC STREAM) => CHARACTER-OFFSET

Helmut> DSPEC can be any dspec returned by NAME-DEFINED-DSPECS or
Helmut> by the compiler.  In particular, the function should
Helmut> return reasonable values for stuff like (LW:TOP-LEVEL-FORM
Helmut> 16), for dspecs for local functions (from FLET or LABELS)
Helmut> and functions generated by macros (e.g., DEFSTRUCT or user
Helmut> defined macros).

I think this is indeed a nice function to have.  In addition, I would
request sufficient to support LIST-CALLERS, and WHO-BINDS, 
WHO-SETS, WHO-MACROEXPANDS.

For reference, here is the list of currently unimplemented
interfaces, in SWANK-BACKEND.LISP v 1.43

("ADD-FD-HANDLER"
 "ADD-SIGIO-HANDLER"
 "CALL-WITH-COMPILATION-HOOKS"
 "DISASSEMBLE-FRAME"
 "LIST-CALLERS"
 "PROFILE"
 "PROFILE-PACKAGE"
 "PROFILE-REPORT"
 "PROFILE-RESET"
 "PROFILED-FUNCTIONS"
 "QUIT-LISP"
 "REMOVE-FD-HANDLERS"
 "REMOVE-SIGIO-HANDLERS"
 "UNPROFILE"
 "WHO-MACROEXPANDS")

Clearly not all these are in fact applicable, but perhaps the
cross referencing and profiling ones could be implemented.

Helmut further wrote:

Helmut> It would also be useful if someone from Xanalys could have
Helmut> a look at swank-lispworks.lisp and document/export the
Helmut> internal symbols we use there, or tell us what we should
Helmut> use instead.

This is of course a lot less well defined, but perhaps a quick
readthrough by Dave Fox or Martin Simmons would not take too much
time; I'm sure their help and comments would be of use to the
SLIME project and worth an incident to Memetrics.

What does Xanalys support think about all this?

			  Alain Picard