0.9.2.38: thread cleanup, paranoid
[sbcl.git] / src / code / package.lisp
index bc7ca27..80455ac 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.
@@ -73,7 +73,7 @@
   #!+sb-doc
   "the standard structure for the description of a package"
   ;; the name of the package, or NIL for a deleted package
-  (%name nil :type (or simple-base-string null))
+  (%name nil :type (or simple-string null))
   ;; nickname strings
   (%nicknames () :type list)
   ;; packages used by this package
   ;; 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-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