0.7.9.1:
[sbcl.git] / src / code / defboot.lisp
index a816b28..d9afbde 100644 (file)
 ;;; COND defined in terms of IF
 (defmacro-mundanely cond (&rest clauses)
   (if (endp clauses)
-    nil
-    (let ((clause (first clauses)))
-      (if (atom clause)
-       (error "Cond clause is not a list: ~S" clause)
-       (let ((test (first clause))
-             (forms (rest clause)))
-         (if (endp forms)
-           (let ((n-result (gensym)))
-             `(let ((,n-result ,test))
-                (if ,n-result
-                  ,n-result
-                  (cond ,@(rest clauses)))))
-           `(if ,test
-              (progn ,@forms)
-              (cond ,@(rest clauses)))))))))
+      nil
+      (let ((clause (first clauses)))
+       (if (atom clause)
+           (error "COND clause is not a list: ~S" clause)
+           (let ((test (first clause))
+                 (forms (rest clause)))
+             (if (endp forms)
+                 (let ((n-result (gensym)))
+                   `(let ((,n-result ,test))
+                      (if ,n-result
+                          ,n-result
+                          (cond ,@(rest clauses)))))
+                 `(if ,test
+                      (progn ,@forms)
+                      (cond ,@(rest clauses)))))))))
 
 ;;; other things defined in terms of COND
 (defmacro-mundanely when (test &body forms)
                          (block ,(fun-name-block-name name)
                            ,@forms)))
           (lambda `(lambda ,@lambda-guts))
+           #-sb-xc-host
           (named-lambda `(named-lambda ,name ,@lambda-guts))
           (inline-lambda
            (cond (;; Does the user not even want to inline?
 (defun %defun (name def doc)
   (declare (type function def))
   (declare (type (or null simple-string doc)))
-  (aver (legal-fun-name-p name))
+  (aver (legal-fun-name-p name)) ; should've been checked by DEFMACRO DEFUN
   (when (fboundp name)
     (/show0 "redefining NAME in %DEFUN")
     (style-warn "redefining ~S in DEFUN" name))