2010/10/18 Oscar E A Callau <[email protected]> > > On Oct 18, 2010, at 14:44 , Mariano Martinez Peck wrote: > > On Mon, Oct 18, 2010 at 4:40 AM, Oscar E A Callau <[email protected]> > wrote: > >> Hello all, >> >> I was wondering what actually the inspector does in the following case: >> >> When you explore (or inspect) the expression: Class environment >> you get all classes in the system dictionary. If you navigate inside a >> class, for example AColorSelectorMorph, you can see all its properties and >> one of them is environment, if you go inside it, you get again all classes >> in the system dictionary. So, you can repeat this infinitely (or until you >> get run out of memory, I guess) >> >> Is it the behavior of a lazy inspector? If true, why I cannot inspect a >> mutually-recursive class definition, like this: >> >> Object subclass: #Foo >> instanceVariableNames: 'bar' >> classVariableNames: '' >> poolDictionaries: '' >> category: '' >> >> Foo>>initialize >> bar:= Bar new >> >> Object subclass: #Bar >> instanceVariableNames: 'foo' >> classVariableNames: '' >> poolDictionaries: '' >> category: '' >> >> Foo>>initialize >> bar:= Foo new >> > > here should be foo := Foo new. > > Anyway, you should be able to browse these classes without problems. > The problems is in instance creation. For example, if you evaluate: Foo > new. > > > Thanks Mariano. May be my question was not well explained. Of course if I > evaluate: Foo new, I get into a infinite loop. 1st question, when I'm > inspecting, I'm evaluating? >
hehehehe yes :) Just open a Transcript and inspect: Transcript show: 'welooo' and you will see 'welooo' in the transcript ;) What you actually inspect, is the result of the expression. > In the case that I mention above (Class enviroment) I got all classes in > the system and each of them has an environment, that is all classes, and so > on. Here, we have a infinite recursion. > I understand now. > So, how the inspector get a lazy visualization of the it? > > I have no idea. But in this case, #environment is a method, not an instVar as your case. Maybe in the case of the methods, they are only displayed when clicking on it (they just execute the compiledMethod). But this is just a guess. You should check the class Inspector and NewInspector. Cheers Mariano > Greetings > > > > _______________________________________________ > 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
