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