[HN Gopher] Ephemerons explained ___________________________________________________________________ Ephemerons explained Author : kencausey Score : 14 points Date : 2022-06-08 14:13 UTC (1 days ago) (HTM) web link (lists.squeakfoundation.org) (TXT) w3m dump (lists.squeakfoundation.org) | stevedekorte wrote: | Neat idea. Would moving the dependents list to an instance | variable holding a weak array avoid the need for ephemerons here? | ghusbands wrote: | Where would the weak array be stored? Ephemerons are often used | when you can't attach data directly to either the key object or | the value object. It's the simplest efficient primitive that | lets you encode "if object A is reachable, object B also is" | without otherwise affecting the visibility of A (or B), | altering A, or needing multiple GC cycles to settle. | stevedekorte wrote: | On the instance. My understanding is that in this example, | the instance itself is the key and is only stored in a | dictionary owned by the related class. Maybe there are other | or broader use cases, but for this particular case, storing | dependents on the instance seems to (AFAICS) solve the | problem without adding complexity. | Diggsey wrote: | AKA, a single entry in a WeakKeyDictionary | ghusbands wrote: | Well, WeakMap implementations (like WeakKeyDictionary) that | don't delay GC significantly do indeed use ephemerons. | kwatsonafter wrote: | I clicked on this thinking it would be about philosophy but I was | delighted to be once again thrust into Squeakland. God bless you | Dan Ingalls! ___________________________________________________________________ (page generated 2022-06-09 23:00 UTC)