Utility predicates for packing: UNBOUNDED-SC-P and UNBOUNDED-TN-P
[sbcl.git] / src / code / defbangtype.lisp
index f5f0b4e..d59b7c1 100644 (file)
@@ -8,13 +8,10 @@
 ;;;; files for more information.
 
 (in-package "SB!KERNEL")
-
-(file-comment
-  "$Header$")
 \f
 ;;;; the DEF!TYPE macro
 
-;;; DEF!MACRO = cold DEFTYPE, a version of DEFTYPE which at
+;;; DEF!TYPE = cold DEFTYPE, a version of DEFTYPE which at
 ;;; build-the-cross-compiler time defines its macro both in the
 ;;; cross-compilation host Lisp and in the target Lisp. Basically,
 ;;; DEF!TYPE does something like
 ;;; completely parallel, at which time they should be merged to
 ;;; eliminate the duplicate code.
 
-(defmacro def!type (&rest rest)
+(defmacro def!type (name &rest rest)
   `(progn
-     (deftype ,@rest)
-     #+sb-xc-host 
-     ,(let ((form `(sb!xc:deftype ,@(uncross rest))))
-       (if (boundp '*delayed-def!types*)
-           `(push ',form *delayed-def!types*)
-           form))))
+     (deftype ,name ,@rest)
+     #+sb-xc-host
+     ,(let ((form `(sb!xc:deftype ,(uncross name) ,@rest)))
+        (if (boundp '*delayed-def!types*)
+            `(push ',form *delayed-def!types*)
+            form))))
 
 ;;; machinery to implement DEF!TYPE delays
 #+sb-xc-host
   (/show "done binding *DELAYED-DEF!TYPES*")
   (defun force-delayed-def!types ()
     (if (boundp '*delayed-def!types*)
-       (progn
-         (mapc #'eval *delayed-def!types*)
-         (makunbound '*delayed-def!types*))
-       ;; This condition is probably harmless if it comes up when
-       ;; interactively experimenting with the system by loading a
-       ;; source file into it more than once. But it's worth warning
-       ;; about it because it definitely shouldn't come up in an
-       ;; ordinary build process.
-       (warn "*DELAYED-DEF!TYPES* is already unbound."))))
+        (progn
+          (mapc #'eval *delayed-def!types*)
+          (makunbound '*delayed-def!types*))
+        ;; This condition is probably harmless if it comes up when
+        ;; interactively experimenting with the system by loading a
+        ;; source file into it more than once. But it's worth warning
+        ;; about it because it definitely shouldn't come up in an
+        ;; ordinary build process.
+        (warn "*DELAYED-DEF!TYPES* is already unbound."))))