X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fglobaldb.lisp;h=7e13d0f5c1eb4763836830d13ca0d906a4d6beb0;hb=1394636aef3b85be4fb6ef4a5424115aa2022d99;hp=c960c697f6d2b2e0a8c1ef6e304af60d9c694124;hpb=c713eb2b521b048ff2c927ec52b861787d289f85;p=sbcl.git diff --git a/src/compiler/globaldb.lisp b/src/compiler/globaldb.lisp index c960c69..7e13d0f 100644 --- a/src/compiler/globaldb.lisp +++ b/src/compiler/globaldb.lisp @@ -99,7 +99,8 @@ ;;; At run time, we represent the type of info that we want by a small ;;; non-negative integer. -(defconstant type-number-bits 6) +(eval-when (:compile-toplevel :load-toplevel :execute) + (defconstant type-number-bits 6)) (deftype type-number () `(unsigned-byte ,type-number-bits)) ;;; Why do we suppress the :COMPILE-TOPLEVEL situation here when we're @@ -1203,11 +1204,14 @@ (define-info-class :type) ;;; the kind of type described. We return :INSTANCE for standard types -;;; that are implemented as structures. +;;; that are implemented as structures. For PCL classes, that have +;;; only been compiled, but not loaded yet, we return +;;; :FORTHCOMING-DEFCLASS-TYPE. (define-info-type :class :type :type :kind - :type-spec (member :primitive :defined :instance nil) + :type-spec (member :primitive :defined :instance + :forthcoming-defclass-type nil) :default nil) ;;; the expander function for a defined type @@ -1244,7 +1248,7 @@ ;;; If this is a class name, then the value is a cons (NAME . CLASS), ;;; where CLASS may be null if the class hasn't been defined yet. Note ;;; that for built-in classes, the kind may be :PRIMITIVE and not -;;; :INSTANCE. The the name is in the cons so that we can signal a +;;; :INSTANCE. The name is in the cons so that we can signal a ;;; meaningful error if we only have the cons. (define-info-type :class :type