<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 24.05.2011 15:30, Chris Cunnington wrote:
    <blockquote cite="mid:4DDBB2E8.10307@gmail.com" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      <pre>On 24 May 2011 14:46, Chris Cunnington &lt;<a moz-do-not-send="true" href="http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project">smalltalktelevision at gmail.com</a>&gt; wrote:
&gt;<i> "But if the dependents are stored in some global dictionary from model to
</i>&gt;<i> sequence of dependents then the
</i>&gt;<i> reference from the global dictionary keeps both the model and the dependents
</i>&gt;<i> alive."
</i>

&gt; So, how presence of namespaces could make GC faster?

Well I'm hardly presuming to know, but if you have one dictionary acting as a global namespace. As far as I understood ephemerons, the 
problem is you have a single dictionary/namespace. Both the model and the view connect to an object. The model lets it go. The view
doesn't. So this is an object you want to collect, because the model has let it go. This means you have a phantom reference that tricks
the GC. That seems to me to be what ephemerons solve. I'm looking solely at the MVC Eliot mentioned, because shorn of context the 
description didn't mean anything to me. 
</pre>
    </blockquote>
    "An ephemeron holds onto some object via its key field in a
    quasi-weak manner such that the garbage collector will only consider
    the key live if it can be reached from the roots and not reachable
    by the ephemeron's other inst vars." &lt;- This is the key property
    of ephemerons. <br>
    <br>
    In the case of weak Announcement actionBlock subscription:<br>
    The block references it's enclosing methodContext.<br>
    The methodContext receiver instvar references the object whose
    method created the block.<br>
    <br>
    Thus, if you keep a traditional WeakAssociation object -&gt; block,
    (which you will if object is the subscriber) you will always have a
    strong reference to object from the value.<br>
    If this were an ephemeral association, the references to key stored
    in value are not traversed by the gc, and thus object is not marked
    in use/subsequently GC'd.<br>
    <br>
    Cheers,<br>
    Henry<br>
  </body>
</html>