Helmut Eller writes:
Alain.Picard@memetrics.com writes:
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.
I'm sure Lispworks has something similar, but I couldn't find it in the documentation. Patches welcome :-)
I've been reading the DSPEC manual; there seems to be something called:
at-location Macro Summary
Tells the dspec system of the source location. Package
dspec Signature
at-location ( location ) &body body => result Arguments
location
A pathname or a keyword.
body
Forms, including defining forms. Values
result
The result of body . Description
The macro at-location informs the dspec system that the source for definitions done during the execution of body are at the location location .
location is usually a pathname, for definitions occuring in a file or editor buffer with that pathname.
I'm wondering (off the top of my head) if it would work to wrap the form being compiled into a (at-location (path which slime/emacs knows we got this form from) from)
?