Commit Graph

76 Commits (b2709eeb419eef22a889b07eaafd2867b37e28a6)

Author SHA1 Message Date
John Benediktsson 8f6ac5d457 Revert "hash-sets,hashtables: make it so the array backing the hash is non-empty"
This reverts commit 6f10f06c27.
2016-10-06 11:18:41 -07:00
John Benediktsson db46b16d10 Revert "hash-sets,hashtables: improved key@ word"
This reverts commit 70c7f9e029.
2016-10-06 11:18:35 -07:00
Björn Lindqvist 6f10f06c27 hash-sets,hashtables: make it so the array backing the hash is non-empty
Commit 70c7f9e029 made it so the code
assumes the array is not empty. But it can be empty if the hashtable is
created using "hashtable new" and then it can crash because it reads
uninitialized memory. Setting the initial of the array slot to
a valid hash-array should fix that.
2016-10-05 19:19:39 +02:00
Björn Lindqvist 70c7f9e029 hash-sets,hashtables: improved key@ word
Don't need to check the length of the backing array because it can be
assumed to be > 0. That should make hash lookups a little faster.
2016-09-25 20:07:08 +02:00
Björn Lindqvist 91f335b424 style thing: indenting tuple slots 2016-05-31 03:37:23 +02:00
Doug Coleman 92afdc3ad0 hashtables: rename ((tombstone)) to +tombstone+, ((empty)) to +empty+ 2016-03-25 03:13:27 -07:00
John Benediktsson b75def3bfb hashtables: remove 2hashtable (not really used). 2016-03-03 14:38:16 -08:00
Doug Coleman 3c48141689 hashtables: add a 2hashtable word that is like associate but for two key/value pairs. 2016-03-02 17:17:58 -08:00
John Benediktsson ceb75057da change ERROR: words from throw-foo back to foo. 2015-08-13 16:13:05 -07:00
Doug Coleman 02008979d9 factor: Change ERROR: foo ; to define ``throw-foo`` instead of having ``foo`` throw implicitly. The old ``foo`` still throws implicitly because this is a big change to get right in one patch, but it should be removed soon. 2015-08-12 15:26:18 -05:00
John Benediktsson 6127bb8548 hashtables: make sure capacity and growth use same load factor. 2015-07-14 18:32:40 -07:00
John Benediktsson 5083bdad33 Revert "hashtables: make hash-combine use fixnum primitives."
This reverts commit 390dd23261.
2015-06-11 20:33:47 -07:00
John Benediktsson 95c34c41b7 hashtables: remove the 2hashcode word for now. 2015-06-09 16:46:02 -07:00
John Benediktsson 390dd23261 hashtables: make hash-combine use fixnum primitives. 2015-06-09 16:30:04 -07:00
John Benediktsson 6210edf76e words: change word hash to do less work. 2015-06-09 16:08:48 -07:00
Doug Coleman 632ee276e1 core: Remove trailing whitespace. 2014-10-31 01:14:31 -07:00
John Benediktsson fb9c5f9aee hashtables: slightly faster associate and collect-pairs. 2014-02-06 22:39:43 -08:00
John Benediktsson 6b0e72a475 hashtables: simplify <hashtable>. 2014-01-08 09:56:00 -08:00
John Benediktsson 260abd3d7c hashtables: use >= in hash-large?. 2014-01-05 23:08:53 -08:00
John Benediktsson e3ea3ac140 hashtables: cleanup duplicate code. 2013-04-06 21:36:39 -07:00
John Benediktsson a58c8ecc03 hashtables: faster keys and values on hashtables. 2013-04-06 21:20:07 -07:00
John Benediktsson 5d11ada701 hashtables: remove stack effects from generic methods. 2013-03-23 16:58:30 -07:00
John Benediktsson 11e86ec53c hashtables: faster grow-hash by not calling >alist. 2013-03-20 23:02:40 -07:00
John Benediktsson eca5253017 hashtables: reuse (rehash). 2013-03-07 22:01:50 -08:00
John Benediktsson f2eedb67ec hashtables: slightly faster grow logic. 2013-03-07 20:51:46 -08:00
John Benediktsson 5487480126 core: cleanup USING lists. 2013-03-05 10:34:47 -08:00
John Benediktsson 247600df71 hashtables: use "4drop" instead of "drop 3drop". 2012-10-23 12:26:14 -07:00
John Benediktsson 28f36a25b0 Revert "core: >array, >byte-vector, >hashtable, >vector should be inline."
This reverts commit cd6026e70e.
2012-10-05 08:30:41 -07:00
John Benediktsson 700cee5afd core: >array, >byte-vector, >hashtable, >vector should be inline. 2012-09-28 19:31:14 -07:00
Doug Coleman 8637c1c012 hashtables: Enforce shape on hashtable literals. Fixes #568. 2012-08-24 15:11:03 -07:00
John Benediktsson 8b2ae0a717 hashtables: reduce default size of associate. 2012-08-02 21:43:37 -07:00
Doug Coleman b656c8ef9e hashtables: Revert size of associate, but keep inlined. ~10s speedup on bootstrap 2012-07-20 09:30:37 -07:00
John Benediktsson 00056e2ea7 hashtables: use H{ } clone in associate, make it inline. 2012-07-20 09:04:51 -07:00
Joe Groff 943596575a use radix literals 2011-11-23 19:03:40 -08:00
Slava Pestov 29bc075bc7 hashtables: small cleanup 2011-11-12 15:35:51 -08:00
John Benediktsson e29c4589c4 hashtables: allow re-using deleted tombstones. Fixes #381. 2011-11-10 13:05:51 -08:00
John Benediktsson baceee8c50 hashtables: moving hash-combine to hashtables. 2011-10-02 20:29:49 -07:00
John Benediktsson 3b72b641e0 Fix help-lint errors for recent hashtable changes. 2011-10-02 17:49:11 -07:00
John Benediktsson 4ad888b530 hashtables: switch to quadratic probing. 2011-10-02 13:49:45 -07:00
John Benediktsson 6c2c5c0a82 assocs: use assoc-size to short-circuit equality checks. 2011-01-05 17:28:06 -08:00
Slava Pestov 627295f094 Language change: tuple slot setter words with stack effect ( value object -- ) are now named FOO<< instead of (>>FOO) 2010-05-06 17:21:02 -04:00
Slava Pestov 11174a7ffe hashtables: fix indentation 2009-11-14 02:01:30 -06:00
Slava Pestov 08e7d25dc5 change-each -> map!, deep-change-each -> deep-map! 2009-10-27 22:32:56 -05:00
Slava Pestov 030b1b816c Add inline declarations for various assorted methods 2009-08-17 22:32:21 -05:00
Slava Pestov 688cd9b79b hashtables: use each-integer instead of iota ... each in >alist 2009-05-06 15:30:30 -05:00
Doug Coleman 0ad6d1fb7b add a few usages of iota, remove most 1+ and 1- from core 2009-05-01 19:58:24 -05:00
Slava Pestov 932d44cab8 Small speedup for code using H{ } clone and with-scope 2009-03-31 08:16:04 -05:00
Slava Pestov f34c14a0f5 Remove some usages of tuck 2009-01-23 18:20:47 -06:00
Slava Pestov de3a4f5462 Change some dup ... swap to bi and keep 2008-12-15 21:20:32 -06:00
Slava Pestov bac338663d Mark a word inline 2008-12-06 15:31:35 -06:00