On Wed, Feb 6, 2013 at 11:07 AM, Simon King <[email protected]> wrote: > PS: > > On 2013-02-06, Simon King <[email protected]> wrote: >> But I wonder: It is a typical use case to add elements from A and B >> frequently and not only once. Do we really want that the parent C may be >> constructed repeatedly, unless the user keeps a manual strong reference >> to C or disables garbage collection?
It should be noted that it would only be reconstructed after each garbage collection, not (likely) on every arithmetic operation. We could also mitigate this by keeping a live list of the last N created parents. > I think that keeping both A and B alive should prevent C from garbage > collection, but keeping C alive should *not* prevent A and B from > garbage collection. With #14058, it is the other way around. The hard part is preventing A and B from keeping each other alive. > Would it perhaps work to only keep a weak reference to the domains of > (coercion and conversion) maps? After all, the purpose of a map is to > map elements of the domain. But if we have elements of the domain, then > the domain is kept alive, and hence only keeping a weak reference from > map to domain is no problem. I'd like to avoid maps that may have garbage collected domains. I am also wary of how easy it would be to accidentally store any references to (elements of) the domain in the implementation; how badly would that mess things up? - Robert -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-devel?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
