On Fri, Oct 16, 2015 at 10:34 PM, Taylan Ulrich Bayırlı/Kammer <xxxxxx@gmail.com> wrote:

I think implementation compatibility is very important, because there is
already a huge disappointment in the RnRS among some parties, and making
incompatible changes for questionable benefit won't improve that case.

OK, by that argument, my proposal can, as stated many times,
be trivially and portably implemented in pure R7RS Scheme on
top of either SRFI 69 or R6RS hash tables.

Your proposal, on the other hand, requires weak tables, which
many Schemes may never implement, and requires changes to
the core reader and writer, which implementors are generally
reluctant to do.

So by your own argument my proposal is clearly better.

The fact that pretty much no existing Scheme implementation does
anything like this should hint us that it's of questionable benefit.

This is just pointing out the fact that pretty much no existing
Scheme implementation has secure hash tables.  Except for
Chicken, from which perspective we're just making an implicit
value an explicit parameter.  This is often a good practice.

>> [...] An env variable is a poor way to handle this, since it places
>> additional restrictions on the test running framework (e.g. there is
>> currently no way in Snow to specify env vars to be set when running
>> tests).

I see.  I would say that's a limitation of Snow though, or rather R7RS,
since there's no 'set-environment-variable' and no 'system*'.

Snow is just a tool, and the language it's written in supports
both of these, and clearly it must be using something like
`system' to run the tests for the target implementation.

The difficulty lies in modifying the Snow packaging specification
to provide a set of environment variables which must be set in
running the tests.  In general, _any_ tool will need some out-of-
band information on these variables.  You can't simply set the
env vars from Scheme within the tests themselves, because by
that time the hash-table library has already been loaded, and
the default hash functions already constructed.

-- 
Alex