> 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
Oh cool, I didn't realize that. That is pretty neat :) On Wed, Jun 17, 2015 at 10:54 PM, Mark S. Miller <[email protected]> wrote: > 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 <[email protected]> > 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 >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

