[slime-devel] Allegro and *CL-DEFAULT-SPECIAL-BINDINGS*

Gábor Melis mega at retes.hu
Sat Dec 3 02:57:06 UTC 2011


In AllegroCl 8.2, *CL-DEFAULT-SPECIAL-BINDINGS* only affects the REPLs
(contradicting the documentation).

In 9.0 alpha, *CL-DEFAULT-SPECIAL-BINDINGS* is [soon to be] deprecated,
warns when first used. It's otherwise the same
EXCL:*REQUIRED-TOP-LEVEL-BINDINGS* (i.e. no change in behavior).

The patch below makes slime actually install bindings into all future
threads.

Index: swank-allegro.lisp
===================================================================
RCS file: /project/slime/cvsroot/slime/swank-allegro.lisp,v
retrieving revision 1.148
diff -u -p -r1.148 swank-allegro.lisp
--- swank-allegro.lisp  27 Nov 2011 21:47:15 -0000      1.148
+++ swank-allegro.lisp  3 Dec 2011 02:48:16 -0000
@@ -832,8 +832,11 @@
                                    #'mp:gate-open-p (mailbox.gate mbox)))))
 
 (defimplementation set-default-initial-binding (var form)
-  (setq excl:*cl-default-special-bindings*
-        (acons var form excl:*cl-default-special-bindings*)))
+  (push (cons var form)
+        #+(version>= 9 0)
+        excl:*required-thread-bindings*
+        #-(version>= 9 0)
+        excl::required-thread-bindings))
 
 (defimplementation quit-lisp ()
   (excl:exit 0 :quiet t))


Cheers,
Gabor




More information about the slime-devel mailing list