At first glance, that the failure code only sees "two" things when it should see "eight" seems to be problematic.

Perhaps the primitive insists on hashing byte objects, and there is a distinction between "byte" objects and "word" objects (whatever "word" means, presumably a constant width integer across all platforms). I haven't looked at the code.

From my perspective... back in the day that primitive used to hash bytes, and from what I saw here the failure code is hashing multi-byte things. If all of these observations are correct, then I'd say the failure code isn't doing what the primitive is doing, and in doing so it's introducing a lot of collisions that I'd like to believe the intended hash function wouldn't produce.

Andres.

On 12/18/16 23:05 , Martin McClure wrote:
On 12/18/2016 02:29 AM, Andres Valloud wrote:
The primitive and the primitive failure code should behave the same?

You think the primitive is faulty? I haven't looked at the primitive
code, but it just fails when given a Float. From the name, I'd guess
that it's designed for a byte object. The failure code certainly is.

A new primitive designed for word objects, or new code such as I gave
earlier (though ugly) would work, though.

Regards,

-Martin


Reply via email to