X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fpackage.lisp;h=59f2f24f22e51f34f7d8a5234a9c69b7f9ca7bef;hb=15d6e7c9a2c3234f95dfe278046fa2fee1b0c007;hp=bc7ca27500747e69e1d6f9e9299b2e6d4fb2342a;hpb=c41cb4c87eae7b04f844dca5f7edb5086c5d2d68;p=sbcl.git diff --git a/src/code/package.lisp b/src/code/package.lisp index bc7ca27..59f2f24 100644 --- a/src/code/package.lisp +++ b/src/code/package.lisp @@ -30,12 +30,12 @@ ;;; 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. @@ -99,7 +99,12 @@ ;; 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)) ;;;; iteration macros