[slime-devel] Slime-2.0 broken in clisp-2.44

Mirko Vukovic mirko.vukovic at gmail.com
Mon Feb 18 00:20:14 UTC 2008


On Sun, Feb 17, 2008 at 2:11 PM, idirectscm <idirectscm at aim.com> wrote:
>
>  Mirko Vukovic wrote:
>
>  2008/2/8 Mark Harig <idirectscm at 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 at 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 at 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



More information about the slime-devel mailing list