On Friday, 15 February 2013 at 02:26:31 UTC, Adam D. Ruppe wrote:
druntime has a hash implementation in module rt.util.hash that looks pretty useful, but isn't publicaly exported by the library anywhere.

Does phobos or druntime offer a public hash function like that? If no, can it expose this one?

This might be a good time to bring up something that was bothering me when I examined the current druntime hash implementation. Just out of curiosity I was researching hash functions, and I found the hash function expert Bob Jenkins' FAQ about hashes:

http://burtleburtle.net/bob/hash/hashfaq.html

He says specifically that any hash function requiring a modulo prime at the end is bad (inefficient), but if I'm not mistaken, the druntime does just that. At line 50 of the associative array module there is a list of primes, and I believe the implementation assumes them to be necessary.

https://github.com/D-Programming-Language/druntime/blob/master/src/rt/aaA.d

I don't know enough to be sure this is a problem. There might be some other reason for the modulo prime, but I'd like to put my mind at ease on it.

Reply via email to