[slime-cvs] CVS update: slime/swank-backend.lisp

Luke Gorrie lgorrie at common-lisp.net
Sun Jan 25 20:51:01 UTC 2004


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

Modified Files:
      Tag: stateless-emacs
	swank-backend.lisp 
Log Message:
(definterface, defimplementation): Use PROGN instead of PROG1 to
preserve top-level-ness of expanded DEFGENERIC/DEFMETHOD forms. Lisp
tip from Tim Moore.

Date: Sun Jan 25 15:51:01 2004
Author: lgorrie

Index: slime/swank-backend.lisp
diff -u slime/swank-backend.lisp:1.22 slime/swank-backend.lisp:1.22.2.1
--- slime/swank-backend.lisp:1.22	Wed Jan 21 19:35:17 2004
+++ slime/swank-backend.lisp	Sun Jan 25 15:51:00 2004
@@ -114,19 +114,21 @@
                                                &rest ,received-args)
                (destructuring-bind ,args ,received-args
                  , at default-body)))))
-    `(prog1 (defgeneric ,name ,args (:documentation ,documentation))
+    `(progn (defgeneric ,name ,args (:documentation ,documentation))
             (pushnew ',name *interface-functions*)
             ,(if (null default-body)
                  `(pushnew ',name *unimplemented-interfaces*)
-                 (gen-default-impl)))))
+                 (gen-default-impl))
+            ',name)))
 
 (defmacro defimplementation (name args &body body)
   ;; Is this a macro no-no -- should it be pushed out of macroexpansion?
-  `(prog1 (defmethod ,name ,args , at body)
-    (if (member ',name *interface-functions*)
-        (setq *unimplemented-interfaces*
-              (remove ',name *unimplemented-interfaces*))
-        (warn "DEFIMPLEMENTATION of undefined interface (~S)" ',name))))
+  `(progn (defmethod ,name ,args , at body)
+          (if (member ',name *interface-functions*)
+              (setq *unimplemented-interfaces*
+                    (remove ',name *unimplemented-interfaces*))
+              (warn "DEFIMPLEMENTATION of undefined interface (~S)" ',name))
+          ',name))
 
 (defun warn-unimplemented-interfaces ()
   "Warn the user about unimplemented backend features.





More information about the slime-cvs mailing list