X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fdefbangtype.lisp;h=d59b7c1294603a2d020b9110c0b0a545a72e8b48;hb=d720bc359f03734ccb9baf66cb45dc01d623f369;hp=f5f0b4e7ee5c4292468cbc34985590ac9d46af71;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/code/defbangtype.lisp b/src/code/defbangtype.lisp index f5f0b4e..d59b7c1 100644 --- a/src/code/defbangtype.lisp +++ b/src/code/defbangtype.lisp @@ -8,13 +8,10 @@ ;;;; files for more information. (in-package "SB!KERNEL") - -(file-comment - "$Header$") ;;;; 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 @@ -31,14 +28,14 @@ ;;; 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 @@ -48,12 +45,12 @@ (/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."))))