Re: Fwd: [srfi-126] Draft #2. (#1) Takashi Kato (10 Sep 2015 09:11 UTC)
Re: Fwd: [srfi-126] Draft #2. (#1) taylanbayirli@xxxxxx (10 Sep 2015 12:43 UTC)
Re: Fwd: [srfi-126] Draft #2. (#1) John Cowan (10 Sep 2015 13:25 UTC)
Re: Fwd: [srfi-126] Draft #2. (#1) Takashi Kato (10 Sep 2015 19:29 UTC)
Re: Fwd: [srfi-126] Draft #2. (#1) taylanbayirli@xxxxxx (10 Sep 2015 20:03 UTC)
Re: Fwd: [srfi-126] Draft #2. (#1) John Cowan (10 Sep 2015 21:10 UTC)
Re: Fwd: [srfi-126] Draft #2. (#1) John Cowan (10 Sep 2015 20:21 UTC)

Re: Fwd: [srfi-126] Draft #2. (#1) Takashi Kato 10 Sep 2015 19:28 UTC

 > Does that answer the question?  Feel free to elaborate.
Yup :)
I was just wondering if more than 1 weak-key hashtable contains the same
key, then it would be a cross reference and GC wouldn't collect it. But
both has weak reference so they should to be collected.

 > If the GC runs first, the stale entries of A are removed and don't
 > even get into B; if the copy runs first, then all entries get into B,
 > but if after that they still don't have any non-weak references to
 > them, they then get collected.
So in this case, if GC runs after the copy, then all entries should
remain until it's removed from B (because B has non-weak reference of
A's keys). Am I correct?

 >> - hashtable-intern!: it would be convenient that default-proc takes
 >>   the key as its argument so that users can derive values from the
 >>   key.
 > In that case they can just let-bind the key (most often it will
 > already be bound to a variable). If the one argument were forced,
 > then users who want to use a nullary procedure would need to wrap it
 > in a lambda to ignore the one argument. Do you have any data or
 > experience on which use-case is more common?
Honestly, haven't got any use-case for this. Only in my mind, this
procedure would be useful to initialise a hashtable so if values
can be derived from keys, then it might be better not to create a
thunk each call.

 > I like this, but do you have any data or experience on how often it's
 > really used?  I'd like to get a bit more input before adding another
 > procedure.
Again, haven't got much experience yet. But I think this can be an
alternative of alist -> alist map since there's alist->hashtable in
this SRFI. One of the reasons why I use alist instead of hashtable is
because of lack of hashtable operation procedures so why not hashtable
-> hashtable?

Other trivial things:
- There's hashtable-keys but the list version is hashtable-key-list
   (without 's'). Is this intentional? The same goes hashtable-values.
- What's the minimum support of <weakness symbol>s? Seems weak-key,
   weak-value, ephemeral-key and ephemeral-value but I'm not sure if
   I'm right (couldn't read it from the SRFI properly).

Cheers,

_/_/
Takashi Kato
E-mail: xxxxxx@ymail.com