[slime-cvs] CVS update: slime/swank-allegro.lisp
Helmut Eller
heller at common-lisp.net
Thu Jan 20 16:09:30 UTC 2005
Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv9756
Modified Files:
swank-allegro.lisp
Log Message:
(handle-undefined-functions-warning): Prevent breakage if the
undefined function is called at multiple locations. By Edi Weitz.
(restart-frame): Handle frames with arguments better. From Ian Eslick.
Date: Thu Jan 20 08:09:24 2005
Author: heller
Index: slime/swank-allegro.lisp
diff -u slime/swank-allegro.lisp:1.66 slime/swank-allegro.lisp:1.67
--- slime/swank-allegro.lisp:1.66 Sun Dec 5 06:52:39 2004
+++ slime/swank-allegro.lisp Thu Jan 20 08:09:23 2005
@@ -201,12 +201,13 @@
frame (debugger:eval-form-in-context
form
(debugger:environment-of-frame frame)))))
-
-;;; XXX doesn't work for frames with arguments
+
(defimplementation restart-frame (frame-number)
(let ((frame (nth-frame frame-number)))
- (debugger:frame-retry frame (debugger:frame-function frame))))
-
+ (apply #'debugger:frame-retry
+ (append (list frame (debugger:frame-function frame))
+ (cdr (debugger:frame-expression frame))))))
+
;;;; Compiler hooks
(defvar *buffer-name* nil)
@@ -257,14 +258,15 @@
(defun handle-undefined-functions-warning (condition)
(let ((fargs (slot-value condition 'excl::format-arguments)))
- (dolist (farg (car fargs))
- (destructuring-bind (fname (pos file)) farg
- (signal-compiler-condition
- :original-condition condition
- :severity :warning
- :message (format nil "Undefined function referenced: ~S" fname)
- :location (make-location (list :file file)
- (list :position (1+ pos))))))))
+ (loop for (fname . pos-file) in (car fargs) do
+ (loop for (pos file) in pos-file do
+ (signal-compiler-condition
+ :original-condition condition
+ :severity :warning
+ :message (format nil "Undefined function referenced: ~S"
+ fname)
+ :location (make-location (list :file file)
+ (list :position (1+ pos))))))))
(defimplementation call-with-compilation-hooks (function)
(handler-bind ((warning #'handle-compiler-warning)
More information about the slime-cvs
mailing list