[slime-devel] patch for ABCL to (more) correctly report source location for COMPILE-CONDITION

swank-abcl.lisp (handle-compile-warning): Report source location position when we can. Use NAMESTRING for *compile-filename*. -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now." Index: swank-abcl.lisp =================================================================== RCS file: /project/slime/cvsroot/slime/swank-abcl.lisp,v retrieving revision 1.58 diff -u -r1.58 swank-abcl.lisp --- swank-abcl.lisp 17 Oct 2008 21:26:53 -0000 1.58 +++ swank-abcl.lisp 19 Oct 2008 15:02:17 -0000 @@ -127,7 +127,6 @@ (defimplementation local-port (socket) (java:jcall (java:jmethod "java.net.ServerSocket" "getLocalPort") socket)) - (defimplementation close-socket (socket) (ext:server-socket-close socket)) @@ -263,7 +262,6 @@ (defimplementation frame-locals (index) `(,(list :name "??" :id 0 :value "??"))) - (defimplementation frame-catch-tags (index) (declare (ignore index)) nil) @@ -306,8 +304,11 @@ (in-package :swank-backend) (defun handle-compiler-warning (condition) - (let ((loc nil));(getf (slot-value condition 'excl::plist) :loc))) - (unless (member condition *abcl-signaled-conditions*) ; filter condition signaled more than once. + (let ((loc (when (and jvm::*compile-file-pathname* + system::*source-position*) + (cons jvm::*compile-file-pathname* system::*source-position*)))) + ;; filter condition signaled more than once. + (unless (member condition *abcl-signaled-conditions*) (push condition *abcl-signaled-conditions*) (signal (make-condition 'compiler-condition @@ -325,7 +326,7 @@ (list :position (1+ pos))))) (t (make-location - (list :file *compile-filename*) + (list :file (namestring *compile-filename*)) (list :position 1))))))))) (defvar *abcl-signaled-conditions*)
participants (2)
-
Helmut Eller
-
Mark Evenson