Re: hash functions should not be required to accept two arguments taylanbayirli@xxxxxx 10 Nov 2015 14:26 UTC

Alex Shinn <xxxxxx@gmail.com> writes:

>     > The keys could be fixnums. Since we can use negative fixnums
>     > we already have more possible keys than the maximum number
>     > of buckets.
>
>     That's a consequence of SRFI 126's arbitrary restriction of hash
>     values to non-negative integers.
>
> This is the same restriction in R6RS, libraries section 13.1:
>
> Hash-function should accept a key as an argument and
> should return a non-negative exact integer object.

Oh, so it wasn't my mistake after all.  (It's a pain having hash
functions defined in three separate places in the specification...)

Now I'm conflicted on whether to lift that limitation in SRFI-126.  What
does everyone think?

It sort of breaks backwards compatibility since code written for R6RS
might rely on equal-hash/etc. returning a non-negative integer.  I'll
add the limitation back into SRFI-126 for now.

If anyone has a strong opinion on that the limitation should be lifted,
please say.

Taylan