[slime-devel] Interactive compile loses DSPEC info

Helmut Eller e9626484 at stud3.tuwien.ac.at
Thu Feb 26 07:46:20 UTC 2004


Alain.Picard at memetrics.com writes:

> If I compile and load my system from scratch, I can 
> use M-. to jump around function definitions.  but
> if I go to a function, hit C-c C-c to recompile the
> function, jump to a different emacs buffer and try M-.
> on the newly compiled function, I now get:
> 
> make-single-line
>   (:error The file #P"/tmp/filecLlfIH.lisp" does not exist.)
>   (:location (:file /home/kooks/XOS/Bullseye/src/Common/generic-utilities.lisp) (:function-name MAKE-SINGLE-LINE))
> 
> in the *XREF buffer.

This is not easy to fix.  For C-c C-c we write the text of the
function to a temporary file, compile and load it and remove the file
afterwards.  This means Lispworks records the wrong source location
for the function.  See swank:compile-string-for-emacs.

CMUCL has an extension ext:compile-from-stream which allows us to
attach our custom source info.  M-. in CMUCL works nicely in
combination with C-c C-c.

I'm sure Lispworks has something similar, but I couldn't find it in
the documentation.  Patches welcome :-)

Helmut.





More information about the slime-devel mailing list