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

Reply via email to