Mark S. Miller (2015-06-17T19:54:37.000Z)
The idea that (a shared Weak interning table of
immutable-objects-with-identity + WeakMaps makes gc observable) is not new.
The idea that (the shared interning tables of
immutable-objects-with-identity must therefore be strong) is not new.

What was new to me is the idea that

    Interning of a particular immutable-objects-with-identity in an
interning table can still safely be weakly interned, by marking that
object, at interning time, so all WeakMaps from then on hold it strongly

is new. At least to me.




On Wed, Jun 17, 2015 at 10:19 AM, Benjamin Gruenbaum <inglor at gmail.com>
wrote:

> > congratulations and THANK YOU! I learned something important reading
> your messages. The notion that we can preserve non-observability when
> making one thing a WeakMap iff we make all other WeakMaps be strong for
> those same objects is true, novel, and very surprising. I have been working
> on such concepts for decades and never come across anything like it.
>
> I apologize, I understand the problem with a weak registry forcing
> observable garbage collection in user code - that's nice but isn't this
> always the case with references to objects when an object pool/flyweight is
> used?
>
> Isn't this the same issue as `==` working on strings that have string
> objects interned but possibly GC'd (and precisely why Java never collects
> interned strings)?
>
>
>


-- 
    Cheers,
    --MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150617/052211f4/attachment-0001.html>
d at domenic.me (2015-07-07T01:43:10.405Z)
The idea that (a shared Weak interning table of
immutable-objects-with-identity + WeakMaps makes gc observable) is not new.
The idea that (the shared interning tables of
immutable-objects-with-identity must therefore be strong) is not new.

What was new to me is the idea that

**Interning of a particular immutable-objects-with-identity in an
interning table can still safely be weakly interned, by marking that
object, at interning time, so all WeakMaps from then on hold it strongly**

is new. At least to me.