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?

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. So, how the inspector get a lazy 
visualization of the it?

Greetings 


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to