Revert "hash-sets,hashtables: make it so the array backing the hash is non-empty"

This reverts commit 6f10f06c27.
char-rename
John Benediktsson 2016-10-06 11:18:41 -07:00
parent db46b16d10
commit 8f6ac5d457
3 changed files with 5 additions and 29 deletions

View File

@ -10,10 +10,7 @@ IN: hash-sets
TUPLE: hash-set
{ count array-capacity }
{ deleted array-capacity }
{ array array initial: {
T{ tombstone } T{ tombstone } T{ tombstone } T{ tombstone }
}
} ;
{ array array } ;
<PRIVATE

View File

@ -1,11 +1,5 @@
USING: accessors arrays assocs continuations fry hashtables
hashtables.private kernel make math memory namespaces sequences
tools.test ;
! hash@
{ 18 } [
77 20 f <array> hash@
] unit-test
USING: accessors assocs continuations fry hashtables kernel make
math namespaces sequences tools.test ;
{ H{ } } [ { } [ dup ] H{ } map>assoc ] unit-test
@ -188,14 +182,5 @@ H{ } "x" set
{ 1 } [ 2 "h" get at ] unit-test
! Previously this could break as hashtable new created a backing an
! empty backing array and the code assumed its length was > 0.
{ f f } [
compact-gc 77 hashtable new [ clone ] change-array at*
] unit-test
! Random test case
{ "A" } [
100 iota [ dup ] H{ } map>assoc 32 over
delete-at "A" 32 pick set-at 32 of
] unit-test
{ "A" } [ 100 iota [ dup ] H{ } map>assoc 32 over delete-at "A" 32 pick set-at 32 of ] unit-test

View File

@ -4,16 +4,10 @@ USING: accessors arrays assocs kernel kernel.private math
math.private sequences sequences.private slots.private vectors ;
IN: hashtables
! Required because the hashtable definition references tombstone.
<PRIVATE PRIVATE>
TUPLE: hashtable
{ count array-capacity }
{ deleted array-capacity }
{ array array initial: {
T{ tombstone } T{ tombstone } T{ tombstone } T{ tombstone }
}
} ;
{ array array } ;
<PRIVATE