0.8.16.6:
[sbcl.git] / src / code / package.lisp
index bc7ca27..66c9242 100644 (file)
 ;;;   the entry is unused. If it is one, then it is deleted.
 ;;;   Double-hashing is used for collision resolution.
 
-(sb!xc:deftype hash-vector () '(simple-array (unsigned-byte 8) (*)))
+(def!type hash-vector () '(simple-array (unsigned-byte 8) (*)))
 
-(sb!xc:defstruct (package-hashtable
-                   (:constructor %make-package-hashtable
-                                 (table hash size &aux (free size)))
-                   (:copier nil))
+(def!struct (package-hashtable
+            (:constructor %make-package-hashtable
+                          (table hash size &aux (free size)))
+            (:copier nil))
   ;; The g-vector of symbols.
   (table (missing-arg) :type simple-vector)
   ;; The i-vector of pname hash values.
   ;; shadowing symbols
   (%shadowing-symbols () :type list)
   ;; documentation string for this package
-  (doc-string nil :type (or simple-base-string null)))
+  (doc-string nil :type (or simple-base-string null))
+  ;; package locking
+  #!+sb-package-locks
+  (lock nil :type boolean)
+  #!+sb-package-locks
+  (%implementation-packages nil :type list))
 \f
 ;;;; iteration macros
 
              (error 'simple-program-error
                     :format-control
                     "At least one of :INTERNAL, :EXTERNAL, or ~
-                     :INHERITED must be supplied."))
+                      :INHERITED must be supplied."))
           ,(dolist (symbol symbol-types)
              (unless (member symbol '(:internal :external :inherited))
                (error 'program-error