Re: A proposed new approach to bounds vs. salt John Cowan 03 Jan 2016 22:26 UTC

Alex Shinn scripsit:

> Performance matters, so make this syntax.

I think it's fine for it to be part of trivial compile-time folding.

> A likely idiom
> for performance conscious 3rd-party hash functions might
> become:
>
>   (define my-hash
>     (if (fixnum? (hash-default-bound))
>         (lambda (obj) ... hash w/ fixnum arith ...)
>         (lambda (obj) ... hash w/ general arith ...)))

Yes, that's plausible.

> Regarding using the sign of an optional bound argument as
> a semantic toggle, I agree with Taylan.  We should be removing
> warts, not adding new ones.  Not even in the core language did
> we do anything so strange in the name of backwards compatibility.

True.

> Why the sudden obsession with compatibility at the expense of
> clean design just for hash tables?

R7RS-small was all about compatibility.  I'm trying to keep the
number of backward incompatible changes for R7RS-large as
small as possible too.

Hash tables are a can of worms, but they have to be opened and
served up somehow.

--
John Cowan          http://www.ccil.org/~cowan        xxxxxx@ccil.org
I must confess that I have very little notion of what [s. 4 of the British
Trade Marks Act, 1938] is intended to convey, and particularly the sentence
of 253 words, as I make them, which constitutes sub-section 1.  I doubt if
the entire statute book could be successfully searched for a sentence of
equal length which is of more fuliginous obscurity. --MacKinnon LJ, 1940