Skip to content

Commit

Permalink
1.0.39.18: Use SB-VM:WORD in (DEFSTRUCT HASH-TABLE).
Browse files Browse the repository at this point in the history
  • Loading branch information
Tobias C. Rittweiler committed Jun 20, 2010
1 parent 8e3fdbd commit 5219114
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 9 deletions.
13 changes: 5 additions & 8 deletions src/code/hash-table.lisp
Expand Up @@ -24,12 +24,12 @@
;; values: the index hashing and T if that might change with the
;; next GC.
(hash-fun (missing-arg) :type function :read-only t)
;; how much to grow the hash table by when it fills up. If an index,
;; How much to grow the hash table by when it fills up. If an index,
;; then add that amount. If a floating point number, then multiply
;; it by that.
(rehash-size (missing-arg) :type (or index (single-float (1.0)))
:read-only t)
;; how full the hash table has to get before we rehash
;; How full the hash table has to get before we rehash
(rehash-threshold (missing-arg) :type (single-float (0.0) 1.0) :read-only t)
;; The number of entries before a rehash, just one less than the
;; size of the next-vector, hash-vector, and half the size of the
Expand All @@ -54,21 +54,18 @@
(cache nil :type (or null index))
;; The index vector. This may be larger than the hash size to help
;; reduce collisions.
(index-vector (missing-arg)
:type (simple-array (unsigned-byte #.sb!vm:n-word-bits) (*)))
(index-vector (missing-arg) :type (simple-array sb!vm:word (*)))
;; This table parallels the KV vector, and is used to chain together
;; the hash buckets and the free list. A slot will only ever be in
;; one of these lists.
(next-vector (missing-arg)
:type (simple-array (unsigned-byte #.sb!vm:n-word-bits) (*)))
(next-vector (missing-arg) :type (simple-array sb!vm:word (*)))
;; This table parallels the KV table, and can be used to store the
;; hash associated with the key, saving recalculation. Could be
;; useful for EQL, and EQUAL hash tables. This table is not needed
;; for EQ hash tables, and when present the value of
;; +MAGIC-HASH-VECTOR-VALUE+ represents EQ-based hashing on the
;; respective key.
(hash-vector nil :type (or null (simple-array (unsigned-byte
#.sb!vm:n-word-bits) (*))))
(hash-vector nil :type (or null (simple-array sb!vm:word (*))))
;; Used for locking GETHASH/(SETF GETHASH)/REMHASH
(spinlock (sb!thread::make-spinlock :name "hash-table lock")
:type sb!thread::spinlock :read-only t)
Expand Down
2 changes: 1 addition & 1 deletion version.lisp-expr
Expand Up @@ -17,4 +17,4 @@
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
"1.0.39.17"
"1.0.39.18"

0 comments on commit 5219114

Please sign in to comment.