The attached patch fixes bug 207 by providing an alternative SB-INT:MIX
function. A couple of notes:
1. I have tested this at a reasonable level with the code listed in bug
207 and a few others. Things seem to do quite well, functionally.
2. The code is parameterized to compile to a 32-bit and 64-bit version.
Two versions are needed to achieve avalanche in the mixing with the
different word sizes. I don't have a 64-bit machine, however, so it
would be great if somebody with an AMD64 or Alpha could run a test and
confirm that this works correctly.
3. This mixing algorithm is slower than the previous algorithm, which
was pretty simplistic, by about a factor of two. If you're hashing a lot
of compound data, you may see a slowdown, but that is probably more than
made up for with the better hash values and fewer resulting collisions.
If you find any pathological cases, let me know.
Dave Roberts <ldave@...>