[slime-devel] sbcl-mt on Debian unstable

Thomas F. Burdick tfb at OCF.Berkeley.EDU
Wed Jun 23 01:29:33 UTC 2004


Helmut Eller writes:
 > Friedrich Dominicus <frido at q-software-solutions.com> writes:
 > 
 > > I used the newest sbcl-mt deb package which is:
 > > sbcl-mt_0.8.28+really.0.8.10.48-1_i386.deb
 > 
 > Has this version a sb-int:debootstrap-package function and a
 > sb-int:bootstrap-package-not-found condition type?  That's needed with
 > SLIME's CVS version.
 > 
 > You can downgrade SLIME to the FAIRLY-STABLE, if you don't want
 > upgrade your SBCL .

Since it looks like I'm not the only one who'd like to use the most
recent SLIME with a fairly recent SBCL (like 0.8.8), here's a patch to
make SLIME use the debootstrapping facilities only if they're present:

--- ChangeLog.~1.417.~		   Tue Jun 22 17:43:31 2004
+++ ChangeLog			   Tue Jun 22 18:20:05 2004
@@ -1,3 +1,10 @@
+2004-06-22  Thomas F. Burdick  <tfb at OCF.Berkeley.EDU>
+
+	* swank-sbcl.lisp (call-with-syntax-hooks, with-debootstrapping):
+	Preserve compatability with fairly recent SBCLs by checking for
+	the presense of the debootstrapping facilities at macroexpansion
+	time.
+
 2004-06-21  Luke Gorrie  <luke at bluetail.com>
 
	* swank-loader.lisp (*lisp-name*): Add version number to
--- swank-sbcl.lisp.~1.91.~ Tue Jun 22 17:43:32 2004
+++ swank-sbcl.lisp	    Tue Jun 22 18:06:23 2004
@@ -704,12 +704,17 @@ (defun sbcl-package-p (package)
 
 (defvar *debootstrap-packages* t)
 
+(defmacro with-debootstrapping (&body body)
+  (let ((not-found (find-symbol "BOOTSTRAP-PACKAGE-NOT-FOUND" "SB-INT"))
+        (debootstrap (find-symbol "DEBOOTSTRAP-PACKAGE" "SB-INT")))
+    (if (and not-found debootstrap)
+        `(handler-bind ((,not-found #',debootstrap)) , at body)
+        `(progn , at body))))
+
 (defimplementation call-with-syntax-hooks (fn)
   (cond ((and *debootstrap-packages* 
               (sbcl-package-p *package*))
-         (handler-bind ((sb-int:bootstrap-package-not-found 
-                         #'sb-int:debootstrap-package))
-           (funcall fn)))
+         (with-debootstrapping (funcall fn)))
         (t
          (funcall fn))))




More information about the slime-devel mailing list