[slime-cvs] CVS slime

CVS User sboukarev sboukarev at common-lisp.net
Tue Apr 2 14:41:08 UTC 2013


Update of /project/slime/cvsroot/slime
In directory tiger.common-lisp.net:/tmp/cvs-serv25204

Modified Files:
	ChangeLog swank-allegro.lisp 
Log Message:
Hide SWANK debugger frames on Allegro also when the error is
signalled within threads different from the SLIME REPL's.
E.g. (mp:process-run-function nil (lambda () (error "foo"))).


--- /project/slime/cvsroot/slime/ChangeLog	2013/03/12 17:49:47	1.2397
+++ /project/slime/cvsroot/slime/ChangeLog	2013/04/02 14:41:07	1.2398
@@ -1,3 +1,14 @@
+2013-04-02  Luís Oliveira  <loliveira at common-lisp.net>
+
+	Hide SWANK debugger frames on Allegro also when the error is
+	signalled within threads different from the SLIME REPL's.
+	E.g. (mp:process-run-function nil (lambda () (error "foo"))).
+
+	* swank-allegro.lisp (find-topframe): look deeper than 11
+	frames. Still looking no deeper than 30 frames in the unlikely
+	event that this function is invoked out of context with a very
+	large stack.
+
 2013-03-12  Helmut Eller  <heller at common-lisp.net>
 
 	* slime.el (slime-read-interactive-args): Use read-shell-command
--- /project/slime/cvsroot/slime/swank-allegro.lisp	2013/02/13 07:27:14	1.160
+++ /project/slime/cvsroot/slime/swank-allegro.lisp	2013/04/02 14:41:08	1.161
@@ -169,11 +169,11 @@
                               (find-package :swank)))
         (top-frame (excl::int-newest-frame (excl::current-thread))))
     (loop for frame = top-frame then (next-frame frame)
-          for name  = (debugger:frame-name frame)
           for i from 0
-          when (eq name magic-symbol)
+          while (and frame (< i 30))
+          when (eq (debugger:frame-name frame) magic-symbol)
             return (next-frame frame)
-          until (= i 10) finally (return top-frame))))
+          finally (return top-frame))))
 
 (defun next-frame (frame)
   (let ((next (excl::int-next-older-frame frame)))






More information about the slime-cvs mailing list