prototype multiple dispatch creates uncollectable garbage?

Lee Salzman lsalzman1 at cox.net
Tue Sep 7 17:00:09 PDT 2004


This would just be the same as having generic functions, i.e. won't
work. One easy way around this is just to GC roles/methods by whether or
not all role positions have some roles pointing to the method.

Lee

On Fri, Sep 03, 2004 at 12:02:15PM -0700, James McCartney wrote:
> 
> On Sep 3, 2004, at 11:34 AM, Brian T. Rice wrote:
> 
> >Probably the solution will have to involve a type of system-update 
> >notification system, kind of a feature which could be applied to have 
> >the effect of finalizers, as an example. Basically we'd need to 
> >trigger events when an object's map's roles are removed or otherwise 
> >invalidated. The problem is then that the system has to correctly 
> >identify which signature applies to the method. In general, method 
> >removal is tricky because there may be derived maps and so forth which 
> >also have the same signature. So there is a deficiency or gap in the 
> >things that the naive PMD configuration, but we're working on it. One 
> >factor that allows us not to address it is that our images can be 
> >built up rather easily, so we haven't been too concerned with removal 
> >yet.
> >
> 
> The solution that came to my mind was storing the methods and their 
> roles only in the first argument. This seems assymmetrical from a 
> storage point of view, but it is still equivalent from the point of 
> view of dispatch. Once you know the set of methods applicable to the 
> first argument, the methods applicable to all arguments can only be a 
> subset of this. So you can just search the parents of the other 
> arguments to see if they occur in the method roles. In other words, the 
> roles point to the objects instead of the objects pointing to the 
> roles. This means that if the first argument becomes collectable, all 
> of its methods become collectable, even those that specialize on 
> permanent objects. The other benefit of this is that objects like true, 
> false don't get junked up with lots of methods that they play lesser 
> roles in.
> 
> -- 
> --- james mccartney
> 




More information about the Slate mailing list