On Mar 21, 2010, at 23:18 , Stéphane Ducasse wrote:

> 
> On Mar 21, 2010, at 10:59 PM, Marcus Denker wrote:
> 
>> 
>> 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
> 
> Yes I know that :)
> Now I was wondering what adrian meant.

In addition to what Marcus said above I meant that when we remove isInMemory we 
should also remove the swapping code that is part of image segments (e.g., the 
class ImageSegmentRootStub and various methods in ImageSegment) because it 
cannot work anymore and hence is useless.

Cheers,
Adrian


_______________________________________________
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