diff options
author | Yves Orton <demerphq@gmail.com> | 2017-03-22 16:40:28 +0100 |
---|---|---|
committer | Yves Orton <demerphq@gmail.com> | 2017-04-23 11:44:17 +0200 |
commit | a3bf60fbb1f05cd2c69d4ff0a2ef99537afdaba7 (patch) | |
tree | dcd0cbf4be0ef56b631affe55f775c6ed94452a9 /perlvars.h | |
parent | 05f97de032fe95cabe8c9f6d6c0a5897b1616194 (diff) | |
download | perl-a3bf60fbb1f05cd2c69d4ff0a2ef99537afdaba7.tar.gz |
Add new hashing and "hash with state" infrastructure
This adds support for three new hash functions: StadtX, Zaphod32 and SBOX,
and reworks some of our hash internals infrastructure to do so.
SBOX is special in that it is designed to be used in conjuction with any
other hash function for hashing short strings very efficiently and very
securely. It features compile time options on how much memory and startup
time are traded off to control the length of keys that SBOX hashes.
This also adds support for caching the hash values of single byte characters
which can be used in conjuction with any other hash, including SBOX, although
SBOX itself is as fast as the lookup cache, so typically you wouldnt use both
at the same time.
This also *removes* support for Jenkins One-At-A-Time. It has served us
well, but it's day is done.
This patch adds three new files: zaphod32_hash.h, stadtx_hash.h,
sbox32_hash.h
Diffstat (limited to 'perlvars.h')
-rw-r--r-- | perlvars.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/perlvars.h b/perlvars.h index 884d57c504..bdc8467902 100644 --- a/perlvars.h +++ b/perlvars.h @@ -248,6 +248,12 @@ PERLVAR(G, malloc_mutex, perl_mutex) /* Mutex for malloc */ PERLVARI(G, hash_seed_set, bool, FALSE) /* perl.c */ PERLVARA(G, hash_seed, PERL_HASH_SEED_BYTES, unsigned char) /* perl.c and hv.h */ +#if defined(PERL_HASH_STATE_BYTES) +PERLVARA(G, hash_state, PERL_HASH_STATE_BYTES, unsigned char) /* perl.c and hv.h */ +#endif +#if defined(PERL_USE_SINGLE_CHAR_HASH_CACHE) +PERLVARA(G, hash_chars, (1+256) * sizeof(U32), unsigned char) /* perl.c and hv.h */ +#endif /* The path separator can vary depending on whether we're running under DCL or * a Unix shell. |