On Mar 21, 2010, at 10:51 PM, Stéphane Ducasse wrote:

>>>> Well... it is needed for the swapping out of classes. If we remove 
>>>> #isInMemory, we should also remove the whole image segment stub mechanism 
>>>> because it becomes useless without the isInMemory protection. 
> 
> what I was thinking to remove is the use of isInMemory from 
> SystemDictionary>>allClasses and friends.
> Now I do not get 100% what you are saying. 
> Do you say that all the queries should be protected against bringing back 
> classes on disc?

The reason why the #isInmemory checks are there at all is the following:

        -> they used imageSegements (and before, the ObjectOut stuff) to swap 
out objecs to disk
        -> Now if you access the class, it is loaded again.
        -> doing anything that looks at "all classes" would load the classes. 
(all of them)
        -> this includes things like "Object subclasses". or "Smalltalk 
classNames".
        -> e.g. Openign a browser would load all classes.
        -> so we put #isInMemory everywhere
        -> this of course means that #subclasses would just return those that 
by chance are
             in memory... I don't understand how that can work. Honestly :-)
        
I think we shoud remove all that stuff and do it "for real". c.f. Loom.

        Marcus

--
Marcus Denker  -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.


_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to