for storing package information for method for example. And this is not clear to me that method should know their selector so a compiled method could be a pure vm entity and a methodref its metaobject :)
Stef On Oct 31, 2009, at 6:55 PM, Adrian Lienhard wrote: > I think that a main reason for using MethodReference was to be able to > capture the class in which a method is installed and the method's > selector. Before method properties were introduced, a method did not > know its class and selector and hence all classes had to be searched > to find this out (the method was named #who returning an array with > the class and selector ;)). > > I don't see any reason why MethodReference would still be useful as > you can just reference a CompiledMethod directly. > > Adrian > > On Oct 31, 2009, at 13:59 , Igor Stasenko wrote: > >> 2009/10/29 Stéphane Ducasse <[email protected]>: >>> Hi >>> >>> just to share a ugly design point with MethodReference >>> >>> MethodReference are created using >>> >>> MethodReference class: aClass symbol: aSymbol >>> >>> however they store the class ***name*** >>> >>> and after when you query the class using either actualClass or >>> methodClass >>> you get the class that is in Smalltalk. >>> >>> So if like me you copied the class then you will get another version >>> of your class >>> even if this is the right one you use to create the >>> MethodReference.... >>> >>> One of these days we will have to check that >>> >> >> Yes, i wondering myself, what is the point to reference the methods >> in >> such style. >> The way, how actual class & its method get resolved makes it >> impossible to reference a method in >> arbitrary class object, especially one which is not installed into >> system dictionary. >> >> I think its lacking additional form of indirection, which should be >> an >> environment object who is responsible for >> delivering the method's source code along with resolving the class by >> its name. Without such indirection, i see no point in having a >> MethodReference per se, >> because you can always do the same thing by yourself , i.e. >> (Smalltalk >> at: #SomeClass) methodDict at: #someSelector. >> Without that, i see no point why i would want to use it, because it >> always points to same thing, no matter where i using the >> MethodReference. >> >>> Stef >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [email protected] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
