Hello everyone,
It seems that version 2.44 of clisp broke slime 2.0.
Here is my quick and dirty fix for it:
jeancb@maximus> diff orig/slime-2.0/swank-clisp.lisp slime-2.0/swank-clisp.lisp 287a288,293
(eval-when (:compile-toplevel :load-toplevel :execute) (when (string< "2.44" (lisp-implementation-version)) (pushnew :clisp-2.44+ *features*)) )
292c298,301 < (frame (sys::the-frame) (sys::frame-up-1 frame 1))) ---
(frame (sys::the-frame) #+clisp-2.44+ (sys::frame-up 1 frame 1) #-clisp-2.44+ (sys::frame-up-1 frame 1) ))
296a306,307
(setq *features* (remove :clisp-2.44+ *features*))
I hope this is useful...
Cheers,
Jean-Claude
Jean-Claude Beaudoin wrote:
Hello everyone,
It seems that version 2.44 of clisp broke slime 2.0.
Here is my quick and dirty fix for it:
According to the ChangeLog for CLISP version 2.44, both FRAME-UP-1 and FRAME-DOWN-1 have been removed:
2008-01-15 Sam Steingold sds@gnu.org
* debug.d (climb_stack_once, climb_stack_repeat): merge into climb_stack (FRAME-UP-1, FRAME-DOWN-1): remove (FRAME-UP, FRAME-DOWN): accept an additional REPEAT argument * reploop.lisp (frame-limit-down, frame-limit-up, debug-up) (debug-top, debug-down, debug-bottom, frame-up-down): use (frame-up 1 ...) instead of (frame-up-1 ...) and (frame-down 1 ...) instead of (frame-down-1 ...) and (frame-up t ...) instead of (frame-up ...) and (frame-down t ...) instead of (frame-down ...) (print-backtrace): use ~:P in message * constsym.d, subr.d (frame_up_1, frame_down_1): remove
Here is a patch file for the latest revision of swank-clisp.lisp (1.65) that adds the implementation-specific code suggested by Jean-Claude Beaudoin, but with additional code for FRAME-DOWN/FRAME-DOWN-1. It also moves the function definition for SLDB-BACKTRACE before the first reference to it to eliminate a compiler warning.
--- swank-clisp.lisp-1.65 2008-02-08 15:15:33.375000000 -0500 +++ swank-clisp.lisp 2008-02-08 15:21:20.609375000 -0500 @@ -249,6 +249,21 @@
(defvar *sldb-backtrace*)
+(eval-when (:compile-toplevel :load-toplevel :execute) + (when (string< "2.44" (lisp-implementation-version)) + (pushnew :clisp-2.44+ *features*))) + +(defun sldb-backtrace () + "Return a list ((ADDRESS . DESCRIPTION) ...) of frames." + (do ((frames '()) + (last nil frame) + (frame (sys::the-frame) + #+clisp-2.44+ (sys::frame-up 1 frame 1) + #-clisp-2.44+ (sys::frame-up-1 frame 1))) ; 1 = "all frames" + ((eq frame last) (nreverse frames)) + (unless (boring-frame-p frame) + (push frame frames)))) + (defimplementation call-with-debugging-environment (debugger-loop-fn) (let* (;;(sys::*break-count* (1+ sys::*break-count*)) ;;(sys::*driver* debugger-loop-fn) @@ -260,15 +275,6 @@ (defun nth-frame (index) (nth index *sldb-backtrace*))
-(defun sldb-backtrace () - "Return a list ((ADDRESS . DESCRIPTION) ...) of frames." - (do ((frames '()) - (last nil frame) - (frame (sys::the-frame) (sys::frame-up-1 frame 1))) ; 1 = "all frames" - ((eq frame last) (nreverse frames)) - (unless (boring-frame-p frame) - (push frame frames)))) - (defun boring-frame-p (frame) (member (frame-type frame) '(stack-value bind-var bind-env)))
@@ -418,7 +424,9 @@ (venv-ref (next-venv env) (- i (/ (1- (length env)) 2))))))
(defun %parse-stack-values (frame) - (labels ((next (fp) (sys::frame-down-1 fp 1)) + (labels ((next (fp) + #+clisp-2.44+ (sys::frame-down 1 fp 1) + #-clisp-2.44+ (sys::frame-down-1 fp 1)) (parse (fp accu) (let ((str (frame-to-string fp))) (cond ((is-prefix-p "- " str) @@ -433,6 +441,8 @@ (t (parse (next fp) accu)))))) (parse (next frame) '())))
+(setq *features* (remove :clisp-2.44+ *features*)) + (defun is-prefix-p (pattern string) (not (mismatch pattern string :end2 (min (length pattern) (length string)))))
2008/2/8 Mark Harig idirectscm@aim.com:
Jean-Claude Beaudoin wrote:
Hello everyone,
It seems that version 2.44 of clisp broke slime 2.0.
Here is my quick and dirty fix for it:
According to the ChangeLog for CLISP version 2.44, both FRAME-UP-1 and FRAME-DOWN-1 have been removed:
2008-01-15 Sam Steingold sds@gnu.org
- debug.d (climb_stack_once, climb_stack_repeat): merge into climb_stack
(FRAME-UP-1, FRAME-DOWN-1): remove (FRAME-UP, FRAME-DOWN): accept an additional REPEAT argument
- reploop.lisp (frame-limit-down, frame-limit-up, debug-up)
(debug-top, debug-down, debug-bottom, frame-up-down): use (frame-up 1 ...) instead of (frame-up-1 ...) and (frame-down 1 ...) instead of (frame-down-1 ...) and (frame-up t ...) instead of (frame-up ...) and (frame-down t ...) instead of (frame-down ...) (print-backtrace): use ~:P in message
- constsym.d, subr.d (frame_up_1, frame_down_1): remove
Here is a patch file for the latest revision of swank-clisp.lisp (1.65) that adds the implementation-specific code suggested by Jean-Claude Beaudoin, but with additional code for FRAME-DOWN/FRAME-DOWN-1. It also moves the function definition for SLDB-BACKTRACE before the first reference to it to eliminate a compiler warning.
--- swank-clisp.lisp-1.65 2008-02-08 15:15:33.375000000 -0500 +++ swank-clisp.lisp 2008-02-08 15:21:20.609375000 -0500 @@ -249,6 +249,21 @@
(defvar *sldb-backtrace*)
+(eval-when (:compile-toplevel :load-toplevel :execute)
- (when (string< "2.44" (lisp-implementation-version))
- (pushnew :clisp-2.44+ *features*)))
+(defun sldb-backtrace ()
- "Return a list ((ADDRESS . DESCRIPTION) ...) of frames."
- (do ((frames '())
(last nil frame)
(frame (sys::the-frame)
#+clisp-2.44+ (sys::frame-up 1 frame 1)
#-clisp-2.44+ (sys::frame-up-1 frame 1))) ; 1 = "all frames"
((eq frame last) (nreverse frames))
- (unless (boring-frame-p frame)
(push frame frames))))
(defimplementation call-with-debugging-environment (debugger-loop-fn) (let* (;;(sys::*break-count* (1+ sys::*break-count*)) ;;(sys::*driver* debugger-loop-fn) @@ -260,15 +275,6 @@ (defun nth-frame (index) (nth index *sldb-backtrace*))
-(defun sldb-backtrace ()
- "Return a list ((ADDRESS . DESCRIPTION) ...) of frames."
- (do ((frames '())
(last nil frame)
(frame (sys::the-frame) (sys::frame-up-1 frame 1))) ; 1 = "all frames"
((eq frame last) (nreverse frames))
- (unless (boring-frame-p frame)
(push frame frames))))
(defun boring-frame-p (frame) (member (frame-type frame) '(stack-value bind-var bind-env)))
@@ -418,7 +424,9 @@ (venv-ref (next-venv env) (- i (/ (1- (length env)) 2))))))
(defun %parse-stack-values (frame)
- (labels ((next (fp) (sys::frame-down-1 fp 1))
- (labels ((next (fp)
#+clisp-2.44+ (sys::frame-down 1 fp 1)
#-clisp-2.44+ (sys::frame-down-1 fp 1)) (parse (fp accu) (let ((str (frame-to-string fp))) (cond ((is-prefix-p "- " str)
@@ -433,6 +441,8 @@ (t (parse (next fp) accu)))))) (parse (next frame) '())))
+(setq *features* (remove :clisp-2.44+ *features*))
(defun is-prefix-p (pattern string) (not (mismatch pattern string :end2 (min (length pattern) (length string)))))
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
Mark,
Could you please clarify to what version of slime I should apply this patch? 2.0 or the latest CVS?
Thank you,
Mirko
Mirko Vukovic wrote:
2008/2/8 Mark Harig idirectscm@aim.com:
Jean-Claude Beaudoin wrote:
Hello everyone,
It seems that version 2.44 of clisp broke slime 2.0.
Here is my quick and dirty fix for it:
According to the ChangeLog for CLISP version 2.44, both FRAME-UP-1 and FRAME-DOWN-1 have been removed:
2008-01-15 Sam Steingold sds@gnu.org
- debug.d (climb_stack_once, climb_stack_repeat): merge into climb_stack
(FRAME-UP-1, FRAME-DOWN-1): remove (FRAME-UP, FRAME-DOWN): accept an additional REPEAT argument
- reploop.lisp (frame-limit-down, frame-limit-up, debug-up)
(debug-top, debug-down, debug-bottom, frame-up-down): use (frame-up 1 ...) instead of (frame-up-1 ...) and (frame-down 1 ...) instead of (frame-down-1 ...) and (frame-up t ...) instead of (frame-up ...) and (frame-down t ...) instead of (frame-down ...) (print-backtrace): use ~:P in message
- constsym.d, subr.d (frame_up_1, frame_down_1): remove
Here is a patch file for the latest revision of swank-clisp.lisp (1.65) that adds the implementation-specific code suggested by Jean-Claude Beaudoin, but with additional code for FRAME-DOWN/FRAME-DOWN-1. It also moves the function definition for SLDB-BACKTRACE before the first reference to it to eliminate a compiler warning.
--- swank-clisp.lisp-1.65 2008-02-08 15:15:33.375000000 -0500 +++ swank-clisp.lisp 2008-02-08 15:21:20.609375000 -0500 @@ -249,6 +249,21 @@
(defvar *sldb-backtrace*)
+(eval-when (:compile-toplevel :load-toplevel :execute)
- (when (string< "2.44" (lisp-implementation-version))
- (pushnew :clisp-2.44+ *features*)))
+(defun sldb-backtrace ()
- "Return a list ((ADDRESS . DESCRIPTION) ...) of frames."
- (do ((frames '())
(last nil frame)
(frame (sys::the-frame)
#+clisp-2.44+ (sys::frame-up 1 frame 1)
#-clisp-2.44+ (sys::frame-up-1 frame 1))) ; 1 = "all frames"
((eq frame last) (nreverse frames))
- (unless (boring-frame-p frame)
(push frame frames))))
(defimplementation call-with-debugging-environment (debugger-loop-fn) (let* (;;(sys::*break-count* (1+ sys::*break-count*)) ;;(sys::*driver* debugger-loop-fn) @@ -260,15 +275,6 @@ (defun nth-frame (index) (nth index *sldb-backtrace*))
-(defun sldb-backtrace ()
- "Return a list ((ADDRESS . DESCRIPTION) ...) of frames."
- (do ((frames '())
(last nil frame)
(frame (sys::the-frame) (sys::frame-up-1 frame 1))) ; 1 = "all frames"
((eq frame last) (nreverse frames))
- (unless (boring-frame-p frame)
(push frame frames))))
(defun boring-frame-p (frame) (member (frame-type frame) '(stack-value bind-var bind-env)))
@@ -418,7 +424,9 @@ (venv-ref (next-venv env) (- i (/ (1- (length env)) 2))))))
(defun %parse-stack-values (frame)
- (labels ((next (fp) (sys::frame-down-1 fp 1))
- (labels ((next (fp)
#+clisp-2.44+ (sys::frame-down 1 fp 1)
#-clisp-2.44+ (sys::frame-down-1 fp 1)) (parse (fp accu) (let ((str (frame-to-string fp))) (cond ((is-prefix-p "- " str)
@@ -433,6 +441,8 @@ (t (parse (next fp) accu)))))) (parse (next frame) '())))
+(setq *features* (remove :clisp-2.44+ *features*))
(defun is-prefix-p (pattern string) (not (mismatch pattern string :end2 (min (length pattern) (length string)))))
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
Mark,
Could you please clarify to what version of slime I should apply this patch? 2.0 or the latest CVS?
Thank you,
Mirko
It was applied to revision 1.65 of swank-clisp.lisp, i.e., the latest revision in the CVS repository at that time. Since then, two revisions have been added. Here is a new patch file that can be applied to the latest revision in the CVS repository, i.e., revision 1.67.
On Sun, Feb 17, 2008 at 2:11 PM, idirectscm idirectscm@aim.com wrote:
Mirko Vukovic wrote:
2008/2/8 Mark Harig idirectscm@aim.com:
Jean-Claude Beaudoin wrote:
Hello everyone,
It seems that version 2.44 of clisp broke slime 2.0.
Here is my quick and dirty fix for it:
According to the ChangeLog for CLISP version 2.44, both FRAME-UP-1 and FRAME-DOWN-1 have been removed:
2008-01-15 Sam Steingold sds@gnu.org
- debug.d (climb_stack_once, climb_stack_repeat): merge into climb_stack
(FRAME-UP-1, FRAME-DOWN-1): remove (FRAME-UP, FRAME-DOWN): accept an additional REPEAT argument
- reploop.lisp (frame-limit-down, frame-limit-up, debug-up)
(debug-top, debug-down, debug-bottom, frame-up-down): use (frame-up 1 ...) instead of (frame-up-1 ...) and (frame-down 1 ...) instead of (frame-down-1 ...) and (frame-up t ...) instead of (frame-up ...) and (frame-down t ...) instead of (frame-down ...) (print-backtrace): use ~:P in message
- constsym.d, subr.d (frame_up_1, frame_down_1): remove
Here is a patch file for the latest revision of swank-clisp.lisp (1.65) that adds the implementation-specific code suggested by Jean-Claude Beaudoin, but with additional code for FRAME-DOWN/FRAME-DOWN-1. It also moves the function definition for SLDB-BACKTRACE before the first reference to it to eliminate a compiler warning.
--- swank-clisp.lisp-1.65 2008-02-08 15:15:33.375000000 -0500 +++ swank-clisp.lisp 2008-02-08 15:21:20.609375000 -0500 @@ -249,6 +249,21 @@
(defvar *sldb-backtrace*)
+(eval-when (:compile-toplevel :load-toplevel :execute)
- (when (string< "2.44" (lisp-implementation-version))
- (pushnew :clisp-2.44+ *features*)))
+(defun sldb-backtrace ()
- "Return a list ((ADDRESS . DESCRIPTION) ...) of frames."
- (do ((frames '())
- (last nil frame)
- (frame (sys::the-frame)
- #+clisp-2.44+ (sys::frame-up 1 frame 1)
- #-clisp-2.44+ (sys::frame-up-1 frame 1))) ; 1 = "all frames"
- ((eq frame last) (nreverse frames))
- (unless (boring-frame-p frame)
- (push frame frames))))
(defimplementation call-with-debugging-environment (debugger-loop-fn) (let* (;;(sys::*break-count* (1+ sys::*break-count*)) ;;(sys::*driver* debugger-loop-fn) @@ -260,15 +275,6 @@ (defun nth-frame (index) (nth index *sldb-backtrace*))
-(defun sldb-backtrace ()
- "Return a list ((ADDRESS . DESCRIPTION) ...) of frames."
- (do ((frames '())
- (last nil frame)
- (frame (sys::the-frame) (sys::frame-up-1 frame 1))) ; 1 = "all frames"
- ((eq frame last) (nreverse frames))
- (unless (boring-frame-p frame)
- (push frame frames))))
(defun boring-frame-p (frame) (member (frame-type frame) '(stack-value bind-var bind-env)))
@@ -418,7 +424,9 @@ (venv-ref (next-venv env) (- i (/ (1- (length env)) 2))))))
(defun %parse-stack-values (frame)
- (labels ((next (fp) (sys::frame-down-1 fp 1))
- (labels ((next (fp)
- #+clisp-2.44+ (sys::frame-down 1 fp 1)
- #-clisp-2.44+ (sys::frame-down-1 fp 1))
(parse (fp accu) (let ((str (frame-to-string fp))) (cond ((is-prefix-p "- " str) @@ -433,6 +441,8 @@ (t (parse (next fp) accu)))))) (parse (next frame) '())))
+(setq *features* (remove :clisp-2.44+ *features*))
(defun is-prefix-p (pattern string) (not (mismatch pattern string :end2 (min (length pattern) (length string)))))
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
Mark,
Could you please clarify to what version of slime I should apply this patch? 2.0 or the latest CVS?
Thank you,
Mirko
It was applied to revision 1.65 of swank-clisp.lisp, i.e., the latest revision in the CVS repository at that time. Since then, two revisions have been added. Here is a new patch file that can be applied to the latest revision in the CVS repository, i.e., revision 1.67.
Thank you very much. It works
Mirko
* Mark Harig [2008-02-08 21:40+0100] writes:
Here is a patch file for the latest revision of swank-clisp.lisp (1.65) that adds the implementation-specific code suggested by Jean-Claude Beaudoin, but with additional code for FRAME-DOWN/FRAME-DOWN-1. It also moves the function definition for SLDB-BACKTRACE before the first reference to it to eliminate a compiler warning.
Committed.
Helmut.