On Sun, Sep 27, 2015 at 2:31 AM, Taylan Ulrich Bayırlı/Kammer <xxxxxx@gmail.com> wrote:
I felt like breaking the silence a bit, so...

Which of SRFI-125 and SRFI-126 does the community prefer so far, and for
what reasons?

Your primary argument against SRFI-69 is the exposure of the
eq?/eqv? hash functions, which has been addressed by SRFI-125.

The other differences from SRFI-125 are removal of the dependency
on SRFI-114, a different set of utility functions, the introduction
of weak tables, and the specification of an external representation.

I think SRFI-114 is interesting but strange, and not well supported
to an API that is only interested in hash tables.

I would rather leave weak references to an "advanced" hash tables
SRFI.  If you want to keep it, you should research how easy it is to
implement in existing Schemes.  Optional ephemeron semantics
makes me nervous.

I don't want the bimaps in SRFI-125, but otherwise many of the
functions you omit in SRFI-126 are useful.  You should have a
-fold operation, and -push! and -inc! are quite useful.  Neither
API provides cursors, which are useful for loop macros.

Drop the external representation.  We can handle this uniformaly
in something like SRFI-10.

I prefer SRFI-69 "hash-table" to R6RS "hashtable".

Neither SRFI addresses my concerns regarding the signature
of the hash functions themselves.  I feel the signature should be

  (hash object salt bound)

where bound is only a guideline.  If you omit bound, the SRFI
must specify the range of values expected by a hash function
(e.g. positive fixnums), and make clear the repercussions
(e.g. in practice you cannot expect to be able to create hash
tables taking a substantial fraction of memory, or use these
functions for large disk-based hash tables).

The salt is necessary to defend against well-known security
attacks, and also allows flexibility in hash-table implementations
such as double or cuckoo hashing, or use of the same hash
functions in bloom filters, etc.

Note addressing either of these changes to the hash function
signature makes it impossible to use SRFI-114.

-- 
Alex