Alain.Picard@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.