How to access classVariable access with the browser

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
18 messages Options
Reply | Threaded
Open this post in threaded view
|

How to access classVariable access with the browser

Stéphane Ducasse
when you are on the class side if you method has a classVariable and  
you want to know who access it.
Then chase variables show you the class instance varaibles but not the  
classVariable.

Toooooo bad.

Stef


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Lukas Renggli
2009/11/7 Stéphane Ducasse <[hidden email]>:
> when you are on the class side if you method has a classVariable and
> you want to know who access it.
> Then chase variables show you the class instance varaibles but not the
> classVariable.

Yes, that's a bug. When you are on the class side, the class variables
of the meta-class are displayed. Also the labeling of the window is
suboptimal. I fixed these issues. Let me know if this is better now.

Gofer new
       squeaksource: 'rb';
       addPackage: 'AST-Core';
       addPackage: 'Refactoring-Core';
       addPackage: 'Refactoring-Spelling';
       renggli: 'omnibrowser';
       addPackage: 'OmniBrowser';
       addPackage: 'OB-Standard';
       addPackage: 'OB-Morphic';
       addPackage: 'OB-Shout';
       addPackage: 'OB-Refactory';
       addPackage: 'OB-Regex';
       addPackage: 'OB-SUnitIntegration';
       renggli: 'unsorted';
       addPackage: 'Shout';
       addPackage: 'RoelTyper';
       addPackage: 'ECompletion';
       addPackage: 'ECompletionOmniBrowser';
       load;
       recompile

Lukas


--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Stéphane Ducasse
Lukas

I tried but it did not work.
I tried on NetNameResolver
to see how useOldNetwork is set.

Stef


On Nov 7, 2009, at 6:05 PM, Lukas Renggli wrote:

> 2009/11/7 Stéphane Ducasse <[hidden email]>:
>> when you are on the class side if you method has a classVariable and
>> you want to know who access it.
>> Then chase variables show you the class instance varaibles but not  
>> the
>> classVariable.
>
> Yes, that's a bug. When you are on the class side, the class variables
> of the meta-class are displayed. Also the labeling of the window is
> suboptimal. I fixed these issues. Let me know if this is better now.
>
> Gofer new
>       squeaksource: 'rb';
>       addPackage: 'AST-Core';
>       addPackage: 'Refactoring-Core';
>       addPackage: 'Refactoring-Spelling';
>       renggli: 'omnibrowser';
>       addPackage: 'OmniBrowser';
>       addPackage: 'OB-Standard';
>       addPackage: 'OB-Morphic';
>       addPackage: 'OB-Shout';
>       addPackage: 'OB-Refactory';
>       addPackage: 'OB-Regex';
>       addPackage: 'OB-SUnitIntegration';
>       renggli: 'unsorted';
>       addPackage: 'Shout';
>       addPackage: 'RoelTyper';
>       addPackage: 'ECompletion';
>       addPackage: 'ECompletionOmniBrowser';
>       load;
>       recompile
>
> Lukas
>
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Lukas Renggli
NetNameResolver displays correctly for me. Are you sure you used the
right browser? :

SystemBrowser default: OBSystemBrowserAdaptor.
OBSystemBrowser openOnClass: NetNameResolver class.

2009/11/7 Stéphane Ducasse <[hidden email]>:

> Lukas
>
> I tried but it did not work.
> I tried on NetNameResolver
> to see how useOldNetwork is set.
>
> Stef
>
>
> On Nov 7, 2009, at 6:05 PM, Lukas Renggli wrote:
>
>> 2009/11/7 Stéphane Ducasse <[hidden email]>:
>>> when you are on the class side if you method has a classVariable and
>>> you want to know who access it.
>>> Then chase variables show you the class instance varaibles but not
>>> the
>>> classVariable.
>>
>> Yes, that's a bug. When you are on the class side, the class variables
>> of the meta-class are displayed. Also the labeling of the window is
>> suboptimal. I fixed these issues. Let me know if this is better now.
>>
>> Gofer new
>>       squeaksource: 'rb';
>>       addPackage: 'AST-Core';
>>       addPackage: 'Refactoring-Core';
>>       addPackage: 'Refactoring-Spelling';
>>       renggli: 'omnibrowser';
>>       addPackage: 'OmniBrowser';
>>       addPackage: 'OB-Standard';
>>       addPackage: 'OB-Morphic';
>>       addPackage: 'OB-Shout';
>>       addPackage: 'OB-Refactory';
>>       addPackage: 'OB-Regex';
>>       addPackage: 'OB-SUnitIntegration';
>>       renggli: 'unsorted';
>>       addPackage: 'Shout';
>>       addPackage: 'RoelTyper';
>>       addPackage: 'ECompletion';
>>       addPackage: 'ECompletionOmniBrowser';
>>       load;
>>       recompile
>>
>> Lukas
>>
>>
>> --
>> Lukas Renggli
>> http://www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Dale
In reply to this post by Stéphane Ducasse

----- "Stéphane Ducasse" <[hidden email]> wrote:

| Lukas
|
| I tried but it did not work.
| I tried on NetNameResolver
| to see how useOldNetwork is set.
|
| Stef
|
|
| On Nov 7, 2009, at 6:05 PM, Lukas Renggli wrote:
|
| > 2009/11/7 Stéphane Ducasse <[hidden email]>:
| >> when you are on the class side if you method has a classVariable
| and
| >> you want to know who access it.
| >> Then chase variables show you the class instance varaibles but not
|
| >> the
| >> classVariable.
| >
| > Yes, that's a bug. When you are on the class side, the class
| variables
| > of the meta-class are displayed. Also the labeling of the window is
| > suboptimal. I fixed these issues. Let me know if this is better
| now.
| >
| > Gofer new
| >       squeaksource: 'rb';
| >       addPackage: 'AST-Core';
| >       addPackage: 'Refactoring-Core';
| >       addPackage: 'Refactoring-Spelling';
| >       renggli: 'omnibrowser';
| >       addPackage: 'OmniBrowser';
| >       addPackage: 'OB-Standard';
| >       addPackage: 'OB-Morphic';
| >       addPackage: 'OB-Shout';
| >       addPackage: 'OB-Refactory';
| >       addPackage: 'OB-Regex';
| >       addPackage: 'OB-SUnitIntegration';
| >       renggli: 'unsorted';
| >       addPackage: 'Shout';
| >       addPackage: 'RoelTyper';
| >       addPackage: 'ECompletion';
| >       addPackage: 'ECompletionOmniBrowser';
| >       load;
| >       recompile
| >
| > Lukas
| >
| >
| > --
| > Lukas Renggli
| > http://www.lukas-renggli.ch
| >
| > _______________________________________________
| > Pharo-project mailing list
| > [hidden email]
| > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
|
|
| _______________________________________________
| Pharo-project mailing list
| [hidden email]
| http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Dale
In reply to this post by Stéphane Ducasse
Stef,
 
[sorry about empty mail]

If you have the instance selected when you chase you get the class variables when you select class in chaser...instance variables when instance selected.

If you have the class selected when you chase you apear to get the class variables for the superclasses when you select class in the chaser ... class instance variables when instance selected ...

Not quite what you expect ...

Dale
----- "Stéphane Ducasse" <[hidden email]> wrote:

| Lukas
|
| I tried but it did not work.
| I tried on NetNameResolver
| to see how useOldNetwork is set.
|
| Stef
|
|
| On Nov 7, 2009, at 6:05 PM, Lukas Renggli wrote:
|
| > 2009/11/7 Stéphane Ducasse <[hidden email]>:
| >> when you are on the class side if you method has a classVariable
| and
| >> you want to know who access it.
| >> Then chase variables show you the class instance varaibles but not
|
| >> the
| >> classVariable.
| >
| > Yes, that's a bug. When you are on the class side, the class
| variables
| > of the meta-class are displayed. Also the labeling of the window is
| > suboptimal. I fixed these issues. Let me know if this is better
| now.
| >
| > Gofer new
| >       squeaksource: 'rb';
| >       addPackage: 'AST-Core';
| >       addPackage: 'Refactoring-Core';
| >       addPackage: 'Refactoring-Spelling';
| >       renggli: 'omnibrowser';
| >       addPackage: 'OmniBrowser';
| >       addPackage: 'OB-Standard';
| >       addPackage: 'OB-Morphic';
| >       addPackage: 'OB-Shout';
| >       addPackage: 'OB-Refactory';
| >       addPackage: 'OB-Regex';
| >       addPackage: 'OB-SUnitIntegration';
| >       renggli: 'unsorted';
| >       addPackage: 'Shout';
| >       addPackage: 'RoelTyper';
| >       addPackage: 'ECompletion';
| >       addPackage: 'ECompletionOmniBrowser';
| >       load;
| >       recompile
| >
| > Lukas
| >
| >
| > --
| > Lukas Renggli
| > http://www.lukas-renggli.ch
| >
| > _______________________________________________
| > Pharo-project mailing list
| > [hidden email]
| > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
|
|
| _______________________________________________
| Pharo-project mailing list
| [hidden email]
| http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Stéphane Ducasse
Let say that knowing who access to a given variables is one important
browsing behavior and even a blind should be able to do it without  
thinking.
And so far this is not the case. In fact I preferred the old way  
because it was dead simple and
working. accesses to iv /accesses to classVar.

Stef

On Nov 7, 2009, at 9:59 PM, Dale Henrichs wrote:

> Stef,
>
> [sorry about empty mail]
>
> If you have the instance selected when you chase you get the class  
> variables when you select class in chaser...instance variables when  
> instance selected.
>
> If you have the class selected when you chase you apear to get the  
> class variables for the superclasses when you select class in the  
> chaser ... class instance variables when instance selected ...
>
> Not quite what you expect ...
>
> Dale
> ----- "Stéphane Ducasse" <[hidden email]> wrote:
>
> | Lukas
> |
> | I tried but it did not work.
> | I tried on NetNameResolver
> | to see how useOldNetwork is set.
> |
> | Stef
> |
> |
> | On Nov 7, 2009, at 6:05 PM, Lukas Renggli wrote:
> |
> | > 2009/11/7 Stéphane Ducasse <[hidden email]>:
> | >> when you are on the class side if you method has a classVariable
> | and
> | >> you want to know who access it.
> | >> Then chase variables show you the class instance varaibles but  
> not
> |
> | >> the
> | >> classVariable.
> | >
> | > Yes, that's a bug. When you are on the class side, the class
> | variables
> | > of the meta-class are displayed. Also the labeling of the window  
> is
> | > suboptimal. I fixed these issues. Let me know if this is better
> | now.
> | >
> | > Gofer new
> | >       squeaksource: 'rb';
> | >       addPackage: 'AST-Core';
> | >       addPackage: 'Refactoring-Core';
> | >       addPackage: 'Refactoring-Spelling';
> | >       renggli: 'omnibrowser';
> | >       addPackage: 'OmniBrowser';
> | >       addPackage: 'OB-Standard';
> | >       addPackage: 'OB-Morphic';
> | >       addPackage: 'OB-Shout';
> | >       addPackage: 'OB-Refactory';
> | >       addPackage: 'OB-Regex';
> | >       addPackage: 'OB-SUnitIntegration';
> | >       renggli: 'unsorted';
> | >       addPackage: 'Shout';
> | >       addPackage: 'RoelTyper';
> | >       addPackage: 'ECompletion';
> | >       addPackage: 'ECompletionOmniBrowser';
> | >       load;
> | >       recompile
> | >
> | > Lukas
> | >
> | >
> | > --
> | > Lukas Renggli
> | > http://www.lukas-renggli.ch
> | >
> | > _______________________________________________
> | > Pharo-project mailing list
> | > [hidden email]
> | > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- 
> project
> |
> |
> | _______________________________________________
> | Pharo-project mailing list
> | [hidden email]
> | http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Lukas Renggli
> And so far this is not the case. In fact I preferred the old way
> because it was dead simple and
> working. accesses to iv /accesses to classVar.

I find it dead simple. Clicking on 'variables' always shows you what
you can see from the current browsing context:

- When you are on the instance side you see instance and class variables.
- When you are on the class side you see (class) instance and class variables.

Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

hernanmd
In reply to this post by Lukas Renggli
Hi Lukas,
  there is a little bug in the OB installation in Core #11035. To reproduce it open a new system OmniBrowser and try to browse the class Trait. Below is the stack trace, a fix is attached.

Cheers

Hernán

7 November 2009 9:26:35 pm

VM: Win32 - IX86 - NT - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
Image: Pharo1.1a [Latest update: #11035]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir D:\Smalltalk\Pharo
Trusted Dir D:\Smalltalk\Pharo\mvs
Untrusted Dir C:\Documents and Settings\mvs\Mis documentos\My Squeak

ByteSymbol(Object)>>error:
    Receiver: #category
    Arguments and temporary variables:
        aString:     'MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:'
    Receiver's instance variables:
#category

[] in WorldState>>displayWorldSafely:
    Receiver: a WorldState
    Arguments and temporary variables:
        err:     'MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:'
        rcvr:     #category
        errCtx:     OBLazyListMorph>>display:atRow:on:
        errMorph:     an OBLazyListMorph(2972)
    Receiver's instance variables:
        hands:     an Array(a HandMorph(3216))
        viewBox:     0@0 corner: 978@638
        canvas:     a FormCanvas on: DisplayScreen(978x638x32)
        damageRecorder:     a DamageRecorder
        stepList:     a Heap(StepMessage(#stepAt: -> a SystemWindow(3984))(a SystemWindow(3...etc...
        lastStepTime:     25826547
        lastStepMessage:     nil
        lastCycleTime:     25826376
        commandHistory:     a CommandHistory
        alarms:     a Heap()
        lastAlarmTime:     25826547

BlockClosure>>valueWithPossibleArgs:
    Receiver: [closure] in WorldState>>displayWorldSafely:
    Arguments and temporary variables:
        anArray:     #('MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:' #catego...etc...
    Receiver's instance variables:
        outerContext:     WorldState>>displayWorldSafely:
        startpc:     73
        numArgs:     2

[] in BlockClosure>>ifError:
    Receiver: [closure] in WorldState>>displayWorldSafely:
    Arguments and temporary variables:
        errorHandlerBlock:     MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
        ex:     [closure] in WorldState>>displayWorldSafely:
    Receiver's instance variables:
        outerContext:     WorldState>>displayWorldSafely:
        startpc:     66
        numArgs:     0

BlockClosure>>valueWithPossibleArgs:
    Receiver: [closure] in BlockClosure>>ifError:
    Arguments and temporary variables:
        anArray:     an Array(MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:)
    Receiver's instance variables:
        outerContext:     BlockClosure>>ifError:
        startpc:     40
        numArgs:     1

[] in MethodContext(ContextPart)>>handleSignal:
    Receiver: BlockClosure>>on:do:
    Arguments and temporary variables:
        exception:     MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
    Receiver's instance variables:
        sender:     BlockClosure>>ifError:
        pc:     17
        stackp:     3
        method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
        closureOrNil:     nil
        receiver:     [closure] in WorldState>>displayWorldSafely:

BlockClosure>>ensure:
    Receiver: [closure] in MethodContext(ContextPart)>>handleSignal:
    Arguments and temporary variables:
        aBlock:     [closure] in MethodContext(ContextPart)>>handleSignal:
        returnValue:     nil
        b:     nil
    Receiver's instance variables:
        outerContext:     MethodContext(ContextPart)>>handleSignal:
        startpc:     90
        numArgs:     0

MethodContext(ContextPart)>>handleSignal:
    Receiver: BlockClosure>>on:do:
    Arguments and temporary variables:
        exception:     MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
        val:     nil
    Receiver's instance variables:
        sender:     BlockClosure>>ifError:
        pc:     17
        stackp:     3
        method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
        closureOrNil:     nil
        receiver:     [closure] in WorldState>>displayWorldSafely:

MessageNotUnderstood(Exception)>>signal
    Receiver: MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
    Arguments and temporary variables:

    Receiver's instance variables:
        messageText:     nil
        tag:     nil
        signalContext:     MessageNotUnderstood(Exception)>>signal
        handlerContext:     BlockClosure>>on:do:
        outerContext:     nil
        message:     hasWideCharacterFrom: 1 to: 8
        receiver:     #category
        reachedDefaultHandler:     false

ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
    Receiver: #category
    Arguments and temporary variables:
        aMessage:     hasWideCharacterFrom: 1 to: 8
        exception:     MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
        resumeValue:     nil
    Receiver's instance variables:
#category

StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
    Receiver: a StrikeFontSet(Accuny12I 12)
    Arguments and temporary variables:
        aString:     #category
        aBitBlt:     a GrafPort
        startIndex:     1
        stopIndex:     8
        aPoint:     701@160
        kernDelta:     0
        baselineY:     170
    Receiver's instance variables:
        fontArray:     an Array(a StrikeFont(Accuny12 12))
        emphasis:     2
        derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
        name:     'Accuny12I'
        rIndex:     nil

StrikeFontSet>>displayString:on:from:to:at:kern:
    Receiver: a StrikeFontSet(Accuny12I 12)
    Arguments and temporary variables:
        aString:     #category
        aBitBlt:     a GrafPort
        startIndex:     1
        stopIndex:     8
        aPoint:     701@160
        kernDelta:     0
    Receiver's instance variables:
        fontArray:     an Array(a StrikeFont(Accuny12 12))
        emphasis:     2
        derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
        name:     'Accuny12I'
        rIndex:     nil

FormCanvas>>drawString:from:to:in:font:color:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        aString:     a Text for #category
        firstIndex:     1
        lastIndex:     8
        bounds:     14@96 corner: 722@108
        fontOrNil:     a StrikeFontSet(Accuny12I 12)
        c:     Color black
        font:     a StrikeFontSet(Accuny12I 12)
        portRect:     684@64 corner: 850@288
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     687@64
        clipRect:     684@64 corner: 850@288
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

FormCanvas(Canvas)>>drawString:in:font:color:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        s:     a Text for #category
        boundsRect:     14@96 corner: 722@108
        fontOrNil:     a StrikeFontSet(Accuny12I 12)
        c:     Color black
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     687@64
        clipRect:     684@64 corner: 850@288
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

OBLazyListMorph>>display:atRow:on:
    Receiver: an OBLazyListMorph(2972)
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        bounds:     0@0 corner: 722@432
        owner:     a TransformMorph(73)
        submorphs:     #()
        fullBounds:     0@0 corner: 722@432
        color:     Color black
        extension:     a MorphExtension (2984) [other:  (errorOnDraw -> true)]
        listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing: #asClassDefini...etc...
        font:     a StrikeFontSet(Accuny12 12)
        selectedRow:     0
        selectedRows:     a PluggableSet()
        listSource:     an OBPluggableListMorph(274)
        maxWidth:     702

OBLazyListMorph(LazyListMorph)>>drawOn:
    Receiver: an OBLazyListMorph(2972)
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
        row:     9
        rowLimiT:     19
    Receiver's instance variables:
        bounds:     0@0 corner: 722@432
        owner:     a TransformMorph(73)
        submorphs:     #()
        fullBounds:     0@0 corner: 722@432
        color:     Color black
        extension:     a MorphExtension (2984) [other:  (errorOnDraw -> true)]
        listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing: #asClassDefini...etc...
        font:     a StrikeFontSet(Accuny12 12)
        selectedRow:     0
        selectedRows:     a PluggableSet()
        listSource:     an OBPluggableListMorph(274)
        maxWidth:     702

FormCanvas(Canvas)>>draw:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        anObject:     an OBLazyListMorph(2972)
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     687@64
        clipRect:     684@64 corner: 850@288
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

FormCanvas(Canvas)>>drawMorph:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        aMorph:     an OBLazyListMorph(2972)
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     687@64
        clipRect:     684@64 corner: 850@288
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

[] in OBLazyListMorph(Morph)>>fullDrawOn:
    Receiver: an OBLazyListMorph(2972)
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
    Receiver's instance variables:
        bounds:     0@0 corner: 722@432
        owner:     a TransformMorph(73)
        submorphs:     #()
        fullBounds:     0@0 corner: 722@432
        color:     Color black
        extension:     a MorphExtension (2984) [other:  (errorOnDraw -> true)]
        listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing: #asClassDefini...etc...
        font:     a StrikeFontSet(Accuny12 12)
        selectedRow:     0
        selectedRows:     a PluggableSet()
        listSource:     an OBPluggableListMorph(274)
        maxWidth:     702

FormCanvas>>roundCornersOf:in:during:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        aMorph:     an OBLazyListMorph(2972)
        bounds:     0@0 corner: 722@432
        aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     687@64
        clipRect:     684@64 corner: 850@288
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

FormCanvas(Canvas)>>roundCornersOf:during:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        aMorph:     an OBLazyListMorph(2972)
        aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     687@64
        clipRect:     684@64 corner: 850@288
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

OBLazyListMorph(Morph)>>fullDrawOn:
    Receiver: an OBLazyListMorph(2972)
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
    Receiver's instance variables:
        bounds:     0@0 corner: 722@432
        owner:     a TransformMorph(73)
        submorphs:     #()
        fullBounds:     0@0 corner: 722@432
        color:     Color black
        extension:     a MorphExtension (2984) [other:  (errorOnDraw -> true)]
        listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing: #asClassDefini...etc...
        font:     a StrikeFontSet(Accuny12 12)
        selectedRow:     0
        selectedRows:     a PluggableSet()
        listSource:     an OBPluggableListMorph(274)
        maxWidth:     702

FormCanvas(Canvas)>>fullDraw:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        anObject:     an OBLazyListMorph(2972)
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     687@64
        clipRect:     684@64 corner: 850@288
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

FormCanvas(Canvas)>>fullDrawMorph:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        aMorph:     an OBLazyListMorph(2972)
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     687@64
        clipRect:     684@64 corner: 850@288
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

[] in [] in TransformMorph>>drawSubmorphsOn:
    Receiver: a TransformMorph(73)
    Arguments and temporary variables:
        myCanvas:     an OBLazyListMorph(2972)
        m:     a FormCanvas on: DisplayScreen(978x638x32)
    Receiver's instance variables:
        bounds:     548@0 corner: 714@224
        owner:     an OBPluggableListMorph(274)
        submorphs:     an Array(an OBLazyListMorph(2972))
        fullBounds:     548@0 corner: 714@224
        color:     Color transparent
        extension:     nil
        transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset = -551@0)
        smoothing:     1
        localBounds:     nil

Array(SequenceableCollection)>>reverseDo:
    Receiver: an Array(an OBLazyListMorph(2972))
    Arguments and temporary variables:
        aBlock:     [closure] in [] in TransformMorph>>drawSubmorphsOn:
        index:     1
    Receiver's instance variables:
an Array(an OBLazyListMorph(2972))

[] in TransformMorph>>drawSubmorphsOn:
    Receiver: a TransformMorph(73)
    Arguments and temporary variables:
        myCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
    Receiver's instance variables:
        bounds:     548@0 corner: 714@224
        owner:     an OBPluggableListMorph(274)
        submorphs:     an Array(an OBLazyListMorph(2972))
        fullBounds:     548@0 corner: 714@224
        color:     Color transparent
        extension:     nil
        transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset = -551@0)
        smoothing:     1
        localBounds:     nil

FormCanvas>>transformBy:clippingTo:during:smoothing:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        aDisplayTransform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset = -551@0...etc...
        aClipRect:     548@0 corner: 714@224
        aBlock:     [closure] in TransformMorph>>drawSubmorphsOn:
        cellSize:     1
        innerRect:     nil
        patchRect:     nil
        sourceQuad:     nil
        warp:     nil
        start:     nil
        subCanvas:     nil
        i:     nil
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     136@64
        clipRect:     684@64 corner: 863@301
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

TransformMorph>>drawSubmorphsOn:
    Receiver: a TransformMorph(73)
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
    Receiver's instance variables:
        bounds:     548@0 corner: 714@224
        owner:     an OBPluggableListMorph(274)
        submorphs:     an Array(an OBLazyListMorph(2972))
        fullBounds:     548@0 corner: 714@224
        color:     Color transparent
        extension:     nil
        transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset = -551@0)
        smoothing:     1
        localBounds:     nil

[] in TransformMorph(Morph)>>fullDrawOn:
    Receiver: a TransformMorph(73)
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
    Receiver's instance variables:
        bounds:     548@0 corner: 714@224
        owner:     an OBPluggableListMorph(274)
        submorphs:     an Array(an OBLazyListMorph(2972))
        fullBounds:     548@0 corner: 714@224
        color:     Color transparent
        extension:     nil
        transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset = -551@0)
        smoothing:     1
        localBounds:     nil

FormCanvas>>roundCornersOf:in:during:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        aMorph:     a TransformMorph(73)
        bounds:     548@0 corner: 714@224
        aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     136@64
        clipRect:     684@64 corner: 863@301
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

FormCanvas(Canvas)>>roundCornersOf:during:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        aMorph:     a TransformMorph(73)
        aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     136@64
        clipRect:     684@64 corner: 863@301
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

TransformMorph(Morph)>>fullDrawOn:
    Receiver: a TransformMorph(73)
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
    Receiver's instance variables:
        bounds:     548@0 corner: 714@224
        owner:     an OBPluggableListMorph(274)
        submorphs:     an Array(an OBLazyListMorph(2972))
        fullBounds:     548@0 corner: 714@224
        color:     Color transparent
        extension:     nil
        transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset = -551@0)
        smoothing:     1
        localBounds:     nil

FormCanvas(Canvas)>>fullDraw:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        anObject:     a TransformMorph(73)
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     136@64
        clipRect:     684@64 corner: 863@301
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

FormCanvas(Canvas)>>fullDrawMorph:
    Receiver: a FormCanvas on: DisplayScreen(978x638x32)
    Arguments and temporary variables:
        aMorph:     a TransformMorph(73)
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     136@64
        clipRect:     684@64 corner: 863@301
        form:     DisplayScreen(978x638x32)
        port:     a GrafPort
        shadowColor:     nil

[] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
    Receiver: an OBPluggableListMorph(274)
    Arguments and temporary variables:
        canvas:     a TransformMorph(73)
        m:     a FormCanvas on: DisplayScreen(978x638x32)
    Receiver's instance variables:
        bounds:     548@0 corner: 727@237
        owner:     an OBPane(2011)
        submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
        fullBounds:     548@0 corner: 727@237
        color:     Color white
        extension:     a MorphExtension (990) [other:  (dragEnabled -> true) (dropEnabled -...etc...
        borderWidth:     0
        borderColor:     Color black
        model:     an OBColumn()
        slotName:     nil
        open:     false
        scrollBar:     a ScrollBar(2541)
        scroller:     a TransformMorph(73)
        retractableScrollBar:     false
        scrollBarOnLeft:     false
        getMenuSelector:     #menu:
        getMenuTitleSelector:     nil
        hasFocus:     false
        hScrollBar:     a ScrollBar(3409)
        list:     nil
        getListSelector:     #list
        getListSizeSelector:     #listSize
        getListElementSelector:     #listAt:
        getIndexSelector:     #selection
        setIndexSelector:     #selection:
        keystrokeActionSelector:     #keystroke:from:
        autoDeselect:     false
        lastKeystrokeTime:     0
        lastKeystrokes:     ''
        doubleClickSelector:     #doubleClick
        handlesBasicKeys:     nil
        potentialDropRow:     nil
        listMorph:     an OBLazyListMorph(2972)
        hScrollRangeCache:     nil

Array(SequenceableCollection)>>reverseDo:
    Receiver: an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
    Arguments and temporary variables:
        aBlock:     [closure] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
        index:     3
    Receiver's instance variables:
an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))

[] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
    Receiver: an OBPluggableListMorph(274)
    Arguments and temporary variables:
        canvas:     a FormCanvas on: DisplayScreen(978x638x32)
    Receiver's instance variables:
        bounds:     548@0 corner: 727@237
        owner:     an OBPane(2011)
        submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
        fullBounds:     548@0 corner: 727@237
        color:     Color white
        extension:     a MorphExtension (990) [other:  (dragEnabled -> true) (dropEnabled -...etc...
        borderWidth:     0
        borderColor:     Color black
        model:     an OBColumn()
        slotName:     nil
        open:     false
        scrollBar:     a ScrollBar(2541)
        scroller:     a TransformMorph(73)
        retractableScrollBar:     false
        scrollBarOnLeft:     false
        getMenuSelector:     #menu:
        getMenuTitleSelector:     nil
        hasFocus:     false
        hScrollBar:     a ScrollBar(3409)
        list:     nil
        getListSelector:     #list
        getListSizeSelector:     #listSize
        getListElementSelector:     #listAt:
        getIndexSelector:     #selection
        setIndexSelector:     #selection:
        keystrokeActionSelector:     #keystroke:from:
        autoDeselect:     false
        lastKeystrokeTime:     0
        lastKeystrokes:     ''
        doubleClickSelector:     #doubleClick
        handlesBasicKeys:     nil
        potentialDropRow:     nil
        listMorph:     an OBLazyListMorph(2972)
        hScrollRangeCache:     nil

OBPluggableListMorph(Morph)>>drawSubmorphsOn:
    Receiver: an OBPluggableListMorph(274)
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
        drawBlock:     [closure] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
    Receiver's instance variables:
        bounds:     548@0 corner: 727@237
        owner:     an OBPane(2011)
        submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
        fullBounds:     548@0 corner: 727@237
        color:     Color white
        extension:     a MorphExtension (990) [other:  (dragEnabled -> true) (dropEnabled -...etc...
        borderWidth:     0
        borderColor:     Color black
        model:     an OBColumn()
        slotName:     nil
        open:     false
        scrollBar:     a ScrollBar(2541)
        scroller:     a TransformMorph(73)
        retractableScrollBar:     false
        scrollBarOnLeft:     false
        getMenuSelector:     #menu:
        getMenuTitleSelector:     nil
        hasFocus:     false
        hScrollBar:     a ScrollBar(3409)
        list:     nil
        getListSelector:     #list
        getListSizeSelector:     #listSize
        getListElementSelector:     #listAt:
        getIndexSelector:     #selection
        setIndexSelector:     #selection:
        keystrokeActionSelector:     #keystroke:from:
        autoDeselect:     false
        lastKeystrokeTime:     0
        lastKeystrokes:     ''
        doubleClickSelector:     #doubleClick
        handlesBasicKeys:     nil
        potentialDropRow:     nil
        listMorph:     an OBLazyListMorph(2972)
        hScrollRangeCache:     nil


--- The full stack ---
ByteSymbol(Object)>>error:
[] in WorldState>>displayWorldSafely:
BlockClosure>>valueWithPossibleArgs:
[] in BlockClosure>>ifError:
BlockClosure>>valueWithPossibleArgs:
[] in MethodContext(ContextPart)>>handleSignal:
BlockClosure>>ensure:
MethodContext(ContextPart)>>handleSignal:
MessageNotUnderstood(Exception)>>signal
ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
StrikeFontSet>>displayString:on:from:to:at:kern:
FormCanvas>>drawString:from:to:in:font:color:
FormCanvas(Canvas)>>drawString:in:font:color:
OBLazyListMorph>>display:atRow:on:
OBLazyListMorph(LazyListMorph)>>drawOn:
FormCanvas(Canvas)>>draw:
FormCanvas(Canvas)>>drawMorph:
[] in OBLazyListMorph(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBLazyListMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in TransformMorph>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in TransformMorph>>drawSubmorphsOn:
FormCanvas>>transformBy:clippingTo:during:smoothing:
TransformMorph>>drawSubmorphsOn:
[] in TransformMorph(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
TransformMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
OBPluggableListMorph(Morph)>>drawSubmorphsOn:
 - - - - - - - - - - - - - - - 
            - - - - - - - - - - - - - - - - - -
OBPluggableListMorph(PluggableListMorph)>>drawSubmorphsOn:
[] in OBPluggableListMorph(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBPluggableListMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in OBPane(Morph)>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in OBPane(Morph)>>drawSubmorphsOn:
FormCanvas>>clipBy:during:
OBPane(Morph)>>drawSubmorphsOn:
[] in OBPane(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBPane(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in TransformMorph>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in TransformMorph>>drawSubmorphsOn:
FormCanvas>>transformBy:clippingTo:during:smoothing:
TransformMorph>>drawSubmorphsOn:
[] in TransformMorph(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
TransformMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in OBPaneScroller(Morph)>>drawSubmorphsOn:
OBPaneScroller(Morph)>>drawSubmorphsOn:
[] in OBPaneScroller(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBPaneScroller(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
OBGroupingMorph(Morph)>>drawSubmorphsOn:
[] in OBGroupingMorph(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBGroupingMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in SystemWindow(Morph)>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in SystemWindow(Morph)>>drawSubmorphsOn:
FormCanvas>>clipBy:during:
SystemWindow(Morph)>>drawSubmorphsOn:
[] in SystemWindow(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
SystemWindow(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
Rectangle>>allAreasOutsideList:startingAt:do:
Rectangle>>allAreasOutsideList:do:
[] in WorldState>>drawWorld:submorphs:invalidAreasOn:
Array(SequenceableCollection)>>do:
WorldState>>drawWorld:submorphs:invalidAreasOn:
[] in WorldState>>displayWorld:submorphs:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
WorldState>>displayWorld:submorphs:
PasteUpMorph>>privateOuterDisplayWorld
PasteUpMorph>>displayWorld
[] in WorldState>>displayWorldSafely:
BlockClosure>>on:do:
BlockClosure>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess


2009/11/7 Lukas Renggli <[hidden email]>
2009/11/7 Stéphane Ducasse <[hidden email]>:
> when you are on the class side if you method has a classVariable and
> you want to know who access it.
> Then chase variables show you the class instance varaibles but not the
> classVariable.

Yes, that's a bug. When you are on the class side, the class variables
of the meta-class are displayed. Also the labeling of the window is
suboptimal. I fixed these issues. Let me know if this is better now.

Gofer new
      squeaksource: 'rb';
      addPackage: 'AST-Core';
      addPackage: 'Refactoring-Core';
      addPackage: 'Refactoring-Spelling';
      renggli: 'omnibrowser';
      addPackage: 'OmniBrowser';
      addPackage: 'OB-Standard';
      addPackage: 'OB-Morphic';
      addPackage: 'OB-Shout';
      addPackage: 'OB-Refactory';
      addPackage: 'OB-Regex';
      addPackage: 'OB-SUnitIntegration';
      renggli: 'unsorted';
      addPackage: 'Shout';
      addPackage: 'RoelTyper';
      addPackage: 'ECompletion';
      addPackage: 'ECompletionOmniBrowser';
      load;
      recompile

Lukas


--
Lukas Renggli
http://www.lukas-renggli.ch

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


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

Text-asString.st (344 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Lukas Renggli
Hi Hernán,

I cannot reproduce that problem.

Looks like in you end up with a non-string in a Text class. That
should never happen, because then the class invariants of Text are not
met. If OB instantiates a Text like that, this is an OB bug of course,
but I can't figure out a place where that could happen. Maybe this is
some bug in Pharo?

Lukas

2009/11/8 Hernán Morales Durand <[hidden email]>:

> Hi Lukas,
>   there is a little bug in the OB installation in Core #11035. To reproduce
> it open a new system OmniBrowser and try to browse the class Trait. Below is
> the stack trace, a fix is attached.
>
> Cheers
>
> Hernán
>
> 7 November 2009 9:26:35 pm
>
> VM: Win32 - IX86 - NT - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
> Image: Pharo1.1a [Latest update: #11035]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir D:\Smalltalk\Pharo
> Trusted Dir D:\Smalltalk\Pharo\mvs
> Untrusted Dir C:\Documents and Settings\mvs\Mis documentos\My Squeak
>
> ByteSymbol(Object)>>error:
>     Receiver: #category
>     Arguments and temporary variables:
>         aString:     'MessageNotUnderstood:
> ByteSymbol>>hasWideCharacterFrom:to:'
>     Receiver's instance variables:
> #category
>
> [] in WorldState>>displayWorldSafely:
>     Receiver: a WorldState
>     Arguments and temporary variables:
>         err:     'MessageNotUnderstood:
> ByteSymbol>>hasWideCharacterFrom:to:'
>         rcvr:     #category
>         errCtx:     OBLazyListMorph>>display:atRow:on:
>         errMorph:     an OBLazyListMorph(2972)
>     Receiver's instance variables:
>         hands:     an Array(a HandMorph(3216))
>         viewBox:     0@0 corner: 978@638
>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>         damageRecorder:     a DamageRecorder
>         stepList:     a Heap(StepMessage(#stepAt: -> a SystemWindow(3984))(a
> SystemWindow(3...etc...
>         lastStepTime:     25826547
>         lastStepMessage:     nil
>         lastCycleTime:     25826376
>         commandHistory:     a CommandHistory
>         alarms:     a Heap()
>         lastAlarmTime:     25826547
>
> BlockClosure>>valueWithPossibleArgs:
>     Receiver: [closure] in WorldState>>displayWorldSafely:
>     Arguments and temporary variables:
>         anArray:     #('MessageNotUnderstood:
> ByteSymbol>>hasWideCharacterFrom:to:' #catego...etc...
>     Receiver's instance variables:
>         outerContext:     WorldState>>displayWorldSafely:
>         startpc:     73
>         numArgs:     2
>
> [] in BlockClosure>>ifError:
>     Receiver: [closure] in WorldState>>displayWorldSafely:
>     Arguments and temporary variables:
>         errorHandlerBlock:     MessageNotUnderstood:
> ByteSymbol>>hasWideCharacterFrom:to:
>         ex:     [closure] in WorldState>>displayWorldSafely:
>     Receiver's instance variables:
>         outerContext:     WorldState>>displayWorldSafely:
>         startpc:     66
>         numArgs:     0
>
> BlockClosure>>valueWithPossibleArgs:
>     Receiver: [closure] in BlockClosure>>ifError:
>     Arguments and temporary variables:
>         anArray:     an Array(MessageNotUnderstood:
> ByteSymbol>>hasWideCharacterFrom:to:)
>     Receiver's instance variables:
>         outerContext:     BlockClosure>>ifError:
>         startpc:     40
>         numArgs:     1
>
> [] in MethodContext(ContextPart)>>handleSignal:
>     Receiver: BlockClosure>>on:do:
>     Arguments and temporary variables:
>         exception:     MessageNotUnderstood:
> ByteSymbol>>hasWideCharacterFrom:to:
>     Receiver's instance variables:
>         sender:     BlockClosure>>ifError:
>         pc:     17
>         stackp:     3
>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>         closureOrNil:     nil
>         receiver:     [closure] in WorldState>>displayWorldSafely:
>
> BlockClosure>>ensure:
>     Receiver: [closure] in MethodContext(ContextPart)>>handleSignal:
>     Arguments and temporary variables:
>         aBlock:     [closure] in MethodContext(ContextPart)>>handleSignal:
>         returnValue:     nil
>         b:     nil
>     Receiver's instance variables:
>         outerContext:     MethodContext(ContextPart)>>handleSignal:
>         startpc:     90
>         numArgs:     0
>
> MethodContext(ContextPart)>>handleSignal:
>     Receiver: BlockClosure>>on:do:
>     Arguments and temporary variables:
>         exception:     MessageNotUnderstood:
> ByteSymbol>>hasWideCharacterFrom:to:
>         val:     nil
>     Receiver's instance variables:
>         sender:     BlockClosure>>ifError:
>         pc:     17
>         stackp:     3
>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>         closureOrNil:     nil
>         receiver:     [closure] in WorldState>>displayWorldSafely:
>
> MessageNotUnderstood(Exception)>>signal
>     Receiver: MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
>     Arguments and temporary variables:
>
>     Receiver's instance variables:
>         messageText:     nil
>         tag:     nil
>         signalContext:     MessageNotUnderstood(Exception)>>signal
>         handlerContext:     BlockClosure>>on:do:
>         outerContext:     nil
>         message:     hasWideCharacterFrom: 1 to: 8
>         receiver:     #category
>         reachedDefaultHandler:     false
>
> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>     Receiver: #category
>     Arguments and temporary variables:
>         aMessage:     hasWideCharacterFrom: 1 to: 8
>         exception:     MessageNotUnderstood:
> ByteSymbol>>hasWideCharacterFrom:to:
>         resumeValue:     nil
>     Receiver's instance variables:
> #category
>
> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>     Receiver: a StrikeFontSet(Accuny12I 12)
>     Arguments and temporary variables:
>         aString:     #category
>         aBitBlt:     a GrafPort
>         startIndex:     1
>         stopIndex:     8
>         aPoint:     701@160
>         kernDelta:     0
>         baselineY:     170
>     Receiver's instance variables:
>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>         emphasis:     2
>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
> nil nil nil nil ...etc...
>         name:     'Accuny12I'
>         rIndex:     nil
>
> StrikeFontSet>>displayString:on:from:to:at:kern:
>     Receiver: a StrikeFontSet(Accuny12I 12)
>     Arguments and temporary variables:
>         aString:     #category
>         aBitBlt:     a GrafPort
>         startIndex:     1
>         stopIndex:     8
>         aPoint:     701@160
>         kernDelta:     0
>     Receiver's instance variables:
>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>         emphasis:     2
>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
> nil nil nil nil ...etc...
>         name:     'Accuny12I'
>         rIndex:     nil
>
> FormCanvas>>drawString:from:to:in:font:color:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         aString:     a Text for #category
>         firstIndex:     1
>         lastIndex:     8
>         bounds:     14@96 corner: 722@108
>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>         c:     Color black
>         font:     a StrikeFontSet(Accuny12I 12)
>         portRect:     684@64 corner: 850@288
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     687@64
>         clipRect:     684@64 corner: 850@288
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> FormCanvas(Canvas)>>drawString:in:font:color:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         s:     a Text for #category
>         boundsRect:     14@96 corner: 722@108
>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>         c:     Color black
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     687@64
>         clipRect:     684@64 corner: 850@288
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> OBLazyListMorph>>display:atRow:on:
>     Receiver: an OBLazyListMorph(2972)
>     Arguments and temporary variables:
> <<error during printing>
>     Receiver's instance variables:
>         bounds:     0@0 corner: 722@432
>         owner:     a TransformMorph(73)
>         submorphs:     #()
>         fullBounds:     0@0 corner: 722@432
>         color:     Color black
>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
> true)]
>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
> #asClassDefini...etc...
>         font:     a StrikeFontSet(Accuny12 12)
>         selectedRow:     0
>         selectedRows:     a PluggableSet()
>         listSource:     an OBPluggableListMorph(274)
>         maxWidth:     702
>
> OBLazyListMorph(LazyListMorph)>>drawOn:
>     Receiver: an OBLazyListMorph(2972)
>     Arguments and temporary variables:
>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>         row:     9
>         rowLimiT:     19
>     Receiver's instance variables:
>         bounds:     0@0 corner: 722@432
>         owner:     a TransformMorph(73)
>         submorphs:     #()
>         fullBounds:     0@0 corner: 722@432
>         color:     Color black
>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
> true)]
>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
> #asClassDefini...etc...
>         font:     a StrikeFontSet(Accuny12 12)
>         selectedRow:     0
>         selectedRows:     a PluggableSet()
>         listSource:     an OBPluggableListMorph(274)
>         maxWidth:     702
>
> FormCanvas(Canvas)>>draw:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         anObject:     an OBLazyListMorph(2972)
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     687@64
>         clipRect:     684@64 corner: 850@288
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> FormCanvas(Canvas)>>drawMorph:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         aMorph:     an OBLazyListMorph(2972)
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     687@64
>         clipRect:     684@64 corner: 850@288
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>     Receiver: an OBLazyListMorph(2972)
>     Arguments and temporary variables:
>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>     Receiver's instance variables:
>         bounds:     0@0 corner: 722@432
>         owner:     a TransformMorph(73)
>         submorphs:     #()
>         fullBounds:     0@0 corner: 722@432
>         color:     Color black
>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
> true)]
>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
> #asClassDefini...etc...
>         font:     a StrikeFontSet(Accuny12 12)
>         selectedRow:     0
>         selectedRows:     a PluggableSet()
>         listSource:     an OBPluggableListMorph(274)
>         maxWidth:     702
>
> FormCanvas>>roundCornersOf:in:during:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         aMorph:     an OBLazyListMorph(2972)
>         bounds:     0@0 corner: 722@432
>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     687@64
>         clipRect:     684@64 corner: 850@288
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> FormCanvas(Canvas)>>roundCornersOf:during:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         aMorph:     an OBLazyListMorph(2972)
>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     687@64
>         clipRect:     684@64 corner: 850@288
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> OBLazyListMorph(Morph)>>fullDrawOn:
>     Receiver: an OBLazyListMorph(2972)
>     Arguments and temporary variables:
>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>     Receiver's instance variables:
>         bounds:     0@0 corner: 722@432
>         owner:     a TransformMorph(73)
>         submorphs:     #()
>         fullBounds:     0@0 corner: 722@432
>         color:     Color black
>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
> true)]
>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
> #asClassDefini...etc...
>         font:     a StrikeFontSet(Accuny12 12)
>         selectedRow:     0
>         selectedRows:     a PluggableSet()
>         listSource:     an OBPluggableListMorph(274)
>         maxWidth:     702
>
> FormCanvas(Canvas)>>fullDraw:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         anObject:     an OBLazyListMorph(2972)
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     687@64
>         clipRect:     684@64 corner: 850@288
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> FormCanvas(Canvas)>>fullDrawMorph:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         aMorph:     an OBLazyListMorph(2972)
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     687@64
>         clipRect:     684@64 corner: 850@288
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> [] in [] in TransformMorph>>drawSubmorphsOn:
>     Receiver: a TransformMorph(73)
>     Arguments and temporary variables:
>         myCanvas:     an OBLazyListMorph(2972)
>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>     Receiver's instance variables:
>         bounds:     548@0 corner: 714@224
>         owner:     an OBPluggableListMorph(274)
>         submorphs:     an Array(an OBLazyListMorph(2972))
>         fullBounds:     548@0 corner: 714@224
>         color:     Color transparent
>         extension:     nil
>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
> -551@0)
>         smoothing:     1
>         localBounds:     nil
>
> Array(SequenceableCollection)>>reverseDo:
>     Receiver: an Array(an OBLazyListMorph(2972))
>     Arguments and temporary variables:
>         aBlock:     [closure] in [] in TransformMorph>>drawSubmorphsOn:
>         index:     1
>     Receiver's instance variables:
> an Array(an OBLazyListMorph(2972))
>
> [] in TransformMorph>>drawSubmorphsOn:
>     Receiver: a TransformMorph(73)
>     Arguments and temporary variables:
>         myCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>     Receiver's instance variables:
>         bounds:     548@0 corner: 714@224
>         owner:     an OBPluggableListMorph(274)
>         submorphs:     an Array(an OBLazyListMorph(2972))
>         fullBounds:     548@0 corner: 714@224
>         color:     Color transparent
>         extension:     nil
>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
> -551@0)
>         smoothing:     1
>         localBounds:     nil
>
> FormCanvas>>transformBy:clippingTo:during:smoothing:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         aDisplayTransform:     a MorphicTransform(angle = 0.0; scale = 1.0;
> offset = -551@0...etc...
>         aClipRect:     548@0 corner: 714@224
>         aBlock:     [closure] in TransformMorph>>drawSubmorphsOn:
>         cellSize:     1
>         innerRect:     nil
>         patchRect:     nil
>         sourceQuad:     nil
>         warp:     nil
>         start:     nil
>         subCanvas:     nil
>         i:     nil
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     136@64
>         clipRect:     684@64 corner: 863@301
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> TransformMorph>>drawSubmorphsOn:
>     Receiver: a TransformMorph(73)
>     Arguments and temporary variables:
>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>     Receiver's instance variables:
>         bounds:     548@0 corner: 714@224
>         owner:     an OBPluggableListMorph(274)
>         submorphs:     an Array(an OBLazyListMorph(2972))
>         fullBounds:     548@0 corner: 714@224
>         color:     Color transparent
>         extension:     nil
>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
> -551@0)
>         smoothing:     1
>         localBounds:     nil
>
> [] in TransformMorph(Morph)>>fullDrawOn:
>     Receiver: a TransformMorph(73)
>     Arguments and temporary variables:
>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>     Receiver's instance variables:
>         bounds:     548@0 corner: 714@224
>         owner:     an OBPluggableListMorph(274)
>         submorphs:     an Array(an OBLazyListMorph(2972))
>         fullBounds:     548@0 corner: 714@224
>         color:     Color transparent
>         extension:     nil
>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
> -551@0)
>         smoothing:     1
>         localBounds:     nil
>
> FormCanvas>>roundCornersOf:in:during:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         aMorph:     a TransformMorph(73)
>         bounds:     548@0 corner: 714@224
>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     136@64
>         clipRect:     684@64 corner: 863@301
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> FormCanvas(Canvas)>>roundCornersOf:during:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         aMorph:     a TransformMorph(73)
>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     136@64
>         clipRect:     684@64 corner: 863@301
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> TransformMorph(Morph)>>fullDrawOn:
>     Receiver: a TransformMorph(73)
>     Arguments and temporary variables:
>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>     Receiver's instance variables:
>         bounds:     548@0 corner: 714@224
>         owner:     an OBPluggableListMorph(274)
>         submorphs:     an Array(an OBLazyListMorph(2972))
>         fullBounds:     548@0 corner: 714@224
>         color:     Color transparent
>         extension:     nil
>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
> -551@0)
>         smoothing:     1
>         localBounds:     nil
>
> FormCanvas(Canvas)>>fullDraw:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         anObject:     a TransformMorph(73)
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     136@64
>         clipRect:     684@64 corner: 863@301
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> FormCanvas(Canvas)>>fullDrawMorph:
>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>     Arguments and temporary variables:
>         aMorph:     a TransformMorph(73)
>     Receiver's instance variables:
>         target:     nil
>         filterSelector:     nil
>         origin:     136@64
>         clipRect:     684@64 corner: 863@301
>         form:     DisplayScreen(978x638x32)
>         port:     a GrafPort
>         shadowColor:     nil
>
> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>     Receiver: an OBPluggableListMorph(274)
>     Arguments and temporary variables:
>         canvas:     a TransformMorph(73)
>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>     Receiver's instance variables:
>         bounds:     548@0 corner: 727@237
>         owner:     an OBPane(2011)
>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
> TransformMorph(73))
>         fullBounds:     548@0 corner: 727@237
>         color:     Color white
>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
> (dropEnabled -...etc...
>         borderWidth:     0
>         borderColor:     Color black
>         model:     an OBColumn()
>         slotName:     nil
>         open:     false
>         scrollBar:     a ScrollBar(2541)
>         scroller:     a TransformMorph(73)
>         retractableScrollBar:     false
>         scrollBarOnLeft:     false
>         getMenuSelector:     #menu:
>         getMenuTitleSelector:     nil
>         hasFocus:     false
>         hScrollBar:     a ScrollBar(3409)
>         list:     nil
>         getListSelector:     #list
>         getListSizeSelector:     #listSize
>         getListElementSelector:     #listAt:
>         getIndexSelector:     #selection
>         setIndexSelector:     #selection:
>         keystrokeActionSelector:     #keystroke:from:
>         autoDeselect:     false
>         lastKeystrokeTime:     0
>         lastKeystrokes:     ''
>         doubleClickSelector:     #doubleClick
>         handlesBasicKeys:     nil
>         potentialDropRow:     nil
>         listMorph:     an OBLazyListMorph(2972)
>         hScrollRangeCache:     nil
>
> Array(SequenceableCollection)>>reverseDo:
>     Receiver: an Array(a ScrollBar(3409) a ScrollBar(2541) a
> TransformMorph(73))
>     Arguments and temporary variables:
>         aBlock:     [closure] in [] in
> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>         index:     3
>     Receiver's instance variables:
> an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
>
> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>     Receiver: an OBPluggableListMorph(274)
>     Arguments and temporary variables:
>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>     Receiver's instance variables:
>         bounds:     548@0 corner: 727@237
>         owner:     an OBPane(2011)
>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
> TransformMorph(73))
>         fullBounds:     548@0 corner: 727@237
>         color:     Color white
>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
> (dropEnabled -...etc...
>         borderWidth:     0
>         borderColor:     Color black
>         model:     an OBColumn()
>         slotName:     nil
>         open:     false
>         scrollBar:     a ScrollBar(2541)
>         scroller:     a TransformMorph(73)
>         retractableScrollBar:     false
>         scrollBarOnLeft:     false
>         getMenuSelector:     #menu:
>         getMenuTitleSelector:     nil
>         hasFocus:     false
>         hScrollBar:     a ScrollBar(3409)
>         list:     nil
>         getListSelector:     #list
>         getListSizeSelector:     #listSize
>         getListElementSelector:     #listAt:
>         getIndexSelector:     #selection
>         setIndexSelector:     #selection:
>         keystrokeActionSelector:     #keystroke:from:
>         autoDeselect:     false
>         lastKeystrokeTime:     0
>         lastKeystrokes:     ''
>         doubleClickSelector:     #doubleClick
>         handlesBasicKeys:     nil
>         potentialDropRow:     nil
>         listMorph:     an OBLazyListMorph(2972)
>         hScrollRangeCache:     nil
>
> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>     Receiver: an OBPluggableListMorph(274)
>     Arguments and temporary variables:
>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>         drawBlock:     [closure] in
> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>     Receiver's instance variables:
>         bounds:     548@0 corner: 727@237
>         owner:     an OBPane(2011)
>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
> TransformMorph(73))
>         fullBounds:     548@0 corner: 727@237
>         color:     Color white
>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
> (dropEnabled -...etc...
>         borderWidth:     0
>         borderColor:     Color black
>         model:     an OBColumn()
>         slotName:     nil
>         open:     false
>         scrollBar:     a ScrollBar(2541)
>         scroller:     a TransformMorph(73)
>         retractableScrollBar:     false
>         scrollBarOnLeft:     false
>         getMenuSelector:     #menu:
>         getMenuTitleSelector:     nil
>         hasFocus:     false
>         hScrollBar:     a ScrollBar(3409)
>         list:     nil
>         getListSelector:     #list
>         getListSizeSelector:     #listSize
>         getListElementSelector:     #listAt:
>         getIndexSelector:     #selection
>         setIndexSelector:     #selection:
>         keystrokeActionSelector:     #keystroke:from:
>         autoDeselect:     false
>         lastKeystrokeTime:     0
>         lastKeystrokes:     ''
>         doubleClickSelector:     #doubleClick
>         handlesBasicKeys:     nil
>         potentialDropRow:     nil
>         listMorph:     an OBLazyListMorph(2972)
>         hScrollRangeCache:     nil
>
>
> --- The full stack ---
> ByteSymbol(Object)>>error:
> [] in WorldState>>displayWorldSafely:
> BlockClosure>>valueWithPossibleArgs:
> [] in BlockClosure>>ifError:
> BlockClosure>>valueWithPossibleArgs:
> [] in MethodContext(ContextPart)>>handleSignal:
> BlockClosure>>ensure:
> MethodContext(ContextPart)>>handleSignal:
> MessageNotUnderstood(Exception)>>signal
> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
> StrikeFontSet>>displayString:on:from:to:at:kern:
> FormCanvas>>drawString:from:to:in:font:color:
> FormCanvas(Canvas)>>drawString:in:font:color:
> OBLazyListMorph>>display:atRow:on:
> OBLazyListMorph(LazyListMorph)>>drawOn:
> FormCanvas(Canvas)>>draw:
> FormCanvas(Canvas)>>drawMorph:
> [] in OBLazyListMorph(Morph)>>fullDrawOn:
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> OBLazyListMorph(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in [] in TransformMorph>>drawSubmorphsOn:
> Array(SequenceableCollection)>>reverseDo:
> [] in TransformMorph>>drawSubmorphsOn:
> FormCanvas>>transformBy:clippingTo:during:smoothing:
> TransformMorph>>drawSubmorphsOn:
> [] in TransformMorph(Morph)>>fullDrawOn:
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> TransformMorph(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
> Array(SequenceableCollection)>>reverseDo:
> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>  - - - - - - - - - - - - - - -
>             - - - - - - - - - - - - - - - - - -
> OBPluggableListMorph(PluggableListMorph)>>drawSubmorphsOn:
> [] in OBPluggableListMorph(Morph)>>fullDrawOn:
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> OBPluggableListMorph(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in [] in OBPane(Morph)>>drawSubmorphsOn:
> Array(SequenceableCollection)>>reverseDo:
> [] in OBPane(Morph)>>drawSubmorphsOn:
> FormCanvas>>clipBy:during:
> OBPane(Morph)>>drawSubmorphsOn:
> [] in OBPane(Morph)>>fullDrawOn:
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> OBPane(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in [] in TransformMorph>>drawSubmorphsOn:
> Array(SequenceableCollection)>>reverseDo:
> [] in TransformMorph>>drawSubmorphsOn:
> FormCanvas>>transformBy:clippingTo:during:smoothing:
> TransformMorph>>drawSubmorphsOn:
> [] in TransformMorph(Morph)>>fullDrawOn:
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> TransformMorph(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
> Array(SequenceableCollection)>>reverseDo:
> [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
> OBPaneScroller(Morph)>>drawSubmorphsOn:
> [] in OBPaneScroller(Morph)>>fullDrawOn:
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> OBPaneScroller(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
> Array(SequenceableCollection)>>reverseDo:
> [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
> OBGroupingMorph(Morph)>>drawSubmorphsOn:
> [] in OBGroupingMorph(Morph)>>fullDrawOn:
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> OBGroupingMorph(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in [] in SystemWindow(Morph)>>drawSubmorphsOn:
> Array(SequenceableCollection)>>reverseDo:
> [] in SystemWindow(Morph)>>drawSubmorphsOn:
> FormCanvas>>clipBy:during:
> SystemWindow(Morph)>>drawSubmorphsOn:
> [] in SystemWindow(Morph)>>fullDrawOn:
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> SystemWindow(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
> Rectangle>>allAreasOutsideList:startingAt:do:
> Rectangle>>allAreasOutsideList:do:
> [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
> Array(SequenceableCollection)>>do:
> WorldState>>drawWorld:submorphs:invalidAreasOn:
> [] in WorldState>>displayWorld:submorphs:
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> WorldState>>displayWorld:submorphs:
> PasteUpMorph>>privateOuterDisplayWorld
> PasteUpMorph>>displayWorld
> [] in WorldState>>displayWorldSafely:
> BlockClosure>>on:do:
> BlockClosure>>ifError:
> WorldState>>displayWorldSafely:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [] in Project class>>spawnNewProcess
> [] in BlockClosure>>newProcess
>
>
> 2009/11/7 Lukas Renggli <[hidden email]>
>>
>> 2009/11/7 Stéphane Ducasse <[hidden email]>:
>> > when you are on the class side if you method has a classVariable and
>> > you want to know who access it.
>> > Then chase variables show you the class instance varaibles but not the
>> > classVariable.
>>
>> Yes, that's a bug. When you are on the class side, the class variables
>> of the meta-class are displayed. Also the labeling of the window is
>> suboptimal. I fixed these issues. Let me know if this is better now.
>>
>> Gofer new
>>       squeaksource: 'rb';
>>       addPackage: 'AST-Core';
>>       addPackage: 'Refactoring-Core';
>>       addPackage: 'Refactoring-Spelling';
>>       renggli: 'omnibrowser';
>>       addPackage: 'OmniBrowser';
>>       addPackage: 'OB-Standard';
>>       addPackage: 'OB-Morphic';
>>       addPackage: 'OB-Shout';
>>       addPackage: 'OB-Refactory';
>>       addPackage: 'OB-Regex';
>>       addPackage: 'OB-SUnitIntegration';
>>       renggli: 'unsorted';
>>       addPackage: 'Shout';
>>       addPackage: 'RoelTyper';
>>       addPackage: 'ECompletion';
>>       addPackage: 'ECompletionOmniBrowser';
>>       load;
>>       recompile
>>
>> Lukas
>>
>>
>> --
>> Lukas Renggli
>> http://www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Lukas Renggli
Something slightly unrelated:

Already last week I fixed all but one of the broken refactoring tests.
AFAIK, these tests never worked in the Squeak or Pharo port of the
refactoring engine. Last time I check we had 60 plus broken tests. Now
the situation is better:

   334 run, 333 passes, 0 expected failures, 1 failures, 0 errors, 0
unexpected passes

Furthermore, I spend an hour to fix all the OmniBrowser tests. Some of
them used to be broken in Pharo for a long time:

   546 run, 546 passes, 0 expected failures, 0 failures, 0 errors, 0
unexpected passes

Please, if you change stuff in these external packages, run the tests.
It is extremely painful to have to fix them afterwards.

Lukas

2009/11/8 Lukas Renggli <[hidden email]>:

> Hi Hernán,
>
> I cannot reproduce that problem.
>
> Looks like in you end up with a non-string in a Text class. That
> should never happen, because then the class invariants of Text are not
> met. If OB instantiates a Text like that, this is an OB bug of course,
> but I can't figure out a place where that could happen. Maybe this is
> some bug in Pharo?
>
> Lukas
>
> 2009/11/8 Hernán Morales Durand <[hidden email]>:
>> Hi Lukas,
>>   there is a little bug in the OB installation in Core #11035. To reproduce
>> it open a new system OmniBrowser and try to browse the class Trait. Below is
>> the stack trace, a fix is attached.
>>
>> Cheers
>>
>> Hernán
>>
>> 7 November 2009 9:26:35 pm
>>
>> VM: Win32 - IX86 - NT - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
>> Image: Pharo1.1a [Latest update: #11035]
>>
>> SecurityManager state:
>> Restricted: false
>> FileAccess: true
>> SocketAccess: true
>> Working Dir D:\Smalltalk\Pharo
>> Trusted Dir D:\Smalltalk\Pharo\mvs
>> Untrusted Dir C:\Documents and Settings\mvs\Mis documentos\My Squeak
>>
>> ByteSymbol(Object)>>error:
>>     Receiver: #category
>>     Arguments and temporary variables:
>>         aString:     'MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:'
>>     Receiver's instance variables:
>> #category
>>
>> [] in WorldState>>displayWorldSafely:
>>     Receiver: a WorldState
>>     Arguments and temporary variables:
>>         err:     'MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:'
>>         rcvr:     #category
>>         errCtx:     OBLazyListMorph>>display:atRow:on:
>>         errMorph:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         hands:     an Array(a HandMorph(3216))
>>         viewBox:     0@0 corner: 978@638
>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>         damageRecorder:     a DamageRecorder
>>         stepList:     a Heap(StepMessage(#stepAt: -> a SystemWindow(3984))(a
>> SystemWindow(3...etc...
>>         lastStepTime:     25826547
>>         lastStepMessage:     nil
>>         lastCycleTime:     25826376
>>         commandHistory:     a CommandHistory
>>         alarms:     a Heap()
>>         lastAlarmTime:     25826547
>>
>> BlockClosure>>valueWithPossibleArgs:
>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>     Arguments and temporary variables:
>>         anArray:     #('MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:' #catego...etc...
>>     Receiver's instance variables:
>>         outerContext:     WorldState>>displayWorldSafely:
>>         startpc:     73
>>         numArgs:     2
>>
>> [] in BlockClosure>>ifError:
>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>     Arguments and temporary variables:
>>         errorHandlerBlock:     MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:
>>         ex:     [closure] in WorldState>>displayWorldSafely:
>>     Receiver's instance variables:
>>         outerContext:     WorldState>>displayWorldSafely:
>>         startpc:     66
>>         numArgs:     0
>>
>> BlockClosure>>valueWithPossibleArgs:
>>     Receiver: [closure] in BlockClosure>>ifError:
>>     Arguments and temporary variables:
>>         anArray:     an Array(MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:)
>>     Receiver's instance variables:
>>         outerContext:     BlockClosure>>ifError:
>>         startpc:     40
>>         numArgs:     1
>>
>> [] in MethodContext(ContextPart)>>handleSignal:
>>     Receiver: BlockClosure>>on:do:
>>     Arguments and temporary variables:
>>         exception:     MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:
>>     Receiver's instance variables:
>>         sender:     BlockClosure>>ifError:
>>         pc:     17
>>         stackp:     3
>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>         closureOrNil:     nil
>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>
>> BlockClosure>>ensure:
>>     Receiver: [closure] in MethodContext(ContextPart)>>handleSignal:
>>     Arguments and temporary variables:
>>         aBlock:     [closure] in MethodContext(ContextPart)>>handleSignal:
>>         returnValue:     nil
>>         b:     nil
>>     Receiver's instance variables:
>>         outerContext:     MethodContext(ContextPart)>>handleSignal:
>>         startpc:     90
>>         numArgs:     0
>>
>> MethodContext(ContextPart)>>handleSignal:
>>     Receiver: BlockClosure>>on:do:
>>     Arguments and temporary variables:
>>         exception:     MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:
>>         val:     nil
>>     Receiver's instance variables:
>>         sender:     BlockClosure>>ifError:
>>         pc:     17
>>         stackp:     3
>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>         closureOrNil:     nil
>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>
>> MessageNotUnderstood(Exception)>>signal
>>     Receiver: MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
>>     Arguments and temporary variables:
>>
>>     Receiver's instance variables:
>>         messageText:     nil
>>         tag:     nil
>>         signalContext:     MessageNotUnderstood(Exception)>>signal
>>         handlerContext:     BlockClosure>>on:do:
>>         outerContext:     nil
>>         message:     hasWideCharacterFrom: 1 to: 8
>>         receiver:     #category
>>         reachedDefaultHandler:     false
>>
>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>>     Receiver: #category
>>     Arguments and temporary variables:
>>         aMessage:     hasWideCharacterFrom: 1 to: 8
>>         exception:     MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:
>>         resumeValue:     nil
>>     Receiver's instance variables:
>> #category
>>
>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>     Arguments and temporary variables:
>>         aString:     #category
>>         aBitBlt:     a GrafPort
>>         startIndex:     1
>>         stopIndex:     8
>>         aPoint:     701@160
>>         kernDelta:     0
>>         baselineY:     170
>>     Receiver's instance variables:
>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>         emphasis:     2
>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>> nil nil nil nil ...etc...
>>         name:     'Accuny12I'
>>         rIndex:     nil
>>
>> StrikeFontSet>>displayString:on:from:to:at:kern:
>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>     Arguments and temporary variables:
>>         aString:     #category
>>         aBitBlt:     a GrafPort
>>         startIndex:     1
>>         stopIndex:     8
>>         aPoint:     701@160
>>         kernDelta:     0
>>     Receiver's instance variables:
>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>         emphasis:     2
>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>> nil nil nil nil ...etc...
>>         name:     'Accuny12I'
>>         rIndex:     nil
>>
>> FormCanvas>>drawString:from:to:in:font:color:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aString:     a Text for #category
>>         firstIndex:     1
>>         lastIndex:     8
>>         bounds:     14@96 corner: 722@108
>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>         c:     Color black
>>         font:     a StrikeFontSet(Accuny12I 12)
>>         portRect:     684@64 corner: 850@288
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>drawString:in:font:color:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         s:     a Text for #category
>>         boundsRect:     14@96 corner: 722@108
>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>         c:     Color black
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> OBLazyListMorph>>display:atRow:on:
>>     Receiver: an OBLazyListMorph(2972)
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         bounds:     0@0 corner: 722@432
>>         owner:     a TransformMorph(73)
>>         submorphs:     #()
>>         fullBounds:     0@0 corner: 722@432
>>         color:     Color black
>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>> true)]
>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>> #asClassDefini...etc...
>>         font:     a StrikeFontSet(Accuny12 12)
>>         selectedRow:     0
>>         selectedRows:     a PluggableSet()
>>         listSource:     an OBPluggableListMorph(274)
>>         maxWidth:     702
>>
>> OBLazyListMorph(LazyListMorph)>>drawOn:
>>     Receiver: an OBLazyListMorph(2972)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>         row:     9
>>         rowLimiT:     19
>>     Receiver's instance variables:
>>         bounds:     0@0 corner: 722@432
>>         owner:     a TransformMorph(73)
>>         submorphs:     #()
>>         fullBounds:     0@0 corner: 722@432
>>         color:     Color black
>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>> true)]
>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>> #asClassDefini...etc...
>>         font:     a StrikeFontSet(Accuny12 12)
>>         selectedRow:     0
>>         selectedRows:     a PluggableSet()
>>         listSource:     an OBPluggableListMorph(274)
>>         maxWidth:     702
>>
>> FormCanvas(Canvas)>>draw:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         anObject:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>drawMorph:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>>     Receiver: an OBLazyListMorph(2972)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     0@0 corner: 722@432
>>         owner:     a TransformMorph(73)
>>         submorphs:     #()
>>         fullBounds:     0@0 corner: 722@432
>>         color:     Color black
>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>> true)]
>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>> #asClassDefini...etc...
>>         font:     a StrikeFontSet(Accuny12 12)
>>         selectedRow:     0
>>         selectedRows:     a PluggableSet()
>>         listSource:     an OBPluggableListMorph(274)
>>         maxWidth:     702
>>
>> FormCanvas>>roundCornersOf:in:during:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     an OBLazyListMorph(2972)
>>         bounds:     0@0 corner: 722@432
>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>roundCornersOf:during:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     an OBLazyListMorph(2972)
>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> OBLazyListMorph(Morph)>>fullDrawOn:
>>     Receiver: an OBLazyListMorph(2972)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     0@0 corner: 722@432
>>         owner:     a TransformMorph(73)
>>         submorphs:     #()
>>         fullBounds:     0@0 corner: 722@432
>>         color:     Color black
>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>> true)]
>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>> #asClassDefini...etc...
>>         font:     a StrikeFontSet(Accuny12 12)
>>         selectedRow:     0
>>         selectedRows:     a PluggableSet()
>>         listSource:     an OBPluggableListMorph(274)
>>         maxWidth:     702
>>
>> FormCanvas(Canvas)>>fullDraw:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         anObject:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>fullDrawMorph:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         myCanvas:     an OBLazyListMorph(2972)
>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> Array(SequenceableCollection)>>reverseDo:
>>     Receiver: an Array(an OBLazyListMorph(2972))
>>     Arguments and temporary variables:
>>         aBlock:     [closure] in [] in TransformMorph>>drawSubmorphsOn:
>>         index:     1
>>     Receiver's instance variables:
>> an Array(an OBLazyListMorph(2972))
>>
>> [] in TransformMorph>>drawSubmorphsOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         myCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aDisplayTransform:     a MorphicTransform(angle = 0.0; scale = 1.0;
>> offset = -551@0...etc...
>>         aClipRect:     548@0 corner: 714@224
>>         aBlock:     [closure] in TransformMorph>>drawSubmorphsOn:
>>         cellSize:     1
>>         innerRect:     nil
>>         patchRect:     nil
>>         sourceQuad:     nil
>>         warp:     nil
>>         start:     nil
>>         subCanvas:     nil
>>         i:     nil
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> TransformMorph>>drawSubmorphsOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> [] in TransformMorph(Morph)>>fullDrawOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> FormCanvas>>roundCornersOf:in:during:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     a TransformMorph(73)
>>         bounds:     548@0 corner: 714@224
>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>roundCornersOf:during:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     a TransformMorph(73)
>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> TransformMorph(Morph)>>fullDrawOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> FormCanvas(Canvas)>>fullDraw:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         anObject:     a TransformMorph(73)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>fullDrawMorph:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     a TransformMorph(73)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>     Receiver: an OBPluggableListMorph(274)
>>     Arguments and temporary variables:
>>         canvas:     a TransformMorph(73)
>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 727@237
>>         owner:     an OBPane(2011)
>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>> TransformMorph(73))
>>         fullBounds:     548@0 corner: 727@237
>>         color:     Color white
>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>> (dropEnabled -...etc...
>>         borderWidth:     0
>>         borderColor:     Color black
>>         model:     an OBColumn()
>>         slotName:     nil
>>         open:     false
>>         scrollBar:     a ScrollBar(2541)
>>         scroller:     a TransformMorph(73)
>>         retractableScrollBar:     false
>>         scrollBarOnLeft:     false
>>         getMenuSelector:     #menu:
>>         getMenuTitleSelector:     nil
>>         hasFocus:     false
>>         hScrollBar:     a ScrollBar(3409)
>>         list:     nil
>>         getListSelector:     #list
>>         getListSizeSelector:     #listSize
>>         getListElementSelector:     #listAt:
>>         getIndexSelector:     #selection
>>         setIndexSelector:     #selection:
>>         keystrokeActionSelector:     #keystroke:from:
>>         autoDeselect:     false
>>         lastKeystrokeTime:     0
>>         lastKeystrokes:     ''
>>         doubleClickSelector:     #doubleClick
>>         handlesBasicKeys:     nil
>>         potentialDropRow:     nil
>>         listMorph:     an OBLazyListMorph(2972)
>>         hScrollRangeCache:     nil
>>
>> Array(SequenceableCollection)>>reverseDo:
>>     Receiver: an Array(a ScrollBar(3409) a ScrollBar(2541) a
>> TransformMorph(73))
>>     Arguments and temporary variables:
>>         aBlock:     [closure] in [] in
>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>         index:     3
>>     Receiver's instance variables:
>> an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
>>
>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>     Receiver: an OBPluggableListMorph(274)
>>     Arguments and temporary variables:
>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 727@237
>>         owner:     an OBPane(2011)
>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>> TransformMorph(73))
>>         fullBounds:     548@0 corner: 727@237
>>         color:     Color white
>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>> (dropEnabled -...etc...
>>         borderWidth:     0
>>         borderColor:     Color black
>>         model:     an OBColumn()
>>         slotName:     nil
>>         open:     false
>>         scrollBar:     a ScrollBar(2541)
>>         scroller:     a TransformMorph(73)
>>         retractableScrollBar:     false
>>         scrollBarOnLeft:     false
>>         getMenuSelector:     #menu:
>>         getMenuTitleSelector:     nil
>>         hasFocus:     false
>>         hScrollBar:     a ScrollBar(3409)
>>         list:     nil
>>         getListSelector:     #list
>>         getListSizeSelector:     #listSize
>>         getListElementSelector:     #listAt:
>>         getIndexSelector:     #selection
>>         setIndexSelector:     #selection:
>>         keystrokeActionSelector:     #keystroke:from:
>>         autoDeselect:     false
>>         lastKeystrokeTime:     0
>>         lastKeystrokes:     ''
>>         doubleClickSelector:     #doubleClick
>>         handlesBasicKeys:     nil
>>         potentialDropRow:     nil
>>         listMorph:     an OBLazyListMorph(2972)
>>         hScrollRangeCache:     nil
>>
>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>     Receiver: an OBPluggableListMorph(274)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>         drawBlock:     [closure] in
>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 727@237
>>         owner:     an OBPane(2011)
>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>> TransformMorph(73))
>>         fullBounds:     548@0 corner: 727@237
>>         color:     Color white
>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>> (dropEnabled -...etc...
>>         borderWidth:     0
>>         borderColor:     Color black
>>         model:     an OBColumn()
>>         slotName:     nil
>>         open:     false
>>         scrollBar:     a ScrollBar(2541)
>>         scroller:     a TransformMorph(73)
>>         retractableScrollBar:     false
>>         scrollBarOnLeft:     false
>>         getMenuSelector:     #menu:
>>         getMenuTitleSelector:     nil
>>         hasFocus:     false
>>         hScrollBar:     a ScrollBar(3409)
>>         list:     nil
>>         getListSelector:     #list
>>         getListSizeSelector:     #listSize
>>         getListElementSelector:     #listAt:
>>         getIndexSelector:     #selection
>>         setIndexSelector:     #selection:
>>         keystrokeActionSelector:     #keystroke:from:
>>         autoDeselect:     false
>>         lastKeystrokeTime:     0
>>         lastKeystrokes:     ''
>>         doubleClickSelector:     #doubleClick
>>         handlesBasicKeys:     nil
>>         potentialDropRow:     nil
>>         listMorph:     an OBLazyListMorph(2972)
>>         hScrollRangeCache:     nil
>>
>>
>> --- The full stack ---
>> ByteSymbol(Object)>>error:
>> [] in WorldState>>displayWorldSafely:
>> BlockClosure>>valueWithPossibleArgs:
>> [] in BlockClosure>>ifError:
>> BlockClosure>>valueWithPossibleArgs:
>> [] in MethodContext(ContextPart)>>handleSignal:
>> BlockClosure>>ensure:
>> MethodContext(ContextPart)>>handleSignal:
>> MessageNotUnderstood(Exception)>>signal
>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>> StrikeFontSet>>displayString:on:from:to:at:kern:
>> FormCanvas>>drawString:from:to:in:font:color:
>> FormCanvas(Canvas)>>drawString:in:font:color:
>> OBLazyListMorph>>display:atRow:on:
>> OBLazyListMorph(LazyListMorph)>>drawOn:
>> FormCanvas(Canvas)>>draw:
>> FormCanvas(Canvas)>>drawMorph:
>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBLazyListMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in TransformMorph>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in TransformMorph>>drawSubmorphsOn:
>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>> TransformMorph>>drawSubmorphsOn:
>> [] in TransformMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> TransformMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>  - - - - - - - - - - - - - - -
>>             - - - - - - - - - - - - - - - - - -
>> OBPluggableListMorph(PluggableListMorph)>>drawSubmorphsOn:
>> [] in OBPluggableListMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBPluggableListMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in OBPane(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in OBPane(Morph)>>drawSubmorphsOn:
>> FormCanvas>>clipBy:during:
>> OBPane(Morph)>>drawSubmorphsOn:
>> [] in OBPane(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBPane(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in TransformMorph>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in TransformMorph>>drawSubmorphsOn:
>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>> TransformMorph>>drawSubmorphsOn:
>> [] in TransformMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> TransformMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>> OBPaneScroller(Morph)>>drawSubmorphsOn:
>> [] in OBPaneScroller(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBPaneScroller(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>> OBGroupingMorph(Morph)>>drawSubmorphsOn:
>> [] in OBGroupingMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBGroupingMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in SystemWindow(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in SystemWindow(Morph)>>drawSubmorphsOn:
>> FormCanvas>>clipBy:during:
>> SystemWindow(Morph)>>drawSubmorphsOn:
>> [] in SystemWindow(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> SystemWindow(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>> Rectangle>>allAreasOutsideList:startingAt:do:
>> Rectangle>>allAreasOutsideList:do:
>> [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>> Array(SequenceableCollection)>>do:
>> WorldState>>drawWorld:submorphs:invalidAreasOn:
>> [] in WorldState>>displayWorld:submorphs:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> WorldState>>displayWorld:submorphs:
>> PasteUpMorph>>privateOuterDisplayWorld
>> PasteUpMorph>>displayWorld
>> [] in WorldState>>displayWorldSafely:
>> BlockClosure>>on:do:
>> BlockClosure>>ifError:
>> WorldState>>displayWorldSafely:
>> WorldState>>doOneCycleNowFor:
>> WorldState>>doOneCycleFor:
>> PasteUpMorph>>doOneCycle
>> [] in Project class>>spawnNewProcess
>> [] in BlockClosure>>newProcess
>>
>>
>> 2009/11/7 Lukas Renggli <[hidden email]>
>>>
>>> 2009/11/7 Stéphane Ducasse <[hidden email]>:
>>> > when you are on the class side if you method has a classVariable and
>>> > you want to know who access it.
>>> > Then chase variables show you the class instance varaibles but not the
>>> > classVariable.
>>>
>>> Yes, that's a bug. When you are on the class side, the class variables
>>> of the meta-class are displayed. Also the labeling of the window is
>>> suboptimal. I fixed these issues. Let me know if this is better now.
>>>
>>> Gofer new
>>>       squeaksource: 'rb';
>>>       addPackage: 'AST-Core';
>>>       addPackage: 'Refactoring-Core';
>>>       addPackage: 'Refactoring-Spelling';
>>>       renggli: 'omnibrowser';
>>>       addPackage: 'OmniBrowser';
>>>       addPackage: 'OB-Standard';
>>>       addPackage: 'OB-Morphic';
>>>       addPackage: 'OB-Shout';
>>>       addPackage: 'OB-Refactory';
>>>       addPackage: 'OB-Regex';
>>>       addPackage: 'OB-SUnitIntegration';
>>>       renggli: 'unsorted';
>>>       addPackage: 'Shout';
>>>       addPackage: 'RoelTyper';
>>>       addPackage: 'ECompletion';
>>>       addPackage: 'ECompletionOmniBrowser';
>>>       load;
>>>       recompile
>>>
>>> Lukas
>>>
>>>
>>> --
>>> Lukas Renggli
>>> http://www.lukas-renggli.ch
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
>



--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Stéphane Ducasse

On Nov 8, 2009, at 10:21 AM, Lukas Renggli wrote:

> Something slightly unrelated:
>
> Already last week I fixed all but one of the broken refactoring tests.
> AFAIK, these tests never worked in the Squeak or Pharo port of the
> refactoring engine. Last time I check we had 60 plus broken tests. Now
> the situation is better:
>
>   334 run, 333 passes, 0 expected failures, 1 failures, 0 errors, 0
> unexpected passes

Excellent
Because they were refactoring I could not understand their effect

> Furthermore, I spend an hour to fix all the OmniBrowser tests. Some of
> them used to be broken in Pharo for a long time:
>
>   546 run, 546 passes, 0 expected failures, 0 failures, 0 errors, 0
> unexpected passes
>
> Please, if you change stuff in these external packages, run the tests.
> It is extremely painful to have to fix them afterwards.

Yeah!
This is why this is important that we manage external (but dev  
packages in our change process).


Stef

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Stéphane Ducasse
In reply to this post by Lukas Renggli
Ok I will check again

On Nov 7, 2009, at 10:30 PM, Lukas Renggli wrote:

>> And so far this is not the case. In fact I preferred the old way
>> because it was dead simple and
>> working. accesses to iv /accesses to classVar.
>
> I find it dead simple. Clicking on 'variables' always shows you what
> you can see from the current browsing context:


In the menu?


> - When you are on the instance side you see instance and class  
> variables.
> - When you are on the class side you see (class) instance and class  
> variables.
>
> Lukas
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Lukas Renggli
>>> And so far this is not the case. In fact I preferred the old way
>>> because it was dead simple and
>>> working. accesses to iv /accesses to classVar.
>>
>> I find it dead simple. Clicking on 'variables' always shows you what
>> you can see from the current browsing context:
>
> In the menu?

It is the same if you open the browser from the menu or from the toolbar.

Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Nicolas Cellier
In reply to this post by Lukas Renggli
Hi Lukas,
found the same problem again in a MCMergeBrowser

There are pure Symbols and Symbol asText in the list of changes.
This list of changes is computed in
MCPatchBrowser>>list
        ^ self items collect: [:ea | ea summary]

In my case, the second element of the list was a

MCConflict>MCAddition>MCClassDefinition

The summary of the addition is #BlockArgsNode, the summary of the
conflict is #BlockArgsNode asText

So yes, with this model, there will be String, Symbol, Text on: String
and Text on: Symbol in the list.
All need to be displayed, and I think it will be faster to patch the
display than eliminate all the Symbol usage in lists.
After all, (#BlockArgsNode isKindOf: String) -> true, so why wouldn't
it make a good Text ?

Nicolas

2009/11/8 Lukas Renggli <[hidden email]>:

> Hi Hernán,
>
> I cannot reproduce that problem.
>
> Looks like in you end up with a non-string in a Text class. That
> should never happen, because then the class invariants of Text are not
> met. If OB instantiates a Text like that, this is an OB bug of course,
> but I can't figure out a place where that could happen. Maybe this is
> some bug in Pharo?
>
> Lukas
>
> 2009/11/8 Hernán Morales Durand <[hidden email]>:
>> Hi Lukas,
>>   there is a little bug in the OB installation in Core #11035. To reproduce
>> it open a new system OmniBrowser and try to browse the class Trait. Below is
>> the stack trace, a fix is attached.
>>
>> Cheers
>>
>> Hernán
>>
>> 7 November 2009 9:26:35 pm
>>
>> VM: Win32 - IX86 - NT - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
>> Image: Pharo1.1a [Latest update: #11035]
>>
>> SecurityManager state:
>> Restricted: false
>> FileAccess: true
>> SocketAccess: true
>> Working Dir D:\Smalltalk\Pharo
>> Trusted Dir D:\Smalltalk\Pharo\mvs
>> Untrusted Dir C:\Documents and Settings\mvs\Mis documentos\My Squeak
>>
>> ByteSymbol(Object)>>error:
>>     Receiver: #category
>>     Arguments and temporary variables:
>>         aString:     'MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:'
>>     Receiver's instance variables:
>> #category
>>
>> [] in WorldState>>displayWorldSafely:
>>     Receiver: a WorldState
>>     Arguments and temporary variables:
>>         err:     'MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:'
>>         rcvr:     #category
>>         errCtx:     OBLazyListMorph>>display:atRow:on:
>>         errMorph:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         hands:     an Array(a HandMorph(3216))
>>         viewBox:     0@0 corner: 978@638
>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>         damageRecorder:     a DamageRecorder
>>         stepList:     a Heap(StepMessage(#stepAt: -> a SystemWindow(3984))(a
>> SystemWindow(3...etc...
>>         lastStepTime:     25826547
>>         lastStepMessage:     nil
>>         lastCycleTime:     25826376
>>         commandHistory:     a CommandHistory
>>         alarms:     a Heap()
>>         lastAlarmTime:     25826547
>>
>> BlockClosure>>valueWithPossibleArgs:
>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>     Arguments and temporary variables:
>>         anArray:     #('MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:' #catego...etc...
>>     Receiver's instance variables:
>>         outerContext:     WorldState>>displayWorldSafely:
>>         startpc:     73
>>         numArgs:     2
>>
>> [] in BlockClosure>>ifError:
>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>     Arguments and temporary variables:
>>         errorHandlerBlock:     MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:
>>         ex:     [closure] in WorldState>>displayWorldSafely:
>>     Receiver's instance variables:
>>         outerContext:     WorldState>>displayWorldSafely:
>>         startpc:     66
>>         numArgs:     0
>>
>> BlockClosure>>valueWithPossibleArgs:
>>     Receiver: [closure] in BlockClosure>>ifError:
>>     Arguments and temporary variables:
>>         anArray:     an Array(MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:)
>>     Receiver's instance variables:
>>         outerContext:     BlockClosure>>ifError:
>>         startpc:     40
>>         numArgs:     1
>>
>> [] in MethodContext(ContextPart)>>handleSignal:
>>     Receiver: BlockClosure>>on:do:
>>     Arguments and temporary variables:
>>         exception:     MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:
>>     Receiver's instance variables:
>>         sender:     BlockClosure>>ifError:
>>         pc:     17
>>         stackp:     3
>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>         closureOrNil:     nil
>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>
>> BlockClosure>>ensure:
>>     Receiver: [closure] in MethodContext(ContextPart)>>handleSignal:
>>     Arguments and temporary variables:
>>         aBlock:     [closure] in MethodContext(ContextPart)>>handleSignal:
>>         returnValue:     nil
>>         b:     nil
>>     Receiver's instance variables:
>>         outerContext:     MethodContext(ContextPart)>>handleSignal:
>>         startpc:     90
>>         numArgs:     0
>>
>> MethodContext(ContextPart)>>handleSignal:
>>     Receiver: BlockClosure>>on:do:
>>     Arguments and temporary variables:
>>         exception:     MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:
>>         val:     nil
>>     Receiver's instance variables:
>>         sender:     BlockClosure>>ifError:
>>         pc:     17
>>         stackp:     3
>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>         closureOrNil:     nil
>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>
>> MessageNotUnderstood(Exception)>>signal
>>     Receiver: MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
>>     Arguments and temporary variables:
>>
>>     Receiver's instance variables:
>>         messageText:     nil
>>         tag:     nil
>>         signalContext:     MessageNotUnderstood(Exception)>>signal
>>         handlerContext:     BlockClosure>>on:do:
>>         outerContext:     nil
>>         message:     hasWideCharacterFrom: 1 to: 8
>>         receiver:     #category
>>         reachedDefaultHandler:     false
>>
>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>>     Receiver: #category
>>     Arguments and temporary variables:
>>         aMessage:     hasWideCharacterFrom: 1 to: 8
>>         exception:     MessageNotUnderstood:
>> ByteSymbol>>hasWideCharacterFrom:to:
>>         resumeValue:     nil
>>     Receiver's instance variables:
>> #category
>>
>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>     Arguments and temporary variables:
>>         aString:     #category
>>         aBitBlt:     a GrafPort
>>         startIndex:     1
>>         stopIndex:     8
>>         aPoint:     701@160
>>         kernDelta:     0
>>         baselineY:     170
>>     Receiver's instance variables:
>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>         emphasis:     2
>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>> nil nil nil nil ...etc...
>>         name:     'Accuny12I'
>>         rIndex:     nil
>>
>> StrikeFontSet>>displayString:on:from:to:at:kern:
>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>     Arguments and temporary variables:
>>         aString:     #category
>>         aBitBlt:     a GrafPort
>>         startIndex:     1
>>         stopIndex:     8
>>         aPoint:     701@160
>>         kernDelta:     0
>>     Receiver's instance variables:
>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>         emphasis:     2
>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>> nil nil nil nil ...etc...
>>         name:     'Accuny12I'
>>         rIndex:     nil
>>
>> FormCanvas>>drawString:from:to:in:font:color:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aString:     a Text for #category
>>         firstIndex:     1
>>         lastIndex:     8
>>         bounds:     14@96 corner: 722@108
>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>         c:     Color black
>>         font:     a StrikeFontSet(Accuny12I 12)
>>         portRect:     684@64 corner: 850@288
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>drawString:in:font:color:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         s:     a Text for #category
>>         boundsRect:     14@96 corner: 722@108
>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>         c:     Color black
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> OBLazyListMorph>>display:atRow:on:
>>     Receiver: an OBLazyListMorph(2972)
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         bounds:     0@0 corner: 722@432
>>         owner:     a TransformMorph(73)
>>         submorphs:     #()
>>         fullBounds:     0@0 corner: 722@432
>>         color:     Color black
>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>> true)]
>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>> #asClassDefini...etc...
>>         font:     a StrikeFontSet(Accuny12 12)
>>         selectedRow:     0
>>         selectedRows:     a PluggableSet()
>>         listSource:     an OBPluggableListMorph(274)
>>         maxWidth:     702
>>
>> OBLazyListMorph(LazyListMorph)>>drawOn:
>>     Receiver: an OBLazyListMorph(2972)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>         row:     9
>>         rowLimiT:     19
>>     Receiver's instance variables:
>>         bounds:     0@0 corner: 722@432
>>         owner:     a TransformMorph(73)
>>         submorphs:     #()
>>         fullBounds:     0@0 corner: 722@432
>>         color:     Color black
>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>> true)]
>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>> #asClassDefini...etc...
>>         font:     a StrikeFontSet(Accuny12 12)
>>         selectedRow:     0
>>         selectedRows:     a PluggableSet()
>>         listSource:     an OBPluggableListMorph(274)
>>         maxWidth:     702
>>
>> FormCanvas(Canvas)>>draw:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         anObject:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>drawMorph:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>>     Receiver: an OBLazyListMorph(2972)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     0@0 corner: 722@432
>>         owner:     a TransformMorph(73)
>>         submorphs:     #()
>>         fullBounds:     0@0 corner: 722@432
>>         color:     Color black
>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>> true)]
>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>> #asClassDefini...etc...
>>         font:     a StrikeFontSet(Accuny12 12)
>>         selectedRow:     0
>>         selectedRows:     a PluggableSet()
>>         listSource:     an OBPluggableListMorph(274)
>>         maxWidth:     702
>>
>> FormCanvas>>roundCornersOf:in:during:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     an OBLazyListMorph(2972)
>>         bounds:     0@0 corner: 722@432
>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>roundCornersOf:during:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     an OBLazyListMorph(2972)
>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> OBLazyListMorph(Morph)>>fullDrawOn:
>>     Receiver: an OBLazyListMorph(2972)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     0@0 corner: 722@432
>>         owner:     a TransformMorph(73)
>>         submorphs:     #()
>>         fullBounds:     0@0 corner: 722@432
>>         color:     Color black
>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>> true)]
>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>> #asClassDefini...etc...
>>         font:     a StrikeFontSet(Accuny12 12)
>>         selectedRow:     0
>>         selectedRows:     a PluggableSet()
>>         listSource:     an OBPluggableListMorph(274)
>>         maxWidth:     702
>>
>> FormCanvas(Canvas)>>fullDraw:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         anObject:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>fullDrawMorph:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     an OBLazyListMorph(2972)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     687@64
>>         clipRect:     684@64 corner: 850@288
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         myCanvas:     an OBLazyListMorph(2972)
>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> Array(SequenceableCollection)>>reverseDo:
>>     Receiver: an Array(an OBLazyListMorph(2972))
>>     Arguments and temporary variables:
>>         aBlock:     [closure] in [] in TransformMorph>>drawSubmorphsOn:
>>         index:     1
>>     Receiver's instance variables:
>> an Array(an OBLazyListMorph(2972))
>>
>> [] in TransformMorph>>drawSubmorphsOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         myCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aDisplayTransform:     a MorphicTransform(angle = 0.0; scale = 1.0;
>> offset = -551@0...etc...
>>         aClipRect:     548@0 corner: 714@224
>>         aBlock:     [closure] in TransformMorph>>drawSubmorphsOn:
>>         cellSize:     1
>>         innerRect:     nil
>>         patchRect:     nil
>>         sourceQuad:     nil
>>         warp:     nil
>>         start:     nil
>>         subCanvas:     nil
>>         i:     nil
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> TransformMorph>>drawSubmorphsOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> [] in TransformMorph(Morph)>>fullDrawOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> FormCanvas>>roundCornersOf:in:during:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     a TransformMorph(73)
>>         bounds:     548@0 corner: 714@224
>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>roundCornersOf:during:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     a TransformMorph(73)
>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> TransformMorph(Morph)>>fullDrawOn:
>>     Receiver: a TransformMorph(73)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 714@224
>>         owner:     an OBPluggableListMorph(274)
>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>         fullBounds:     548@0 corner: 714@224
>>         color:     Color transparent
>>         extension:     nil
>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>> -551@0)
>>         smoothing:     1
>>         localBounds:     nil
>>
>> FormCanvas(Canvas)>>fullDraw:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         anObject:     a TransformMorph(73)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> FormCanvas(Canvas)>>fullDrawMorph:
>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>     Arguments and temporary variables:
>>         aMorph:     a TransformMorph(73)
>>     Receiver's instance variables:
>>         target:     nil
>>         filterSelector:     nil
>>         origin:     136@64
>>         clipRect:     684@64 corner: 863@301
>>         form:     DisplayScreen(978x638x32)
>>         port:     a GrafPort
>>         shadowColor:     nil
>>
>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>     Receiver: an OBPluggableListMorph(274)
>>     Arguments and temporary variables:
>>         canvas:     a TransformMorph(73)
>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 727@237
>>         owner:     an OBPane(2011)
>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>> TransformMorph(73))
>>         fullBounds:     548@0 corner: 727@237
>>         color:     Color white
>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>> (dropEnabled -...etc...
>>         borderWidth:     0
>>         borderColor:     Color black
>>         model:     an OBColumn()
>>         slotName:     nil
>>         open:     false
>>         scrollBar:     a ScrollBar(2541)
>>         scroller:     a TransformMorph(73)
>>         retractableScrollBar:     false
>>         scrollBarOnLeft:     false
>>         getMenuSelector:     #menu:
>>         getMenuTitleSelector:     nil
>>         hasFocus:     false
>>         hScrollBar:     a ScrollBar(3409)
>>         list:     nil
>>         getListSelector:     #list
>>         getListSizeSelector:     #listSize
>>         getListElementSelector:     #listAt:
>>         getIndexSelector:     #selection
>>         setIndexSelector:     #selection:
>>         keystrokeActionSelector:     #keystroke:from:
>>         autoDeselect:     false
>>         lastKeystrokeTime:     0
>>         lastKeystrokes:     ''
>>         doubleClickSelector:     #doubleClick
>>         handlesBasicKeys:     nil
>>         potentialDropRow:     nil
>>         listMorph:     an OBLazyListMorph(2972)
>>         hScrollRangeCache:     nil
>>
>> Array(SequenceableCollection)>>reverseDo:
>>     Receiver: an Array(a ScrollBar(3409) a ScrollBar(2541) a
>> TransformMorph(73))
>>     Arguments and temporary variables:
>>         aBlock:     [closure] in [] in
>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>         index:     3
>>     Receiver's instance variables:
>> an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
>>
>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>     Receiver: an OBPluggableListMorph(274)
>>     Arguments and temporary variables:
>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 727@237
>>         owner:     an OBPane(2011)
>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>> TransformMorph(73))
>>         fullBounds:     548@0 corner: 727@237
>>         color:     Color white
>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>> (dropEnabled -...etc...
>>         borderWidth:     0
>>         borderColor:     Color black
>>         model:     an OBColumn()
>>         slotName:     nil
>>         open:     false
>>         scrollBar:     a ScrollBar(2541)
>>         scroller:     a TransformMorph(73)
>>         retractableScrollBar:     false
>>         scrollBarOnLeft:     false
>>         getMenuSelector:     #menu:
>>         getMenuTitleSelector:     nil
>>         hasFocus:     false
>>         hScrollBar:     a ScrollBar(3409)
>>         list:     nil
>>         getListSelector:     #list
>>         getListSizeSelector:     #listSize
>>         getListElementSelector:     #listAt:
>>         getIndexSelector:     #selection
>>         setIndexSelector:     #selection:
>>         keystrokeActionSelector:     #keystroke:from:
>>         autoDeselect:     false
>>         lastKeystrokeTime:     0
>>         lastKeystrokes:     ''
>>         doubleClickSelector:     #doubleClick
>>         handlesBasicKeys:     nil
>>         potentialDropRow:     nil
>>         listMorph:     an OBLazyListMorph(2972)
>>         hScrollRangeCache:     nil
>>
>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>     Receiver: an OBPluggableListMorph(274)
>>     Arguments and temporary variables:
>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>         drawBlock:     [closure] in
>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>     Receiver's instance variables:
>>         bounds:     548@0 corner: 727@237
>>         owner:     an OBPane(2011)
>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>> TransformMorph(73))
>>         fullBounds:     548@0 corner: 727@237
>>         color:     Color white
>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>> (dropEnabled -...etc...
>>         borderWidth:     0
>>         borderColor:     Color black
>>         model:     an OBColumn()
>>         slotName:     nil
>>         open:     false
>>         scrollBar:     a ScrollBar(2541)
>>         scroller:     a TransformMorph(73)
>>         retractableScrollBar:     false
>>         scrollBarOnLeft:     false
>>         getMenuSelector:     #menu:
>>         getMenuTitleSelector:     nil
>>         hasFocus:     false
>>         hScrollBar:     a ScrollBar(3409)
>>         list:     nil
>>         getListSelector:     #list
>>         getListSizeSelector:     #listSize
>>         getListElementSelector:     #listAt:
>>         getIndexSelector:     #selection
>>         setIndexSelector:     #selection:
>>         keystrokeActionSelector:     #keystroke:from:
>>         autoDeselect:     false
>>         lastKeystrokeTime:     0
>>         lastKeystrokes:     ''
>>         doubleClickSelector:     #doubleClick
>>         handlesBasicKeys:     nil
>>         potentialDropRow:     nil
>>         listMorph:     an OBLazyListMorph(2972)
>>         hScrollRangeCache:     nil
>>
>>
>> --- The full stack ---
>> ByteSymbol(Object)>>error:
>> [] in WorldState>>displayWorldSafely:
>> BlockClosure>>valueWithPossibleArgs:
>> [] in BlockClosure>>ifError:
>> BlockClosure>>valueWithPossibleArgs:
>> [] in MethodContext(ContextPart)>>handleSignal:
>> BlockClosure>>ensure:
>> MethodContext(ContextPart)>>handleSignal:
>> MessageNotUnderstood(Exception)>>signal
>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>> StrikeFontSet>>displayString:on:from:to:at:kern:
>> FormCanvas>>drawString:from:to:in:font:color:
>> FormCanvas(Canvas)>>drawString:in:font:color:
>> OBLazyListMorph>>display:atRow:on:
>> OBLazyListMorph(LazyListMorph)>>drawOn:
>> FormCanvas(Canvas)>>draw:
>> FormCanvas(Canvas)>>drawMorph:
>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBLazyListMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in TransformMorph>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in TransformMorph>>drawSubmorphsOn:
>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>> TransformMorph>>drawSubmorphsOn:
>> [] in TransformMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> TransformMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>  - - - - - - - - - - - - - - -
>>             - - - - - - - - - - - - - - - - - -
>> OBPluggableListMorph(PluggableListMorph)>>drawSubmorphsOn:
>> [] in OBPluggableListMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBPluggableListMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in OBPane(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in OBPane(Morph)>>drawSubmorphsOn:
>> FormCanvas>>clipBy:during:
>> OBPane(Morph)>>drawSubmorphsOn:
>> [] in OBPane(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBPane(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in TransformMorph>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in TransformMorph>>drawSubmorphsOn:
>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>> TransformMorph>>drawSubmorphsOn:
>> [] in TransformMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> TransformMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>> OBPaneScroller(Morph)>>drawSubmorphsOn:
>> [] in OBPaneScroller(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBPaneScroller(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>> OBGroupingMorph(Morph)>>drawSubmorphsOn:
>> [] in OBGroupingMorph(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> OBGroupingMorph(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in SystemWindow(Morph)>>drawSubmorphsOn:
>> Array(SequenceableCollection)>>reverseDo:
>> [] in SystemWindow(Morph)>>drawSubmorphsOn:
>> FormCanvas>>clipBy:during:
>> SystemWindow(Morph)>>drawSubmorphsOn:
>> [] in SystemWindow(Morph)>>fullDrawOn:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> SystemWindow(Morph)>>fullDrawOn:
>> FormCanvas(Canvas)>>fullDraw:
>> FormCanvas(Canvas)>>fullDrawMorph:
>> [] in [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>> Rectangle>>allAreasOutsideList:startingAt:do:
>> Rectangle>>allAreasOutsideList:do:
>> [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>> Array(SequenceableCollection)>>do:
>> WorldState>>drawWorld:submorphs:invalidAreasOn:
>> [] in WorldState>>displayWorld:submorphs:
>> FormCanvas>>roundCornersOf:in:during:
>> FormCanvas(Canvas)>>roundCornersOf:during:
>> WorldState>>displayWorld:submorphs:
>> PasteUpMorph>>privateOuterDisplayWorld
>> PasteUpMorph>>displayWorld
>> [] in WorldState>>displayWorldSafely:
>> BlockClosure>>on:do:
>> BlockClosure>>ifError:
>> WorldState>>displayWorldSafely:
>> WorldState>>doOneCycleNowFor:
>> WorldState>>doOneCycleFor:
>> PasteUpMorph>>doOneCycle
>> [] in Project class>>spawnNewProcess
>> [] in BlockClosure>>newProcess
>>
>>
>> 2009/11/7 Lukas Renggli <[hidden email]>
>>>
>>> 2009/11/7 Stéphane Ducasse <[hidden email]>:
>>> > when you are on the class side if you method has a classVariable and
>>> > you want to know who access it.
>>> > Then chase variables show you the class instance varaibles but not the
>>> > classVariable.
>>>
>>> Yes, that's a bug. When you are on the class side, the class variables
>>> of the meta-class are displayed. Also the labeling of the window is
>>> suboptimal. I fixed these issues. Let me know if this is better now.
>>>
>>> Gofer new
>>>       squeaksource: 'rb';
>>>       addPackage: 'AST-Core';
>>>       addPackage: 'Refactoring-Core';
>>>       addPackage: 'Refactoring-Spelling';
>>>       renggli: 'omnibrowser';
>>>       addPackage: 'OmniBrowser';
>>>       addPackage: 'OB-Standard';
>>>       addPackage: 'OB-Morphic';
>>>       addPackage: 'OB-Shout';
>>>       addPackage: 'OB-Refactory';
>>>       addPackage: 'OB-Regex';
>>>       addPackage: 'OB-SUnitIntegration';
>>>       renggli: 'unsorted';
>>>       addPackage: 'Shout';
>>>       addPackage: 'RoelTyper';
>>>       addPackage: 'ECompletion';
>>>       addPackage: 'ECompletionOmniBrowser';
>>>       load;
>>>       recompile
>>>
>>> Lukas
>>>
>>>
>>> --
>>> Lukas Renggli
>>> http://www.lukas-renggli.ch
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Lukas Renggli
I cannot reproduce the problem. There must be a different cause in
your image, which is the root of the problem and should be fixed.

In all my images all Text object contain only Strings:

  Text allInstances reject: [ :each | each string isString ]
    --> #()

  Text allInstances select: [ :each | each string isSymbol ]
    --> #()

Lukas

2009/11/9 Nicolas Cellier <[hidden email]>:

> Hi Lukas,
> found the same problem again in a MCMergeBrowser
>
> There are pure Symbols and Symbol asText in the list of changes.
> This list of changes is computed in
> MCPatchBrowser>>list
>        ^ self items collect: [:ea | ea summary]
>
> In my case, the second element of the list was a
>
> MCConflict>MCAddition>MCClassDefinition
>
> The summary of the addition is #BlockArgsNode, the summary of the
> conflict is #BlockArgsNode asText
>
> So yes, with this model, there will be String, Symbol, Text on: String
> and Text on: Symbol in the list.
> All need to be displayed, and I think it will be faster to patch the
> display than eliminate all the Symbol usage in lists.
> After all, (#BlockArgsNode isKindOf: String) -> true, so why wouldn't
> it make a good Text ?
>
> Nicolas
>
> 2009/11/8 Lukas Renggli <[hidden email]>:
>> Hi Hernán,
>>
>> I cannot reproduce that problem.
>>
>> Looks like in you end up with a non-string in a Text class. That
>> should never happen, because then the class invariants of Text are not
>> met. If OB instantiates a Text like that, this is an OB bug of course,
>> but I can't figure out a place where that could happen. Maybe this is
>> some bug in Pharo?
>>
>> Lukas
>>
>> 2009/11/8 Hernán Morales Durand <[hidden email]>:
>>> Hi Lukas,
>>>   there is a little bug in the OB installation in Core #11035. To reproduce
>>> it open a new system OmniBrowser and try to browse the class Trait. Below is
>>> the stack trace, a fix is attached.
>>>
>>> Cheers
>>>
>>> Hernán
>>>
>>> 7 November 2009 9:26:35 pm
>>>
>>> VM: Win32 - IX86 - NT - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
>>> Image: Pharo1.1a [Latest update: #11035]
>>>
>>> SecurityManager state:
>>> Restricted: false
>>> FileAccess: true
>>> SocketAccess: true
>>> Working Dir D:\Smalltalk\Pharo
>>> Trusted Dir D:\Smalltalk\Pharo\mvs
>>> Untrusted Dir C:\Documents and Settings\mvs\Mis documentos\My Squeak
>>>
>>> ByteSymbol(Object)>>error:
>>>     Receiver: #category
>>>     Arguments and temporary variables:
>>>         aString:     'MessageNotUnderstood:
>>> ByteSymbol>>hasWideCharacterFrom:to:'
>>>     Receiver's instance variables:
>>> #category
>>>
>>> [] in WorldState>>displayWorldSafely:
>>>     Receiver: a WorldState
>>>     Arguments and temporary variables:
>>>         err:     'MessageNotUnderstood:
>>> ByteSymbol>>hasWideCharacterFrom:to:'
>>>         rcvr:     #category
>>>         errCtx:     OBLazyListMorph>>display:atRow:on:
>>>         errMorph:     an OBLazyListMorph(2972)
>>>     Receiver's instance variables:
>>>         hands:     an Array(a HandMorph(3216))
>>>         viewBox:     0@0 corner: 978@638
>>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>         damageRecorder:     a DamageRecorder
>>>         stepList:     a Heap(StepMessage(#stepAt: -> a SystemWindow(3984))(a
>>> SystemWindow(3...etc...
>>>         lastStepTime:     25826547
>>>         lastStepMessage:     nil
>>>         lastCycleTime:     25826376
>>>         commandHistory:     a CommandHistory
>>>         alarms:     a Heap()
>>>         lastAlarmTime:     25826547
>>>
>>> BlockClosure>>valueWithPossibleArgs:
>>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>>     Arguments and temporary variables:
>>>         anArray:     #('MessageNotUnderstood:
>>> ByteSymbol>>hasWideCharacterFrom:to:' #catego...etc...
>>>     Receiver's instance variables:
>>>         outerContext:     WorldState>>displayWorldSafely:
>>>         startpc:     73
>>>         numArgs:     2
>>>
>>> [] in BlockClosure>>ifError:
>>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>>     Arguments and temporary variables:
>>>         errorHandlerBlock:     MessageNotUnderstood:
>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>         ex:     [closure] in WorldState>>displayWorldSafely:
>>>     Receiver's instance variables:
>>>         outerContext:     WorldState>>displayWorldSafely:
>>>         startpc:     66
>>>         numArgs:     0
>>>
>>> BlockClosure>>valueWithPossibleArgs:
>>>     Receiver: [closure] in BlockClosure>>ifError:
>>>     Arguments and temporary variables:
>>>         anArray:     an Array(MessageNotUnderstood:
>>> ByteSymbol>>hasWideCharacterFrom:to:)
>>>     Receiver's instance variables:
>>>         outerContext:     BlockClosure>>ifError:
>>>         startpc:     40
>>>         numArgs:     1
>>>
>>> [] in MethodContext(ContextPart)>>handleSignal:
>>>     Receiver: BlockClosure>>on:do:
>>>     Arguments and temporary variables:
>>>         exception:     MessageNotUnderstood:
>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>     Receiver's instance variables:
>>>         sender:     BlockClosure>>ifError:
>>>         pc:     17
>>>         stackp:     3
>>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>>         closureOrNil:     nil
>>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>>
>>> BlockClosure>>ensure:
>>>     Receiver: [closure] in MethodContext(ContextPart)>>handleSignal:
>>>     Arguments and temporary variables:
>>>         aBlock:     [closure] in MethodContext(ContextPart)>>handleSignal:
>>>         returnValue:     nil
>>>         b:     nil
>>>     Receiver's instance variables:
>>>         outerContext:     MethodContext(ContextPart)>>handleSignal:
>>>         startpc:     90
>>>         numArgs:     0
>>>
>>> MethodContext(ContextPart)>>handleSignal:
>>>     Receiver: BlockClosure>>on:do:
>>>     Arguments and temporary variables:
>>>         exception:     MessageNotUnderstood:
>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>         val:     nil
>>>     Receiver's instance variables:
>>>         sender:     BlockClosure>>ifError:
>>>         pc:     17
>>>         stackp:     3
>>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>>         closureOrNil:     nil
>>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>>
>>> MessageNotUnderstood(Exception)>>signal
>>>     Receiver: MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
>>>     Arguments and temporary variables:
>>>
>>>     Receiver's instance variables:
>>>         messageText:     nil
>>>         tag:     nil
>>>         signalContext:     MessageNotUnderstood(Exception)>>signal
>>>         handlerContext:     BlockClosure>>on:do:
>>>         outerContext:     nil
>>>         message:     hasWideCharacterFrom: 1 to: 8
>>>         receiver:     #category
>>>         reachedDefaultHandler:     false
>>>
>>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>>>     Receiver: #category
>>>     Arguments and temporary variables:
>>>         aMessage:     hasWideCharacterFrom: 1 to: 8
>>>         exception:     MessageNotUnderstood:
>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>         resumeValue:     nil
>>>     Receiver's instance variables:
>>> #category
>>>
>>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>>     Arguments and temporary variables:
>>>         aString:     #category
>>>         aBitBlt:     a GrafPort
>>>         startIndex:     1
>>>         stopIndex:     8
>>>         aPoint:     701@160
>>>         kernDelta:     0
>>>         baselineY:     170
>>>     Receiver's instance variables:
>>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>>         emphasis:     2
>>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>>> nil nil nil nil ...etc...
>>>         name:     'Accuny12I'
>>>         rIndex:     nil
>>>
>>> StrikeFontSet>>displayString:on:from:to:at:kern:
>>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>>     Arguments and temporary variables:
>>>         aString:     #category
>>>         aBitBlt:     a GrafPort
>>>         startIndex:     1
>>>         stopIndex:     8
>>>         aPoint:     701@160
>>>         kernDelta:     0
>>>     Receiver's instance variables:
>>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>>         emphasis:     2
>>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>>> nil nil nil nil ...etc...
>>>         name:     'Accuny12I'
>>>         rIndex:     nil
>>>
>>> FormCanvas>>drawString:from:to:in:font:color:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         aString:     a Text for #category
>>>         firstIndex:     1
>>>         lastIndex:     8
>>>         bounds:     14@96 corner: 722@108
>>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>>         c:     Color black
>>>         font:     a StrikeFontSet(Accuny12I 12)
>>>         portRect:     684@64 corner: 850@288
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     687@64
>>>         clipRect:     684@64 corner: 850@288
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> FormCanvas(Canvas)>>drawString:in:font:color:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         s:     a Text for #category
>>>         boundsRect:     14@96 corner: 722@108
>>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>>         c:     Color black
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     687@64
>>>         clipRect:     684@64 corner: 850@288
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> OBLazyListMorph>>display:atRow:on:
>>>     Receiver: an OBLazyListMorph(2972)
>>>     Arguments and temporary variables:
>>> <<error during printing>
>>>     Receiver's instance variables:
>>>         bounds:     0@0 corner: 722@432
>>>         owner:     a TransformMorph(73)
>>>         submorphs:     #()
>>>         fullBounds:     0@0 corner: 722@432
>>>         color:     Color black
>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>> true)]
>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>> #asClassDefini...etc...
>>>         font:     a StrikeFontSet(Accuny12 12)
>>>         selectedRow:     0
>>>         selectedRows:     a PluggableSet()
>>>         listSource:     an OBPluggableListMorph(274)
>>>         maxWidth:     702
>>>
>>> OBLazyListMorph(LazyListMorph)>>drawOn:
>>>     Receiver: an OBLazyListMorph(2972)
>>>     Arguments and temporary variables:
>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>         row:     9
>>>         rowLimiT:     19
>>>     Receiver's instance variables:
>>>         bounds:     0@0 corner: 722@432
>>>         owner:     a TransformMorph(73)
>>>         submorphs:     #()
>>>         fullBounds:     0@0 corner: 722@432
>>>         color:     Color black
>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>> true)]
>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>> #asClassDefini...etc...
>>>         font:     a StrikeFontSet(Accuny12 12)
>>>         selectedRow:     0
>>>         selectedRows:     a PluggableSet()
>>>         listSource:     an OBPluggableListMorph(274)
>>>         maxWidth:     702
>>>
>>> FormCanvas(Canvas)>>draw:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         anObject:     an OBLazyListMorph(2972)
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     687@64
>>>         clipRect:     684@64 corner: 850@288
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> FormCanvas(Canvas)>>drawMorph:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         aMorph:     an OBLazyListMorph(2972)
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     687@64
>>>         clipRect:     684@64 corner: 850@288
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>     Receiver: an OBLazyListMorph(2972)
>>>     Arguments and temporary variables:
>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>     Receiver's instance variables:
>>>         bounds:     0@0 corner: 722@432
>>>         owner:     a TransformMorph(73)
>>>         submorphs:     #()
>>>         fullBounds:     0@0 corner: 722@432
>>>         color:     Color black
>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>> true)]
>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>> #asClassDefini...etc...
>>>         font:     a StrikeFontSet(Accuny12 12)
>>>         selectedRow:     0
>>>         selectedRows:     a PluggableSet()
>>>         listSource:     an OBPluggableListMorph(274)
>>>         maxWidth:     702
>>>
>>> FormCanvas>>roundCornersOf:in:during:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         aMorph:     an OBLazyListMorph(2972)
>>>         bounds:     0@0 corner: 722@432
>>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     687@64
>>>         clipRect:     684@64 corner: 850@288
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         aMorph:     an OBLazyListMorph(2972)
>>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     687@64
>>>         clipRect:     684@64 corner: 850@288
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> OBLazyListMorph(Morph)>>fullDrawOn:
>>>     Receiver: an OBLazyListMorph(2972)
>>>     Arguments and temporary variables:
>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>     Receiver's instance variables:
>>>         bounds:     0@0 corner: 722@432
>>>         owner:     a TransformMorph(73)
>>>         submorphs:     #()
>>>         fullBounds:     0@0 corner: 722@432
>>>         color:     Color black
>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>> true)]
>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>> #asClassDefini...etc...
>>>         font:     a StrikeFontSet(Accuny12 12)
>>>         selectedRow:     0
>>>         selectedRows:     a PluggableSet()
>>>         listSource:     an OBPluggableListMorph(274)
>>>         maxWidth:     702
>>>
>>> FormCanvas(Canvas)>>fullDraw:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         anObject:     an OBLazyListMorph(2972)
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     687@64
>>>         clipRect:     684@64 corner: 850@288
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         aMorph:     an OBLazyListMorph(2972)
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     687@64
>>>         clipRect:     684@64 corner: 850@288
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>>     Receiver: a TransformMorph(73)
>>>     Arguments and temporary variables:
>>>         myCanvas:     an OBLazyListMorph(2972)
>>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>>     Receiver's instance variables:
>>>         bounds:     548@0 corner: 714@224
>>>         owner:     an OBPluggableListMorph(274)
>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>         fullBounds:     548@0 corner: 714@224
>>>         color:     Color transparent
>>>         extension:     nil
>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>> -551@0)
>>>         smoothing:     1
>>>         localBounds:     nil
>>>
>>> Array(SequenceableCollection)>>reverseDo:
>>>     Receiver: an Array(an OBLazyListMorph(2972))
>>>     Arguments and temporary variables:
>>>         aBlock:     [closure] in [] in TransformMorph>>drawSubmorphsOn:
>>>         index:     1
>>>     Receiver's instance variables:
>>> an Array(an OBLazyListMorph(2972))
>>>
>>> [] in TransformMorph>>drawSubmorphsOn:
>>>     Receiver: a TransformMorph(73)
>>>     Arguments and temporary variables:
>>>         myCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>     Receiver's instance variables:
>>>         bounds:     548@0 corner: 714@224
>>>         owner:     an OBPluggableListMorph(274)
>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>         fullBounds:     548@0 corner: 714@224
>>>         color:     Color transparent
>>>         extension:     nil
>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>> -551@0)
>>>         smoothing:     1
>>>         localBounds:     nil
>>>
>>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         aDisplayTransform:     a MorphicTransform(angle = 0.0; scale = 1.0;
>>> offset = -551@0...etc...
>>>         aClipRect:     548@0 corner: 714@224
>>>         aBlock:     [closure] in TransformMorph>>drawSubmorphsOn:
>>>         cellSize:     1
>>>         innerRect:     nil
>>>         patchRect:     nil
>>>         sourceQuad:     nil
>>>         warp:     nil
>>>         start:     nil
>>>         subCanvas:     nil
>>>         i:     nil
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     136@64
>>>         clipRect:     684@64 corner: 863@301
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> TransformMorph>>drawSubmorphsOn:
>>>     Receiver: a TransformMorph(73)
>>>     Arguments and temporary variables:
>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>     Receiver's instance variables:
>>>         bounds:     548@0 corner: 714@224
>>>         owner:     an OBPluggableListMorph(274)
>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>         fullBounds:     548@0 corner: 714@224
>>>         color:     Color transparent
>>>         extension:     nil
>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>> -551@0)
>>>         smoothing:     1
>>>         localBounds:     nil
>>>
>>> [] in TransformMorph(Morph)>>fullDrawOn:
>>>     Receiver: a TransformMorph(73)
>>>     Arguments and temporary variables:
>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>     Receiver's instance variables:
>>>         bounds:     548@0 corner: 714@224
>>>         owner:     an OBPluggableListMorph(274)
>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>         fullBounds:     548@0 corner: 714@224
>>>         color:     Color transparent
>>>         extension:     nil
>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>> -551@0)
>>>         smoothing:     1
>>>         localBounds:     nil
>>>
>>> FormCanvas>>roundCornersOf:in:during:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         aMorph:     a TransformMorph(73)
>>>         bounds:     548@0 corner: 714@224
>>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     136@64
>>>         clipRect:     684@64 corner: 863@301
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         aMorph:     a TransformMorph(73)
>>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     136@64
>>>         clipRect:     684@64 corner: 863@301
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> TransformMorph(Morph)>>fullDrawOn:
>>>     Receiver: a TransformMorph(73)
>>>     Arguments and temporary variables:
>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>     Receiver's instance variables:
>>>         bounds:     548@0 corner: 714@224
>>>         owner:     an OBPluggableListMorph(274)
>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>         fullBounds:     548@0 corner: 714@224
>>>         color:     Color transparent
>>>         extension:     nil
>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>> -551@0)
>>>         smoothing:     1
>>>         localBounds:     nil
>>>
>>> FormCanvas(Canvas)>>fullDraw:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         anObject:     a TransformMorph(73)
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     136@64
>>>         clipRect:     684@64 corner: 863@301
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>     Arguments and temporary variables:
>>>         aMorph:     a TransformMorph(73)
>>>     Receiver's instance variables:
>>>         target:     nil
>>>         filterSelector:     nil
>>>         origin:     136@64
>>>         clipRect:     684@64 corner: 863@301
>>>         form:     DisplayScreen(978x638x32)
>>>         port:     a GrafPort
>>>         shadowColor:     nil
>>>
>>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>     Receiver: an OBPluggableListMorph(274)
>>>     Arguments and temporary variables:
>>>         canvas:     a TransformMorph(73)
>>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>>     Receiver's instance variables:
>>>         bounds:     548@0 corner: 727@237
>>>         owner:     an OBPane(2011)
>>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>> TransformMorph(73))
>>>         fullBounds:     548@0 corner: 727@237
>>>         color:     Color white
>>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>>> (dropEnabled -...etc...
>>>         borderWidth:     0
>>>         borderColor:     Color black
>>>         model:     an OBColumn()
>>>         slotName:     nil
>>>         open:     false
>>>         scrollBar:     a ScrollBar(2541)
>>>         scroller:     a TransformMorph(73)
>>>         retractableScrollBar:     false
>>>         scrollBarOnLeft:     false
>>>         getMenuSelector:     #menu:
>>>         getMenuTitleSelector:     nil
>>>         hasFocus:     false
>>>         hScrollBar:     a ScrollBar(3409)
>>>         list:     nil
>>>         getListSelector:     #list
>>>         getListSizeSelector:     #listSize
>>>         getListElementSelector:     #listAt:
>>>         getIndexSelector:     #selection
>>>         setIndexSelector:     #selection:
>>>         keystrokeActionSelector:     #keystroke:from:
>>>         autoDeselect:     false
>>>         lastKeystrokeTime:     0
>>>         lastKeystrokes:     ''
>>>         doubleClickSelector:     #doubleClick
>>>         handlesBasicKeys:     nil
>>>         potentialDropRow:     nil
>>>         listMorph:     an OBLazyListMorph(2972)
>>>         hScrollRangeCache:     nil
>>>
>>> Array(SequenceableCollection)>>reverseDo:
>>>     Receiver: an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>> TransformMorph(73))
>>>     Arguments and temporary variables:
>>>         aBlock:     [closure] in [] in
>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>         index:     3
>>>     Receiver's instance variables:
>>> an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
>>>
>>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>     Receiver: an OBPluggableListMorph(274)
>>>     Arguments and temporary variables:
>>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>     Receiver's instance variables:
>>>         bounds:     548@0 corner: 727@237
>>>         owner:     an OBPane(2011)
>>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>> TransformMorph(73))
>>>         fullBounds:     548@0 corner: 727@237
>>>         color:     Color white
>>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>>> (dropEnabled -...etc...
>>>         borderWidth:     0
>>>         borderColor:     Color black
>>>         model:     an OBColumn()
>>>         slotName:     nil
>>>         open:     false
>>>         scrollBar:     a ScrollBar(2541)
>>>         scroller:     a TransformMorph(73)
>>>         retractableScrollBar:     false
>>>         scrollBarOnLeft:     false
>>>         getMenuSelector:     #menu:
>>>         getMenuTitleSelector:     nil
>>>         hasFocus:     false
>>>         hScrollBar:     a ScrollBar(3409)
>>>         list:     nil
>>>         getListSelector:     #list
>>>         getListSizeSelector:     #listSize
>>>         getListElementSelector:     #listAt:
>>>         getIndexSelector:     #selection
>>>         setIndexSelector:     #selection:
>>>         keystrokeActionSelector:     #keystroke:from:
>>>         autoDeselect:     false
>>>         lastKeystrokeTime:     0
>>>         lastKeystrokes:     ''
>>>         doubleClickSelector:     #doubleClick
>>>         handlesBasicKeys:     nil
>>>         potentialDropRow:     nil
>>>         listMorph:     an OBLazyListMorph(2972)
>>>         hScrollRangeCache:     nil
>>>
>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>     Receiver: an OBPluggableListMorph(274)
>>>     Arguments and temporary variables:
>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>         drawBlock:     [closure] in
>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>     Receiver's instance variables:
>>>         bounds:     548@0 corner: 727@237
>>>         owner:     an OBPane(2011)
>>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>> TransformMorph(73))
>>>         fullBounds:     548@0 corner: 727@237
>>>         color:     Color white
>>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>>> (dropEnabled -...etc...
>>>         borderWidth:     0
>>>         borderColor:     Color black
>>>         model:     an OBColumn()
>>>         slotName:     nil
>>>         open:     false
>>>         scrollBar:     a ScrollBar(2541)
>>>         scroller:     a TransformMorph(73)
>>>         retractableScrollBar:     false
>>>         scrollBarOnLeft:     false
>>>         getMenuSelector:     #menu:
>>>         getMenuTitleSelector:     nil
>>>         hasFocus:     false
>>>         hScrollBar:     a ScrollBar(3409)
>>>         list:     nil
>>>         getListSelector:     #list
>>>         getListSizeSelector:     #listSize
>>>         getListElementSelector:     #listAt:
>>>         getIndexSelector:     #selection
>>>         setIndexSelector:     #selection:
>>>         keystrokeActionSelector:     #keystroke:from:
>>>         autoDeselect:     false
>>>         lastKeystrokeTime:     0
>>>         lastKeystrokes:     ''
>>>         doubleClickSelector:     #doubleClick
>>>         handlesBasicKeys:     nil
>>>         potentialDropRow:     nil
>>>         listMorph:     an OBLazyListMorph(2972)
>>>         hScrollRangeCache:     nil
>>>
>>>
>>> --- The full stack ---
>>> ByteSymbol(Object)>>error:
>>> [] in WorldState>>displayWorldSafely:
>>> BlockClosure>>valueWithPossibleArgs:
>>> [] in BlockClosure>>ifError:
>>> BlockClosure>>valueWithPossibleArgs:
>>> [] in MethodContext(ContextPart)>>handleSignal:
>>> BlockClosure>>ensure:
>>> MethodContext(ContextPart)>>handleSignal:
>>> MessageNotUnderstood(Exception)>>signal
>>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>>> StrikeFontSet>>displayString:on:from:to:at:kern:
>>> FormCanvas>>drawString:from:to:in:font:color:
>>> FormCanvas(Canvas)>>drawString:in:font:color:
>>> OBLazyListMorph>>display:atRow:on:
>>> OBLazyListMorph(LazyListMorph)>>drawOn:
>>> FormCanvas(Canvas)>>draw:
>>> FormCanvas(Canvas)>>drawMorph:
>>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>>> FormCanvas>>roundCornersOf:in:during:
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>> OBLazyListMorph(Morph)>>fullDrawOn:
>>> FormCanvas(Canvas)>>fullDraw:
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>> Array(SequenceableCollection)>>reverseDo:
>>> [] in TransformMorph>>drawSubmorphsOn:
>>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>> TransformMorph>>drawSubmorphsOn:
>>> [] in TransformMorph(Morph)>>fullDrawOn:
>>> FormCanvas>>roundCornersOf:in:during:
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>> TransformMorph(Morph)>>fullDrawOn:
>>> FormCanvas(Canvas)>>fullDraw:
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>> Array(SequenceableCollection)>>reverseDo:
>>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>  - - - - - - - - - - - - - - -
>>>             - - - - - - - - - - - - - - - - - -
>>> OBPluggableListMorph(PluggableListMorph)>>drawSubmorphsOn:
>>> [] in OBPluggableListMorph(Morph)>>fullDrawOn:
>>> FormCanvas>>roundCornersOf:in:during:
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>> OBPluggableListMorph(Morph)>>fullDrawOn:
>>> FormCanvas(Canvas)>>fullDraw:
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>> [] in [] in OBPane(Morph)>>drawSubmorphsOn:
>>> Array(SequenceableCollection)>>reverseDo:
>>> [] in OBPane(Morph)>>drawSubmorphsOn:
>>> FormCanvas>>clipBy:during:
>>> OBPane(Morph)>>drawSubmorphsOn:
>>> [] in OBPane(Morph)>>fullDrawOn:
>>> FormCanvas>>roundCornersOf:in:during:
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>> OBPane(Morph)>>fullDrawOn:
>>> FormCanvas(Canvas)>>fullDraw:
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>> Array(SequenceableCollection)>>reverseDo:
>>> [] in TransformMorph>>drawSubmorphsOn:
>>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>> TransformMorph>>drawSubmorphsOn:
>>> [] in TransformMorph(Morph)>>fullDrawOn:
>>> FormCanvas>>roundCornersOf:in:during:
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>> TransformMorph(Morph)>>fullDrawOn:
>>> FormCanvas(Canvas)>>fullDraw:
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>> [] in [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>>> Array(SequenceableCollection)>>reverseDo:
>>> [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>>> OBPaneScroller(Morph)>>drawSubmorphsOn:
>>> [] in OBPaneScroller(Morph)>>fullDrawOn:
>>> FormCanvas>>roundCornersOf:in:during:
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>> OBPaneScroller(Morph)>>fullDrawOn:
>>> FormCanvas(Canvas)>>fullDraw:
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>> [] in [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>>> Array(SequenceableCollection)>>reverseDo:
>>> [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>>> OBGroupingMorph(Morph)>>drawSubmorphsOn:
>>> [] in OBGroupingMorph(Morph)>>fullDrawOn:
>>> FormCanvas>>roundCornersOf:in:during:
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>> OBGroupingMorph(Morph)>>fullDrawOn:
>>> FormCanvas(Canvas)>>fullDraw:
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>> [] in [] in SystemWindow(Morph)>>drawSubmorphsOn:
>>> Array(SequenceableCollection)>>reverseDo:
>>> [] in SystemWindow(Morph)>>drawSubmorphsOn:
>>> FormCanvas>>clipBy:during:
>>> SystemWindow(Morph)>>drawSubmorphsOn:
>>> [] in SystemWindow(Morph)>>fullDrawOn:
>>> FormCanvas>>roundCornersOf:in:during:
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>> SystemWindow(Morph)>>fullDrawOn:
>>> FormCanvas(Canvas)>>fullDraw:
>>> FormCanvas(Canvas)>>fullDrawMorph:
>>> [] in [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>>> Rectangle>>allAreasOutsideList:startingAt:do:
>>> Rectangle>>allAreasOutsideList:do:
>>> [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>>> Array(SequenceableCollection)>>do:
>>> WorldState>>drawWorld:submorphs:invalidAreasOn:
>>> [] in WorldState>>displayWorld:submorphs:
>>> FormCanvas>>roundCornersOf:in:during:
>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>> WorldState>>displayWorld:submorphs:
>>> PasteUpMorph>>privateOuterDisplayWorld
>>> PasteUpMorph>>displayWorld
>>> [] in WorldState>>displayWorldSafely:
>>> BlockClosure>>on:do:
>>> BlockClosure>>ifError:
>>> WorldState>>displayWorldSafely:
>>> WorldState>>doOneCycleNowFor:
>>> WorldState>>doOneCycleFor:
>>> PasteUpMorph>>doOneCycle
>>> [] in Project class>>spawnNewProcess
>>> [] in BlockClosure>>newProcess
>>>
>>>
>>> 2009/11/7 Lukas Renggli <[hidden email]>
>>>>
>>>> 2009/11/7 Stéphane Ducasse <[hidden email]>:
>>>> > when you are on the class side if you method has a classVariable and
>>>> > you want to know who access it.
>>>> > Then chase variables show you the class instance varaibles but not the
>>>> > classVariable.
>>>>
>>>> Yes, that's a bug. When you are on the class side, the class variables
>>>> of the meta-class are displayed. Also the labeling of the window is
>>>> suboptimal. I fixed these issues. Let me know if this is better now.
>>>>
>>>> Gofer new
>>>>       squeaksource: 'rb';
>>>>       addPackage: 'AST-Core';
>>>>       addPackage: 'Refactoring-Core';
>>>>       addPackage: 'Refactoring-Spelling';
>>>>       renggli: 'omnibrowser';
>>>>       addPackage: 'OmniBrowser';
>>>>       addPackage: 'OB-Standard';
>>>>       addPackage: 'OB-Morphic';
>>>>       addPackage: 'OB-Shout';
>>>>       addPackage: 'OB-Refactory';
>>>>       addPackage: 'OB-Regex';
>>>>       addPackage: 'OB-SUnitIntegration';
>>>>       renggli: 'unsorted';
>>>>       addPackage: 'Shout';
>>>>       addPackage: 'RoelTyper';
>>>>       addPackage: 'ECompletion';
>>>>       addPackage: 'ECompletionOmniBrowser';
>>>>       load;
>>>>       recompile
>>>>
>>>> Lukas
>>>>
>>>>
>>>> --
>>>> Lukas Renggli
>>>> http://www.lukas-renggli.ch
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>>
>>
>> --
>> Lukas Renggli
>> http://www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Lukas Renggli
Maybe you can find the creator of the Text instances with Text inside
by modifying Text>>#setString:setRuns:?

  Text>>setString: aString setRuns: anArray
        (aString isText)
                ifTrue: [ self haltOnce ].
        string := aString.
        runs := anArray

Don't forget to enable the halt: World > Debug > Enable halt once

Lukas

2009/11/9 Lukas Renggli <[hidden email]>:

> I cannot reproduce the problem. There must be a different cause in
> your image, which is the root of the problem and should be fixed.
>
> In all my images all Text object contain only Strings:
>
>  Text allInstances reject: [ :each | each string isString ]
>    --> #()
>
>  Text allInstances select: [ :each | each string isSymbol ]
>    --> #()
>
> Lukas
>
> 2009/11/9 Nicolas Cellier <[hidden email]>:
>> Hi Lukas,
>> found the same problem again in a MCMergeBrowser
>>
>> There are pure Symbols and Symbol asText in the list of changes.
>> This list of changes is computed in
>> MCPatchBrowser>>list
>>        ^ self items collect: [:ea | ea summary]
>>
>> In my case, the second element of the list was a
>>
>> MCConflict>MCAddition>MCClassDefinition
>>
>> The summary of the addition is #BlockArgsNode, the summary of the
>> conflict is #BlockArgsNode asText
>>
>> So yes, with this model, there will be String, Symbol, Text on: String
>> and Text on: Symbol in the list.
>> All need to be displayed, and I think it will be faster to patch the
>> display than eliminate all the Symbol usage in lists.
>> After all, (#BlockArgsNode isKindOf: String) -> true, so why wouldn't
>> it make a good Text ?
>>
>> Nicolas
>>
>> 2009/11/8 Lukas Renggli <[hidden email]>:
>>> Hi Hernán,
>>>
>>> I cannot reproduce that problem.
>>>
>>> Looks like in you end up with a non-string in a Text class. That
>>> should never happen, because then the class invariants of Text are not
>>> met. If OB instantiates a Text like that, this is an OB bug of course,
>>> but I can't figure out a place where that could happen. Maybe this is
>>> some bug in Pharo?
>>>
>>> Lukas
>>>
>>> 2009/11/8 Hernán Morales Durand <[hidden email]>:
>>>> Hi Lukas,
>>>>   there is a little bug in the OB installation in Core #11035. To reproduce
>>>> it open a new system OmniBrowser and try to browse the class Trait. Below is
>>>> the stack trace, a fix is attached.
>>>>
>>>> Cheers
>>>>
>>>> Hernán
>>>>
>>>> 7 November 2009 9:26:35 pm
>>>>
>>>> VM: Win32 - IX86 - NT - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
>>>> Image: Pharo1.1a [Latest update: #11035]
>>>>
>>>> SecurityManager state:
>>>> Restricted: false
>>>> FileAccess: true
>>>> SocketAccess: true
>>>> Working Dir D:\Smalltalk\Pharo
>>>> Trusted Dir D:\Smalltalk\Pharo\mvs
>>>> Untrusted Dir C:\Documents and Settings\mvs\Mis documentos\My Squeak
>>>>
>>>> ByteSymbol(Object)>>error:
>>>>     Receiver: #category
>>>>     Arguments and temporary variables:
>>>>         aString:     'MessageNotUnderstood:
>>>> ByteSymbol>>hasWideCharacterFrom:to:'
>>>>     Receiver's instance variables:
>>>> #category
>>>>
>>>> [] in WorldState>>displayWorldSafely:
>>>>     Receiver: a WorldState
>>>>     Arguments and temporary variables:
>>>>         err:     'MessageNotUnderstood:
>>>> ByteSymbol>>hasWideCharacterFrom:to:'
>>>>         rcvr:     #category
>>>>         errCtx:     OBLazyListMorph>>display:atRow:on:
>>>>         errMorph:     an OBLazyListMorph(2972)
>>>>     Receiver's instance variables:
>>>>         hands:     an Array(a HandMorph(3216))
>>>>         viewBox:     0@0 corner: 978@638
>>>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>         damageRecorder:     a DamageRecorder
>>>>         stepList:     a Heap(StepMessage(#stepAt: -> a SystemWindow(3984))(a
>>>> SystemWindow(3...etc...
>>>>         lastStepTime:     25826547
>>>>         lastStepMessage:     nil
>>>>         lastCycleTime:     25826376
>>>>         commandHistory:     a CommandHistory
>>>>         alarms:     a Heap()
>>>>         lastAlarmTime:     25826547
>>>>
>>>> BlockClosure>>valueWithPossibleArgs:
>>>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>>>     Arguments and temporary variables:
>>>>         anArray:     #('MessageNotUnderstood:
>>>> ByteSymbol>>hasWideCharacterFrom:to:' #catego...etc...
>>>>     Receiver's instance variables:
>>>>         outerContext:     WorldState>>displayWorldSafely:
>>>>         startpc:     73
>>>>         numArgs:     2
>>>>
>>>> [] in BlockClosure>>ifError:
>>>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>>>     Arguments and temporary variables:
>>>>         errorHandlerBlock:     MessageNotUnderstood:
>>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>>         ex:     [closure] in WorldState>>displayWorldSafely:
>>>>     Receiver's instance variables:
>>>>         outerContext:     WorldState>>displayWorldSafely:
>>>>         startpc:     66
>>>>         numArgs:     0
>>>>
>>>> BlockClosure>>valueWithPossibleArgs:
>>>>     Receiver: [closure] in BlockClosure>>ifError:
>>>>     Arguments and temporary variables:
>>>>         anArray:     an Array(MessageNotUnderstood:
>>>> ByteSymbol>>hasWideCharacterFrom:to:)
>>>>     Receiver's instance variables:
>>>>         outerContext:     BlockClosure>>ifError:
>>>>         startpc:     40
>>>>         numArgs:     1
>>>>
>>>> [] in MethodContext(ContextPart)>>handleSignal:
>>>>     Receiver: BlockClosure>>on:do:
>>>>     Arguments and temporary variables:
>>>>         exception:     MessageNotUnderstood:
>>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>>     Receiver's instance variables:
>>>>         sender:     BlockClosure>>ifError:
>>>>         pc:     17
>>>>         stackp:     3
>>>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>>>         closureOrNil:     nil
>>>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>>>
>>>> BlockClosure>>ensure:
>>>>     Receiver: [closure] in MethodContext(ContextPart)>>handleSignal:
>>>>     Arguments and temporary variables:
>>>>         aBlock:     [closure] in MethodContext(ContextPart)>>handleSignal:
>>>>         returnValue:     nil
>>>>         b:     nil
>>>>     Receiver's instance variables:
>>>>         outerContext:     MethodContext(ContextPart)>>handleSignal:
>>>>         startpc:     90
>>>>         numArgs:     0
>>>>
>>>> MethodContext(ContextPart)>>handleSignal:
>>>>     Receiver: BlockClosure>>on:do:
>>>>     Arguments and temporary variables:
>>>>         exception:     MessageNotUnderstood:
>>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>>         val:     nil
>>>>     Receiver's instance variables:
>>>>         sender:     BlockClosure>>ifError:
>>>>         pc:     17
>>>>         stackp:     3
>>>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>>>         closureOrNil:     nil
>>>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>>>
>>>> MessageNotUnderstood(Exception)>>signal
>>>>     Receiver: MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
>>>>     Arguments and temporary variables:
>>>>
>>>>     Receiver's instance variables:
>>>>         messageText:     nil
>>>>         tag:     nil
>>>>         signalContext:     MessageNotUnderstood(Exception)>>signal
>>>>         handlerContext:     BlockClosure>>on:do:
>>>>         outerContext:     nil
>>>>         message:     hasWideCharacterFrom: 1 to: 8
>>>>         receiver:     #category
>>>>         reachedDefaultHandler:     false
>>>>
>>>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>>>>     Receiver: #category
>>>>     Arguments and temporary variables:
>>>>         aMessage:     hasWideCharacterFrom: 1 to: 8
>>>>         exception:     MessageNotUnderstood:
>>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>>         resumeValue:     nil
>>>>     Receiver's instance variables:
>>>> #category
>>>>
>>>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>>>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>>>     Arguments and temporary variables:
>>>>         aString:     #category
>>>>         aBitBlt:     a GrafPort
>>>>         startIndex:     1
>>>>         stopIndex:     8
>>>>         aPoint:     701@160
>>>>         kernDelta:     0
>>>>         baselineY:     170
>>>>     Receiver's instance variables:
>>>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>>>         emphasis:     2
>>>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>>>> nil nil nil nil ...etc...
>>>>         name:     'Accuny12I'
>>>>         rIndex:     nil
>>>>
>>>> StrikeFontSet>>displayString:on:from:to:at:kern:
>>>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>>>     Arguments and temporary variables:
>>>>         aString:     #category
>>>>         aBitBlt:     a GrafPort
>>>>         startIndex:     1
>>>>         stopIndex:     8
>>>>         aPoint:     701@160
>>>>         kernDelta:     0
>>>>     Receiver's instance variables:
>>>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>>>         emphasis:     2
>>>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>>>> nil nil nil nil ...etc...
>>>>         name:     'Accuny12I'
>>>>         rIndex:     nil
>>>>
>>>> FormCanvas>>drawString:from:to:in:font:color:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         aString:     a Text for #category
>>>>         firstIndex:     1
>>>>         lastIndex:     8
>>>>         bounds:     14@96 corner: 722@108
>>>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>>>         c:     Color black
>>>>         font:     a StrikeFontSet(Accuny12I 12)
>>>>         portRect:     684@64 corner: 850@288
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     687@64
>>>>         clipRect:     684@64 corner: 850@288
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> FormCanvas(Canvas)>>drawString:in:font:color:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         s:     a Text for #category
>>>>         boundsRect:     14@96 corner: 722@108
>>>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>>>         c:     Color black
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     687@64
>>>>         clipRect:     684@64 corner: 850@288
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> OBLazyListMorph>>display:atRow:on:
>>>>     Receiver: an OBLazyListMorph(2972)
>>>>     Arguments and temporary variables:
>>>> <<error during printing>
>>>>     Receiver's instance variables:
>>>>         bounds:     0@0 corner: 722@432
>>>>         owner:     a TransformMorph(73)
>>>>         submorphs:     #()
>>>>         fullBounds:     0@0 corner: 722@432
>>>>         color:     Color black
>>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>>> true)]
>>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>>> #asClassDefini...etc...
>>>>         font:     a StrikeFontSet(Accuny12 12)
>>>>         selectedRow:     0
>>>>         selectedRows:     a PluggableSet()
>>>>         listSource:     an OBPluggableListMorph(274)
>>>>         maxWidth:     702
>>>>
>>>> OBLazyListMorph(LazyListMorph)>>drawOn:
>>>>     Receiver: an OBLazyListMorph(2972)
>>>>     Arguments and temporary variables:
>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>         row:     9
>>>>         rowLimiT:     19
>>>>     Receiver's instance variables:
>>>>         bounds:     0@0 corner: 722@432
>>>>         owner:     a TransformMorph(73)
>>>>         submorphs:     #()
>>>>         fullBounds:     0@0 corner: 722@432
>>>>         color:     Color black
>>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>>> true)]
>>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>>> #asClassDefini...etc...
>>>>         font:     a StrikeFontSet(Accuny12 12)
>>>>         selectedRow:     0
>>>>         selectedRows:     a PluggableSet()
>>>>         listSource:     an OBPluggableListMorph(274)
>>>>         maxWidth:     702
>>>>
>>>> FormCanvas(Canvas)>>draw:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         anObject:     an OBLazyListMorph(2972)
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     687@64
>>>>         clipRect:     684@64 corner: 850@288
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> FormCanvas(Canvas)>>drawMorph:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         aMorph:     an OBLazyListMorph(2972)
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     687@64
>>>>         clipRect:     684@64 corner: 850@288
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>>     Receiver: an OBLazyListMorph(2972)
>>>>     Arguments and temporary variables:
>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Receiver's instance variables:
>>>>         bounds:     0@0 corner: 722@432
>>>>         owner:     a TransformMorph(73)
>>>>         submorphs:     #()
>>>>         fullBounds:     0@0 corner: 722@432
>>>>         color:     Color black
>>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>>> true)]
>>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>>> #asClassDefini...etc...
>>>>         font:     a StrikeFontSet(Accuny12 12)
>>>>         selectedRow:     0
>>>>         selectedRows:     a PluggableSet()
>>>>         listSource:     an OBPluggableListMorph(274)
>>>>         maxWidth:     702
>>>>
>>>> FormCanvas>>roundCornersOf:in:during:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         aMorph:     an OBLazyListMorph(2972)
>>>>         bounds:     0@0 corner: 722@432
>>>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     687@64
>>>>         clipRect:     684@64 corner: 850@288
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         aMorph:     an OBLazyListMorph(2972)
>>>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     687@64
>>>>         clipRect:     684@64 corner: 850@288
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> OBLazyListMorph(Morph)>>fullDrawOn:
>>>>     Receiver: an OBLazyListMorph(2972)
>>>>     Arguments and temporary variables:
>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Receiver's instance variables:
>>>>         bounds:     0@0 corner: 722@432
>>>>         owner:     a TransformMorph(73)
>>>>         submorphs:     #()
>>>>         fullBounds:     0@0 corner: 722@432
>>>>         color:     Color black
>>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>>> true)]
>>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>>> #asClassDefini...etc...
>>>>         font:     a StrikeFontSet(Accuny12 12)
>>>>         selectedRow:     0
>>>>         selectedRows:     a PluggableSet()
>>>>         listSource:     an OBPluggableListMorph(274)
>>>>         maxWidth:     702
>>>>
>>>> FormCanvas(Canvas)>>fullDraw:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         anObject:     an OBLazyListMorph(2972)
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     687@64
>>>>         clipRect:     684@64 corner: 850@288
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         aMorph:     an OBLazyListMorph(2972)
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     687@64
>>>>         clipRect:     684@64 corner: 850@288
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>>>     Receiver: a TransformMorph(73)
>>>>     Arguments and temporary variables:
>>>>         myCanvas:     an OBLazyListMorph(2972)
>>>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Receiver's instance variables:
>>>>         bounds:     548@0 corner: 714@224
>>>>         owner:     an OBPluggableListMorph(274)
>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>         fullBounds:     548@0 corner: 714@224
>>>>         color:     Color transparent
>>>>         extension:     nil
>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>> -551@0)
>>>>         smoothing:     1
>>>>         localBounds:     nil
>>>>
>>>> Array(SequenceableCollection)>>reverseDo:
>>>>     Receiver: an Array(an OBLazyListMorph(2972))
>>>>     Arguments and temporary variables:
>>>>         aBlock:     [closure] in [] in TransformMorph>>drawSubmorphsOn:
>>>>         index:     1
>>>>     Receiver's instance variables:
>>>> an Array(an OBLazyListMorph(2972))
>>>>
>>>> [] in TransformMorph>>drawSubmorphsOn:
>>>>     Receiver: a TransformMorph(73)
>>>>     Arguments and temporary variables:
>>>>         myCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Receiver's instance variables:
>>>>         bounds:     548@0 corner: 714@224
>>>>         owner:     an OBPluggableListMorph(274)
>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>         fullBounds:     548@0 corner: 714@224
>>>>         color:     Color transparent
>>>>         extension:     nil
>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>> -551@0)
>>>>         smoothing:     1
>>>>         localBounds:     nil
>>>>
>>>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         aDisplayTransform:     a MorphicTransform(angle = 0.0; scale = 1.0;
>>>> offset = -551@0...etc...
>>>>         aClipRect:     548@0 corner: 714@224
>>>>         aBlock:     [closure] in TransformMorph>>drawSubmorphsOn:
>>>>         cellSize:     1
>>>>         innerRect:     nil
>>>>         patchRect:     nil
>>>>         sourceQuad:     nil
>>>>         warp:     nil
>>>>         start:     nil
>>>>         subCanvas:     nil
>>>>         i:     nil
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     136@64
>>>>         clipRect:     684@64 corner: 863@301
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> TransformMorph>>drawSubmorphsOn:
>>>>     Receiver: a TransformMorph(73)
>>>>     Arguments and temporary variables:
>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Receiver's instance variables:
>>>>         bounds:     548@0 corner: 714@224
>>>>         owner:     an OBPluggableListMorph(274)
>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>         fullBounds:     548@0 corner: 714@224
>>>>         color:     Color transparent
>>>>         extension:     nil
>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>> -551@0)
>>>>         smoothing:     1
>>>>         localBounds:     nil
>>>>
>>>> [] in TransformMorph(Morph)>>fullDrawOn:
>>>>     Receiver: a TransformMorph(73)
>>>>     Arguments and temporary variables:
>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Receiver's instance variables:
>>>>         bounds:     548@0 corner: 714@224
>>>>         owner:     an OBPluggableListMorph(274)
>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>         fullBounds:     548@0 corner: 714@224
>>>>         color:     Color transparent
>>>>         extension:     nil
>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>> -551@0)
>>>>         smoothing:     1
>>>>         localBounds:     nil
>>>>
>>>> FormCanvas>>roundCornersOf:in:during:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         aMorph:     a TransformMorph(73)
>>>>         bounds:     548@0 corner: 714@224
>>>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     136@64
>>>>         clipRect:     684@64 corner: 863@301
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         aMorph:     a TransformMorph(73)
>>>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     136@64
>>>>         clipRect:     684@64 corner: 863@301
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> TransformMorph(Morph)>>fullDrawOn:
>>>>     Receiver: a TransformMorph(73)
>>>>     Arguments and temporary variables:
>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Receiver's instance variables:
>>>>         bounds:     548@0 corner: 714@224
>>>>         owner:     an OBPluggableListMorph(274)
>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>         fullBounds:     548@0 corner: 714@224
>>>>         color:     Color transparent
>>>>         extension:     nil
>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>> -551@0)
>>>>         smoothing:     1
>>>>         localBounds:     nil
>>>>
>>>> FormCanvas(Canvas)>>fullDraw:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         anObject:     a TransformMorph(73)
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     136@64
>>>>         clipRect:     684@64 corner: 863@301
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Arguments and temporary variables:
>>>>         aMorph:     a TransformMorph(73)
>>>>     Receiver's instance variables:
>>>>         target:     nil
>>>>         filterSelector:     nil
>>>>         origin:     136@64
>>>>         clipRect:     684@64 corner: 863@301
>>>>         form:     DisplayScreen(978x638x32)
>>>>         port:     a GrafPort
>>>>         shadowColor:     nil
>>>>
>>>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>     Receiver: an OBPluggableListMorph(274)
>>>>     Arguments and temporary variables:
>>>>         canvas:     a TransformMorph(73)
>>>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Receiver's instance variables:
>>>>         bounds:     548@0 corner: 727@237
>>>>         owner:     an OBPane(2011)
>>>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>>> TransformMorph(73))
>>>>         fullBounds:     548@0 corner: 727@237
>>>>         color:     Color white
>>>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>>>> (dropEnabled -...etc...
>>>>         borderWidth:     0
>>>>         borderColor:     Color black
>>>>         model:     an OBColumn()
>>>>         slotName:     nil
>>>>         open:     false
>>>>         scrollBar:     a ScrollBar(2541)
>>>>         scroller:     a TransformMorph(73)
>>>>         retractableScrollBar:     false
>>>>         scrollBarOnLeft:     false
>>>>         getMenuSelector:     #menu:
>>>>         getMenuTitleSelector:     nil
>>>>         hasFocus:     false
>>>>         hScrollBar:     a ScrollBar(3409)
>>>>         list:     nil
>>>>         getListSelector:     #list
>>>>         getListSizeSelector:     #listSize
>>>>         getListElementSelector:     #listAt:
>>>>         getIndexSelector:     #selection
>>>>         setIndexSelector:     #selection:
>>>>         keystrokeActionSelector:     #keystroke:from:
>>>>         autoDeselect:     false
>>>>         lastKeystrokeTime:     0
>>>>         lastKeystrokes:     ''
>>>>         doubleClickSelector:     #doubleClick
>>>>         handlesBasicKeys:     nil
>>>>         potentialDropRow:     nil
>>>>         listMorph:     an OBLazyListMorph(2972)
>>>>         hScrollRangeCache:     nil
>>>>
>>>> Array(SequenceableCollection)>>reverseDo:
>>>>     Receiver: an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>>> TransformMorph(73))
>>>>     Arguments and temporary variables:
>>>>         aBlock:     [closure] in [] in
>>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>         index:     3
>>>>     Receiver's instance variables:
>>>> an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
>>>>
>>>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>     Receiver: an OBPluggableListMorph(274)
>>>>     Arguments and temporary variables:
>>>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>     Receiver's instance variables:
>>>>         bounds:     548@0 corner: 727@237
>>>>         owner:     an OBPane(2011)
>>>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>>> TransformMorph(73))
>>>>         fullBounds:     548@0 corner: 727@237
>>>>         color:     Color white
>>>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>>>> (dropEnabled -...etc...
>>>>         borderWidth:     0
>>>>         borderColor:     Color black
>>>>         model:     an OBColumn()
>>>>         slotName:     nil
>>>>         open:     false
>>>>         scrollBar:     a ScrollBar(2541)
>>>>         scroller:     a TransformMorph(73)
>>>>         retractableScrollBar:     false
>>>>         scrollBarOnLeft:     false
>>>>         getMenuSelector:     #menu:
>>>>         getMenuTitleSelector:     nil
>>>>         hasFocus:     false
>>>>         hScrollBar:     a ScrollBar(3409)
>>>>         list:     nil
>>>>         getListSelector:     #list
>>>>         getListSizeSelector:     #listSize
>>>>         getListElementSelector:     #listAt:
>>>>         getIndexSelector:     #selection
>>>>         setIndexSelector:     #selection:
>>>>         keystrokeActionSelector:     #keystroke:from:
>>>>         autoDeselect:     false
>>>>         lastKeystrokeTime:     0
>>>>         lastKeystrokes:     ''
>>>>         doubleClickSelector:     #doubleClick
>>>>         handlesBasicKeys:     nil
>>>>         potentialDropRow:     nil
>>>>         listMorph:     an OBLazyListMorph(2972)
>>>>         hScrollRangeCache:     nil
>>>>
>>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>     Receiver: an OBPluggableListMorph(274)
>>>>     Arguments and temporary variables:
>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>         drawBlock:     [closure] in
>>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>     Receiver's instance variables:
>>>>         bounds:     548@0 corner: 727@237
>>>>         owner:     an OBPane(2011)
>>>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>>> TransformMorph(73))
>>>>         fullBounds:     548@0 corner: 727@237
>>>>         color:     Color white
>>>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>>>> (dropEnabled -...etc...
>>>>         borderWidth:     0
>>>>         borderColor:     Color black
>>>>         model:     an OBColumn()
>>>>         slotName:     nil
>>>>         open:     false
>>>>         scrollBar:     a ScrollBar(2541)
>>>>         scroller:     a TransformMorph(73)
>>>>         retractableScrollBar:     false
>>>>         scrollBarOnLeft:     false
>>>>         getMenuSelector:     #menu:
>>>>         getMenuTitleSelector:     nil
>>>>         hasFocus:     false
>>>>         hScrollBar:     a ScrollBar(3409)
>>>>         list:     nil
>>>>         getListSelector:     #list
>>>>         getListSizeSelector:     #listSize
>>>>         getListElementSelector:     #listAt:
>>>>         getIndexSelector:     #selection
>>>>         setIndexSelector:     #selection:
>>>>         keystrokeActionSelector:     #keystroke:from:
>>>>         autoDeselect:     false
>>>>         lastKeystrokeTime:     0
>>>>         lastKeystrokes:     ''
>>>>         doubleClickSelector:     #doubleClick
>>>>         handlesBasicKeys:     nil
>>>>         potentialDropRow:     nil
>>>>         listMorph:     an OBLazyListMorph(2972)
>>>>         hScrollRangeCache:     nil
>>>>
>>>>
>>>> --- The full stack ---
>>>> ByteSymbol(Object)>>error:
>>>> [] in WorldState>>displayWorldSafely:
>>>> BlockClosure>>valueWithPossibleArgs:
>>>> [] in BlockClosure>>ifError:
>>>> BlockClosure>>valueWithPossibleArgs:
>>>> [] in MethodContext(ContextPart)>>handleSignal:
>>>> BlockClosure>>ensure:
>>>> MethodContext(ContextPart)>>handleSignal:
>>>> MessageNotUnderstood(Exception)>>signal
>>>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>>>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>>>> StrikeFontSet>>displayString:on:from:to:at:kern:
>>>> FormCanvas>>drawString:from:to:in:font:color:
>>>> FormCanvas(Canvas)>>drawString:in:font:color:
>>>> OBLazyListMorph>>display:atRow:on:
>>>> OBLazyListMorph(LazyListMorph)>>drawOn:
>>>> FormCanvas(Canvas)>>draw:
>>>> FormCanvas(Canvas)>>drawMorph:
>>>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>> FormCanvas>>roundCornersOf:in:during:
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>> OBLazyListMorph(Morph)>>fullDrawOn:
>>>> FormCanvas(Canvas)>>fullDraw:
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>>> Array(SequenceableCollection)>>reverseDo:
>>>> [] in TransformMorph>>drawSubmorphsOn:
>>>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>>> TransformMorph>>drawSubmorphsOn:
>>>> [] in TransformMorph(Morph)>>fullDrawOn:
>>>> FormCanvas>>roundCornersOf:in:during:
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>> TransformMorph(Morph)>>fullDrawOn:
>>>> FormCanvas(Canvas)>>fullDraw:
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>> Array(SequenceableCollection)>>reverseDo:
>>>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>  - - - - - - - - - - - - - - -
>>>>             - - - - - - - - - - - - - - - - - -
>>>> OBPluggableListMorph(PluggableListMorph)>>drawSubmorphsOn:
>>>> [] in OBPluggableListMorph(Morph)>>fullDrawOn:
>>>> FormCanvas>>roundCornersOf:in:during:
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>> OBPluggableListMorph(Morph)>>fullDrawOn:
>>>> FormCanvas(Canvas)>>fullDraw:
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>> [] in [] in OBPane(Morph)>>drawSubmorphsOn:
>>>> Array(SequenceableCollection)>>reverseDo:
>>>> [] in OBPane(Morph)>>drawSubmorphsOn:
>>>> FormCanvas>>clipBy:during:
>>>> OBPane(Morph)>>drawSubmorphsOn:
>>>> [] in OBPane(Morph)>>fullDrawOn:
>>>> FormCanvas>>roundCornersOf:in:during:
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>> OBPane(Morph)>>fullDrawOn:
>>>> FormCanvas(Canvas)>>fullDraw:
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>>> Array(SequenceableCollection)>>reverseDo:
>>>> [] in TransformMorph>>drawSubmorphsOn:
>>>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>>> TransformMorph>>drawSubmorphsOn:
>>>> [] in TransformMorph(Morph)>>fullDrawOn:
>>>> FormCanvas>>roundCornersOf:in:during:
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>> TransformMorph(Morph)>>fullDrawOn:
>>>> FormCanvas(Canvas)>>fullDraw:
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>> [] in [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>>>> Array(SequenceableCollection)>>reverseDo:
>>>> [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>>>> OBPaneScroller(Morph)>>drawSubmorphsOn:
>>>> [] in OBPaneScroller(Morph)>>fullDrawOn:
>>>> FormCanvas>>roundCornersOf:in:during:
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>> OBPaneScroller(Morph)>>fullDrawOn:
>>>> FormCanvas(Canvas)>>fullDraw:
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>> [] in [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>>>> Array(SequenceableCollection)>>reverseDo:
>>>> [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>>>> OBGroupingMorph(Morph)>>drawSubmorphsOn:
>>>> [] in OBGroupingMorph(Morph)>>fullDrawOn:
>>>> FormCanvas>>roundCornersOf:in:during:
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>> OBGroupingMorph(Morph)>>fullDrawOn:
>>>> FormCanvas(Canvas)>>fullDraw:
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>> [] in [] in SystemWindow(Morph)>>drawSubmorphsOn:
>>>> Array(SequenceableCollection)>>reverseDo:
>>>> [] in SystemWindow(Morph)>>drawSubmorphsOn:
>>>> FormCanvas>>clipBy:during:
>>>> SystemWindow(Morph)>>drawSubmorphsOn:
>>>> [] in SystemWindow(Morph)>>fullDrawOn:
>>>> FormCanvas>>roundCornersOf:in:during:
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>> SystemWindow(Morph)>>fullDrawOn:
>>>> FormCanvas(Canvas)>>fullDraw:
>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>> [] in [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>>>> Rectangle>>allAreasOutsideList:startingAt:do:
>>>> Rectangle>>allAreasOutsideList:do:
>>>> [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>>>> Array(SequenceableCollection)>>do:
>>>> WorldState>>drawWorld:submorphs:invalidAreasOn:
>>>> [] in WorldState>>displayWorld:submorphs:
>>>> FormCanvas>>roundCornersOf:in:during:
>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>> WorldState>>displayWorld:submorphs:
>>>> PasteUpMorph>>privateOuterDisplayWorld
>>>> PasteUpMorph>>displayWorld
>>>> [] in WorldState>>displayWorldSafely:
>>>> BlockClosure>>on:do:
>>>> BlockClosure>>ifError:
>>>> WorldState>>displayWorldSafely:
>>>> WorldState>>doOneCycleNowFor:
>>>> WorldState>>doOneCycleFor:
>>>> PasteUpMorph>>doOneCycle
>>>> [] in Project class>>spawnNewProcess
>>>> [] in BlockClosure>>newProcess
>>>>
>>>>
>>>> 2009/11/7 Lukas Renggli <[hidden email]>
>>>>>
>>>>> 2009/11/7 Stéphane Ducasse <[hidden email]>:
>>>>> > when you are on the class side if you method has a classVariable and
>>>>> > you want to know who access it.
>>>>> > Then chase variables show you the class instance varaibles but not the
>>>>> > classVariable.
>>>>>
>>>>> Yes, that's a bug. When you are on the class side, the class variables
>>>>> of the meta-class are displayed. Also the labeling of the window is
>>>>> suboptimal. I fixed these issues. Let me know if this is better now.
>>>>>
>>>>> Gofer new
>>>>>       squeaksource: 'rb';
>>>>>       addPackage: 'AST-Core';
>>>>>       addPackage: 'Refactoring-Core';
>>>>>       addPackage: 'Refactoring-Spelling';
>>>>>       renggli: 'omnibrowser';
>>>>>       addPackage: 'OmniBrowser';
>>>>>       addPackage: 'OB-Standard';
>>>>>       addPackage: 'OB-Morphic';
>>>>>       addPackage: 'OB-Shout';
>>>>>       addPackage: 'OB-Refactory';
>>>>>       addPackage: 'OB-Regex';
>>>>>       addPackage: 'OB-SUnitIntegration';
>>>>>       renggli: 'unsorted';
>>>>>       addPackage: 'Shout';
>>>>>       addPackage: 'RoelTyper';
>>>>>       addPackage: 'ECompletion';
>>>>>       addPackage: 'ECompletionOmniBrowser';
>>>>>       load;
>>>>>       recompile
>>>>>
>>>>> Lukas
>>>>>
>>>>>
>>>>> --
>>>>> Lukas Renggli
>>>>> http://www.lukas-renggli.ch
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> [hidden email]
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>
>>>
>>>
>>> --
>>> Lukas Renggli
>>> http://www.lukas-renggli.ch
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
>



--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: How to access classVariable access with the browser

Nicolas Cellier
Lukas, I clearly identified one (Text on: Symbol) creator as the
#summary of a MCConflict on a MCClassDefinition.


2009/11/10 Lukas Renggli <[hidden email]>:

> Maybe you can find the creator of the Text instances with Text inside
> by modifying Text>>#setString:setRuns:?
>
>  Text>>setString: aString setRuns: anArray
>        (aString isText)
>                ifTrue: [ self haltOnce ].
>        string := aString.
>        runs := anArray
>
> Don't forget to enable the halt: World > Debug > Enable halt once
>
> Lukas
>
> 2009/11/9 Lukas Renggli <[hidden email]>:
>> I cannot reproduce the problem. There must be a different cause in
>> your image, which is the root of the problem and should be fixed.
>>
>> In all my images all Text object contain only Strings:
>>
>>  Text allInstances reject: [ :each | each string isString ]
>>    --> #()
>>
>>  Text allInstances select: [ :each | each string isSymbol ]
>>    --> #()
>>
>> Lukas
>>
>> 2009/11/9 Nicolas Cellier <[hidden email]>:
>>> Hi Lukas,
>>> found the same problem again in a MCMergeBrowser
>>>
>>> There are pure Symbols and Symbol asText in the list of changes.
>>> This list of changes is computed in
>>> MCPatchBrowser>>list
>>>        ^ self items collect: [:ea | ea summary]
>>>
>>> In my case, the second element of the list was a
>>>
>>> MCConflict>MCAddition>MCClassDefinition
>>>
>>> The summary of the addition is #BlockArgsNode, the summary of the
>>> conflict is #BlockArgsNode asText
>>>
>>> So yes, with this model, there will be String, Symbol, Text on: String
>>> and Text on: Symbol in the list.
>>> All need to be displayed, and I think it will be faster to patch the
>>> display than eliminate all the Symbol usage in lists.
>>> After all, (#BlockArgsNode isKindOf: String) -> true, so why wouldn't
>>> it make a good Text ?
>>>
>>> Nicolas
>>>
>>> 2009/11/8 Lukas Renggli <[hidden email]>:
>>>> Hi Hernán,
>>>>
>>>> I cannot reproduce that problem.
>>>>
>>>> Looks like in you end up with a non-string in a Text class. That
>>>> should never happen, because then the class invariants of Text are not
>>>> met. If OB instantiates a Text like that, this is an OB bug of course,
>>>> but I can't figure out a place where that could happen. Maybe this is
>>>> some bug in Pharo?
>>>>
>>>> Lukas
>>>>
>>>> 2009/11/8 Hernán Morales Durand <[hidden email]>:
>>>>> Hi Lukas,
>>>>>   there is a little bug in the OB installation in Core #11035. To reproduce
>>>>> it open a new system OmniBrowser and try to browse the class Trait. Below is
>>>>> the stack trace, a fix is attached.
>>>>>
>>>>> Cheers
>>>>>
>>>>> Hernán
>>>>>
>>>>> 7 November 2009 9:26:35 pm
>>>>>
>>>>> VM: Win32 - IX86 - NT - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
>>>>> Image: Pharo1.1a [Latest update: #11035]
>>>>>
>>>>> SecurityManager state:
>>>>> Restricted: false
>>>>> FileAccess: true
>>>>> SocketAccess: true
>>>>> Working Dir D:\Smalltalk\Pharo
>>>>> Trusted Dir D:\Smalltalk\Pharo\mvs
>>>>> Untrusted Dir C:\Documents and Settings\mvs\Mis documentos\My Squeak
>>>>>
>>>>> ByteSymbol(Object)>>error:
>>>>>     Receiver: #category
>>>>>     Arguments and temporary variables:
>>>>>         aString:     'MessageNotUnderstood:
>>>>> ByteSymbol>>hasWideCharacterFrom:to:'
>>>>>     Receiver's instance variables:
>>>>> #category
>>>>>
>>>>> [] in WorldState>>displayWorldSafely:
>>>>>     Receiver: a WorldState
>>>>>     Arguments and temporary variables:
>>>>>         err:     'MessageNotUnderstood:
>>>>> ByteSymbol>>hasWideCharacterFrom:to:'
>>>>>         rcvr:     #category
>>>>>         errCtx:     OBLazyListMorph>>display:atRow:on:
>>>>>         errMorph:     an OBLazyListMorph(2972)
>>>>>     Receiver's instance variables:
>>>>>         hands:     an Array(a HandMorph(3216))
>>>>>         viewBox:     0@0 corner: 978@638
>>>>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>         damageRecorder:     a DamageRecorder
>>>>>         stepList:     a Heap(StepMessage(#stepAt: -> a SystemWindow(3984))(a
>>>>> SystemWindow(3...etc...
>>>>>         lastStepTime:     25826547
>>>>>         lastStepMessage:     nil
>>>>>         lastCycleTime:     25826376
>>>>>         commandHistory:     a CommandHistory
>>>>>         alarms:     a Heap()
>>>>>         lastAlarmTime:     25826547
>>>>>
>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>>>>     Arguments and temporary variables:
>>>>>         anArray:     #('MessageNotUnderstood:
>>>>> ByteSymbol>>hasWideCharacterFrom:to:' #catego...etc...
>>>>>     Receiver's instance variables:
>>>>>         outerContext:     WorldState>>displayWorldSafely:
>>>>>         startpc:     73
>>>>>         numArgs:     2
>>>>>
>>>>> [] in BlockClosure>>ifError:
>>>>>     Receiver: [closure] in WorldState>>displayWorldSafely:
>>>>>     Arguments and temporary variables:
>>>>>         errorHandlerBlock:     MessageNotUnderstood:
>>>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>>>         ex:     [closure] in WorldState>>displayWorldSafely:
>>>>>     Receiver's instance variables:
>>>>>         outerContext:     WorldState>>displayWorldSafely:
>>>>>         startpc:     66
>>>>>         numArgs:     0
>>>>>
>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>     Receiver: [closure] in BlockClosure>>ifError:
>>>>>     Arguments and temporary variables:
>>>>>         anArray:     an Array(MessageNotUnderstood:
>>>>> ByteSymbol>>hasWideCharacterFrom:to:)
>>>>>     Receiver's instance variables:
>>>>>         outerContext:     BlockClosure>>ifError:
>>>>>         startpc:     40
>>>>>         numArgs:     1
>>>>>
>>>>> [] in MethodContext(ContextPart)>>handleSignal:
>>>>>     Receiver: BlockClosure>>on:do:
>>>>>     Arguments and temporary variables:
>>>>>         exception:     MessageNotUnderstood:
>>>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>>>     Receiver's instance variables:
>>>>>         sender:     BlockClosure>>ifError:
>>>>>         pc:     17
>>>>>         stackp:     3
>>>>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>>>>         closureOrNil:     nil
>>>>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>>>>
>>>>> BlockClosure>>ensure:
>>>>>     Receiver: [closure] in MethodContext(ContextPart)>>handleSignal:
>>>>>     Arguments and temporary variables:
>>>>>         aBlock:     [closure] in MethodContext(ContextPart)>>handleSignal:
>>>>>         returnValue:     nil
>>>>>         b:     nil
>>>>>     Receiver's instance variables:
>>>>>         outerContext:     MethodContext(ContextPart)>>handleSignal:
>>>>>         startpc:     90
>>>>>         numArgs:     0
>>>>>
>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>     Receiver: BlockClosure>>on:do:
>>>>>     Arguments and temporary variables:
>>>>>         exception:     MessageNotUnderstood:
>>>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>>>         val:     nil
>>>>>     Receiver's instance variables:
>>>>>         sender:     BlockClosure>>ifError:
>>>>>         pc:     17
>>>>>         stackp:     3
>>>>>         method:     (BlockClosure>>#on:do: "a CompiledMethod(3772)")
>>>>>         closureOrNil:     nil
>>>>>         receiver:     [closure] in WorldState>>displayWorldSafely:
>>>>>
>>>>> MessageNotUnderstood(Exception)>>signal
>>>>>     Receiver: MessageNotUnderstood: ByteSymbol>>hasWideCharacterFrom:to:
>>>>>     Arguments and temporary variables:
>>>>>
>>>>>     Receiver's instance variables:
>>>>>         messageText:     nil
>>>>>         tag:     nil
>>>>>         signalContext:     MessageNotUnderstood(Exception)>>signal
>>>>>         handlerContext:     BlockClosure>>on:do:
>>>>>         outerContext:     nil
>>>>>         message:     hasWideCharacterFrom: 1 to: 8
>>>>>         receiver:     #category
>>>>>         reachedDefaultHandler:     false
>>>>>
>>>>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>>>>>     Receiver: #category
>>>>>     Arguments and temporary variables:
>>>>>         aMessage:     hasWideCharacterFrom: 1 to: 8
>>>>>         exception:     MessageNotUnderstood:
>>>>> ByteSymbol>>hasWideCharacterFrom:to:
>>>>>         resumeValue:     nil
>>>>>     Receiver's instance variables:
>>>>> #category
>>>>>
>>>>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>>>>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>>>>     Arguments and temporary variables:
>>>>>         aString:     #category
>>>>>         aBitBlt:     a GrafPort
>>>>>         startIndex:     1
>>>>>         stopIndex:     8
>>>>>         aPoint:     701@160
>>>>>         kernDelta:     0
>>>>>         baselineY:     170
>>>>>     Receiver's instance variables:
>>>>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>>>>         emphasis:     2
>>>>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>>>>> nil nil nil nil ...etc...
>>>>>         name:     'Accuny12I'
>>>>>         rIndex:     nil
>>>>>
>>>>> StrikeFontSet>>displayString:on:from:to:at:kern:
>>>>>     Receiver: a StrikeFontSet(Accuny12I 12)
>>>>>     Arguments and temporary variables:
>>>>>         aString:     #category
>>>>>         aBitBlt:     a GrafPort
>>>>>         startIndex:     1
>>>>>         stopIndex:     8
>>>>>         aPoint:     701@160
>>>>>         kernDelta:     0
>>>>>     Receiver's instance variables:
>>>>>         fontArray:     an Array(a StrikeFont(Accuny12 12))
>>>>>         emphasis:     2
>>>>>         derivativeFonts:     #(nil nil nil nil nil nil nil nil nil nil nil
>>>>> nil nil nil nil ...etc...
>>>>>         name:     'Accuny12I'
>>>>>         rIndex:     nil
>>>>>
>>>>> FormCanvas>>drawString:from:to:in:font:color:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         aString:     a Text for #category
>>>>>         firstIndex:     1
>>>>>         lastIndex:     8
>>>>>         bounds:     14@96 corner: 722@108
>>>>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>>>>         c:     Color black
>>>>>         font:     a StrikeFontSet(Accuny12I 12)
>>>>>         portRect:     684@64 corner: 850@288
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     687@64
>>>>>         clipRect:     684@64 corner: 850@288
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> FormCanvas(Canvas)>>drawString:in:font:color:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         s:     a Text for #category
>>>>>         boundsRect:     14@96 corner: 722@108
>>>>>         fontOrNil:     a StrikeFontSet(Accuny12I 12)
>>>>>         c:     Color black
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     687@64
>>>>>         clipRect:     684@64 corner: 850@288
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> OBLazyListMorph>>display:atRow:on:
>>>>>     Receiver: an OBLazyListMorph(2972)
>>>>>     Arguments and temporary variables:
>>>>> <<error during printing>
>>>>>     Receiver's instance variables:
>>>>>         bounds:     0@0 corner: 722@432
>>>>>         owner:     a TransformMorph(73)
>>>>>         submorphs:     #()
>>>>>         fullBounds:     0@0 corner: 722@432
>>>>>         color:     Color black
>>>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>>>> true)]
>>>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>>>> #asClassDefini...etc...
>>>>>         font:     a StrikeFontSet(Accuny12 12)
>>>>>         selectedRow:     0
>>>>>         selectedRows:     a PluggableSet()
>>>>>         listSource:     an OBPluggableListMorph(274)
>>>>>         maxWidth:     702
>>>>>
>>>>> OBLazyListMorph(LazyListMorph)>>drawOn:
>>>>>     Receiver: an OBLazyListMorph(2972)
>>>>>     Arguments and temporary variables:
>>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>         row:     9
>>>>>         rowLimiT:     19
>>>>>     Receiver's instance variables:
>>>>>         bounds:     0@0 corner: 722@432
>>>>>         owner:     a TransformMorph(73)
>>>>>         submorphs:     #()
>>>>>         fullBounds:     0@0 corner: 722@432
>>>>>         color:     Color black
>>>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>>>> true)]
>>>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>>>> #asClassDefini...etc...
>>>>>         font:     a StrikeFontSet(Accuny12 12)
>>>>>         selectedRow:     0
>>>>>         selectedRows:     a PluggableSet()
>>>>>         listSource:     an OBPluggableListMorph(274)
>>>>>         maxWidth:     702
>>>>>
>>>>> FormCanvas(Canvas)>>draw:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         anObject:     an OBLazyListMorph(2972)
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     687@64
>>>>>         clipRect:     684@64 corner: 850@288
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> FormCanvas(Canvas)>>drawMorph:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         aMorph:     an OBLazyListMorph(2972)
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     687@64
>>>>>         clipRect:     684@64 corner: 850@288
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>>>     Receiver: an OBLazyListMorph(2972)
>>>>>     Arguments and temporary variables:
>>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Receiver's instance variables:
>>>>>         bounds:     0@0 corner: 722@432
>>>>>         owner:     a TransformMorph(73)
>>>>>         submorphs:     #()
>>>>>         fullBounds:     0@0 corner: 722@432
>>>>>         color:     Color black
>>>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>>>> true)]
>>>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>>>> #asClassDefini...etc...
>>>>>         font:     a StrikeFontSet(Accuny12 12)
>>>>>         selectedRow:     0
>>>>>         selectedRows:     a PluggableSet()
>>>>>         listSource:     an OBPluggableListMorph(274)
>>>>>         maxWidth:     702
>>>>>
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         aMorph:     an OBLazyListMorph(2972)
>>>>>         bounds:     0@0 corner: 722@432
>>>>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     687@64
>>>>>         clipRect:     684@64 corner: 850@288
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         aMorph:     an OBLazyListMorph(2972)
>>>>>         aBlock:     [closure] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     687@64
>>>>>         clipRect:     684@64 corner: 850@288
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> OBLazyListMorph(Morph)>>fullDrawOn:
>>>>>     Receiver: an OBLazyListMorph(2972)
>>>>>     Arguments and temporary variables:
>>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Receiver's instance variables:
>>>>>         bounds:     0@0 corner: 722@432
>>>>>         owner:     a TransformMorph(73)
>>>>>         submorphs:     #()
>>>>>         fullBounds:     0@0 corner: 722@432
>>>>>         color:     Color black
>>>>>         extension:     a MorphExtension (2984) [other:  (errorOnDraw ->
>>>>> true)]
>>>>>         listItems:     an Array(#applyChangesOfNewTraitCompositionReplacing:
>>>>> #asClassDefini...etc...
>>>>>         font:     a StrikeFontSet(Accuny12 12)
>>>>>         selectedRow:     0
>>>>>         selectedRows:     a PluggableSet()
>>>>>         listSource:     an OBPluggableListMorph(274)
>>>>>         maxWidth:     702
>>>>>
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         anObject:     an OBLazyListMorph(2972)
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     687@64
>>>>>         clipRect:     684@64 corner: 850@288
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         aMorph:     an OBLazyListMorph(2972)
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     687@64
>>>>>         clipRect:     684@64 corner: 850@288
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>>>>     Receiver: a TransformMorph(73)
>>>>>     Arguments and temporary variables:
>>>>>         myCanvas:     an OBLazyListMorph(2972)
>>>>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Receiver's instance variables:
>>>>>         bounds:     548@0 corner: 714@224
>>>>>         owner:     an OBPluggableListMorph(274)
>>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>>         fullBounds:     548@0 corner: 714@224
>>>>>         color:     Color transparent
>>>>>         extension:     nil
>>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>>> -551@0)
>>>>>         smoothing:     1
>>>>>         localBounds:     nil
>>>>>
>>>>> Array(SequenceableCollection)>>reverseDo:
>>>>>     Receiver: an Array(an OBLazyListMorph(2972))
>>>>>     Arguments and temporary variables:
>>>>>         aBlock:     [closure] in [] in TransformMorph>>drawSubmorphsOn:
>>>>>         index:     1
>>>>>     Receiver's instance variables:
>>>>> an Array(an OBLazyListMorph(2972))
>>>>>
>>>>> [] in TransformMorph>>drawSubmorphsOn:
>>>>>     Receiver: a TransformMorph(73)
>>>>>     Arguments and temporary variables:
>>>>>         myCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Receiver's instance variables:
>>>>>         bounds:     548@0 corner: 714@224
>>>>>         owner:     an OBPluggableListMorph(274)
>>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>>         fullBounds:     548@0 corner: 714@224
>>>>>         color:     Color transparent
>>>>>         extension:     nil
>>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>>> -551@0)
>>>>>         smoothing:     1
>>>>>         localBounds:     nil
>>>>>
>>>>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         aDisplayTransform:     a MorphicTransform(angle = 0.0; scale = 1.0;
>>>>> offset = -551@0...etc...
>>>>>         aClipRect:     548@0 corner: 714@224
>>>>>         aBlock:     [closure] in TransformMorph>>drawSubmorphsOn:
>>>>>         cellSize:     1
>>>>>         innerRect:     nil
>>>>>         patchRect:     nil
>>>>>         sourceQuad:     nil
>>>>>         warp:     nil
>>>>>         start:     nil
>>>>>         subCanvas:     nil
>>>>>         i:     nil
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     136@64
>>>>>         clipRect:     684@64 corner: 863@301
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> TransformMorph>>drawSubmorphsOn:
>>>>>     Receiver: a TransformMorph(73)
>>>>>     Arguments and temporary variables:
>>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Receiver's instance variables:
>>>>>         bounds:     548@0 corner: 714@224
>>>>>         owner:     an OBPluggableListMorph(274)
>>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>>         fullBounds:     548@0 corner: 714@224
>>>>>         color:     Color transparent
>>>>>         extension:     nil
>>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>>> -551@0)
>>>>>         smoothing:     1
>>>>>         localBounds:     nil
>>>>>
>>>>> [] in TransformMorph(Morph)>>fullDrawOn:
>>>>>     Receiver: a TransformMorph(73)
>>>>>     Arguments and temporary variables:
>>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Receiver's instance variables:
>>>>>         bounds:     548@0 corner: 714@224
>>>>>         owner:     an OBPluggableListMorph(274)
>>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>>         fullBounds:     548@0 corner: 714@224
>>>>>         color:     Color transparent
>>>>>         extension:     nil
>>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>>> -551@0)
>>>>>         smoothing:     1
>>>>>         localBounds:     nil
>>>>>
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         aMorph:     a TransformMorph(73)
>>>>>         bounds:     548@0 corner: 714@224
>>>>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     136@64
>>>>>         clipRect:     684@64 corner: 863@301
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         aMorph:     a TransformMorph(73)
>>>>>         aBlock:     [closure] in TransformMorph(Morph)>>fullDrawOn:
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     136@64
>>>>>         clipRect:     684@64 corner: 863@301
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> TransformMorph(Morph)>>fullDrawOn:
>>>>>     Receiver: a TransformMorph(73)
>>>>>     Arguments and temporary variables:
>>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Receiver's instance variables:
>>>>>         bounds:     548@0 corner: 714@224
>>>>>         owner:     an OBPluggableListMorph(274)
>>>>>         submorphs:     an Array(an OBLazyListMorph(2972))
>>>>>         fullBounds:     548@0 corner: 714@224
>>>>>         color:     Color transparent
>>>>>         extension:     nil
>>>>>         transform:     a MorphicTransform(angle = 0.0; scale = 1.0; offset =
>>>>> -551@0)
>>>>>         smoothing:     1
>>>>>         localBounds:     nil
>>>>>
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         anObject:     a TransformMorph(73)
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     136@64
>>>>>         clipRect:     684@64 corner: 863@301
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>>     Receiver: a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Arguments and temporary variables:
>>>>>         aMorph:     a TransformMorph(73)
>>>>>     Receiver's instance variables:
>>>>>         target:     nil
>>>>>         filterSelector:     nil
>>>>>         origin:     136@64
>>>>>         clipRect:     684@64 corner: 863@301
>>>>>         form:     DisplayScreen(978x638x32)
>>>>>         port:     a GrafPort
>>>>>         shadowColor:     nil
>>>>>
>>>>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>>     Receiver: an OBPluggableListMorph(274)
>>>>>     Arguments and temporary variables:
>>>>>         canvas:     a TransformMorph(73)
>>>>>         m:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Receiver's instance variables:
>>>>>         bounds:     548@0 corner: 727@237
>>>>>         owner:     an OBPane(2011)
>>>>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>>>> TransformMorph(73))
>>>>>         fullBounds:     548@0 corner: 727@237
>>>>>         color:     Color white
>>>>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>>>>> (dropEnabled -...etc...
>>>>>         borderWidth:     0
>>>>>         borderColor:     Color black
>>>>>         model:     an OBColumn()
>>>>>         slotName:     nil
>>>>>         open:     false
>>>>>         scrollBar:     a ScrollBar(2541)
>>>>>         scroller:     a TransformMorph(73)
>>>>>         retractableScrollBar:     false
>>>>>         scrollBarOnLeft:     false
>>>>>         getMenuSelector:     #menu:
>>>>>         getMenuTitleSelector:     nil
>>>>>         hasFocus:     false
>>>>>         hScrollBar:     a ScrollBar(3409)
>>>>>         list:     nil
>>>>>         getListSelector:     #list
>>>>>         getListSizeSelector:     #listSize
>>>>>         getListElementSelector:     #listAt:
>>>>>         getIndexSelector:     #selection
>>>>>         setIndexSelector:     #selection:
>>>>>         keystrokeActionSelector:     #keystroke:from:
>>>>>         autoDeselect:     false
>>>>>         lastKeystrokeTime:     0
>>>>>         lastKeystrokes:     ''
>>>>>         doubleClickSelector:     #doubleClick
>>>>>         handlesBasicKeys:     nil
>>>>>         potentialDropRow:     nil
>>>>>         listMorph:     an OBLazyListMorph(2972)
>>>>>         hScrollRangeCache:     nil
>>>>>
>>>>> Array(SequenceableCollection)>>reverseDo:
>>>>>     Receiver: an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>>>> TransformMorph(73))
>>>>>     Arguments and temporary variables:
>>>>>         aBlock:     [closure] in [] in
>>>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>>         index:     3
>>>>>     Receiver's instance variables:
>>>>> an Array(a ScrollBar(3409) a ScrollBar(2541) a TransformMorph(73))
>>>>>
>>>>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>>     Receiver: an OBPluggableListMorph(274)
>>>>>     Arguments and temporary variables:
>>>>>         canvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>     Receiver's instance variables:
>>>>>         bounds:     548@0 corner: 727@237
>>>>>         owner:     an OBPane(2011)
>>>>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>>>> TransformMorph(73))
>>>>>         fullBounds:     548@0 corner: 727@237
>>>>>         color:     Color white
>>>>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>>>>> (dropEnabled -...etc...
>>>>>         borderWidth:     0
>>>>>         borderColor:     Color black
>>>>>         model:     an OBColumn()
>>>>>         slotName:     nil
>>>>>         open:     false
>>>>>         scrollBar:     a ScrollBar(2541)
>>>>>         scroller:     a TransformMorph(73)
>>>>>         retractableScrollBar:     false
>>>>>         scrollBarOnLeft:     false
>>>>>         getMenuSelector:     #menu:
>>>>>         getMenuTitleSelector:     nil
>>>>>         hasFocus:     false
>>>>>         hScrollBar:     a ScrollBar(3409)
>>>>>         list:     nil
>>>>>         getListSelector:     #list
>>>>>         getListSizeSelector:     #listSize
>>>>>         getListElementSelector:     #listAt:
>>>>>         getIndexSelector:     #selection
>>>>>         setIndexSelector:     #selection:
>>>>>         keystrokeActionSelector:     #keystroke:from:
>>>>>         autoDeselect:     false
>>>>>         lastKeystrokeTime:     0
>>>>>         lastKeystrokes:     ''
>>>>>         doubleClickSelector:     #doubleClick
>>>>>         handlesBasicKeys:     nil
>>>>>         potentialDropRow:     nil
>>>>>         listMorph:     an OBLazyListMorph(2972)
>>>>>         hScrollRangeCache:     nil
>>>>>
>>>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>>     Receiver: an OBPluggableListMorph(274)
>>>>>     Arguments and temporary variables:
>>>>>         aCanvas:     a FormCanvas on: DisplayScreen(978x638x32)
>>>>>         drawBlock:     [closure] in
>>>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>>     Receiver's instance variables:
>>>>>         bounds:     548@0 corner: 727@237
>>>>>         owner:     an OBPane(2011)
>>>>>         submorphs:     an Array(a ScrollBar(3409) a ScrollBar(2541) a
>>>>> TransformMorph(73))
>>>>>         fullBounds:     548@0 corner: 727@237
>>>>>         color:     Color white
>>>>>         extension:     a MorphExtension (990) [other:  (dragEnabled -> true)
>>>>> (dropEnabled -...etc...
>>>>>         borderWidth:     0
>>>>>         borderColor:     Color black
>>>>>         model:     an OBColumn()
>>>>>         slotName:     nil
>>>>>         open:     false
>>>>>         scrollBar:     a ScrollBar(2541)
>>>>>         scroller:     a TransformMorph(73)
>>>>>         retractableScrollBar:     false
>>>>>         scrollBarOnLeft:     false
>>>>>         getMenuSelector:     #menu:
>>>>>         getMenuTitleSelector:     nil
>>>>>         hasFocus:     false
>>>>>         hScrollBar:     a ScrollBar(3409)
>>>>>         list:     nil
>>>>>         getListSelector:     #list
>>>>>         getListSizeSelector:     #listSize
>>>>>         getListElementSelector:     #listAt:
>>>>>         getIndexSelector:     #selection
>>>>>         setIndexSelector:     #selection:
>>>>>         keystrokeActionSelector:     #keystroke:from:
>>>>>         autoDeselect:     false
>>>>>         lastKeystrokeTime:     0
>>>>>         lastKeystrokes:     ''
>>>>>         doubleClickSelector:     #doubleClick
>>>>>         handlesBasicKeys:     nil
>>>>>         potentialDropRow:     nil
>>>>>         listMorph:     an OBLazyListMorph(2972)
>>>>>         hScrollRangeCache:     nil
>>>>>
>>>>>
>>>>> --- The full stack ---
>>>>> ByteSymbol(Object)>>error:
>>>>> [] in WorldState>>displayWorldSafely:
>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>> [] in BlockClosure>>ifError:
>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>> [] in MethodContext(ContextPart)>>handleSignal:
>>>>> BlockClosure>>ensure:
>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>> MessageNotUnderstood(Exception)>>signal
>>>>> ByteSymbol(Object)>>doesNotUnderstand: #hasWideCharacterFrom:to:
>>>>> StrikeFontSet>>displayString:on:from:to:at:kern:baselineY:
>>>>> StrikeFontSet>>displayString:on:from:to:at:kern:
>>>>> FormCanvas>>drawString:from:to:in:font:color:
>>>>> FormCanvas(Canvas)>>drawString:in:font:color:
>>>>> OBLazyListMorph>>display:atRow:on:
>>>>> OBLazyListMorph(LazyListMorph)>>drawOn:
>>>>> FormCanvas(Canvas)>>draw:
>>>>> FormCanvas(Canvas)>>drawMorph:
>>>>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>> OBLazyListMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>>>> Array(SequenceableCollection)>>reverseDo:
>>>>> [] in TransformMorph>>drawSubmorphsOn:
>>>>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>>>> TransformMorph>>drawSubmorphsOn:
>>>>> [] in TransformMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>> TransformMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>> Array(SequenceableCollection)>>reverseDo:
>>>>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
>>>>>  - - - - - - - - - - - - - - -
>>>>>             - - - - - - - - - - - - - - - - - -
>>>>> OBPluggableListMorph(PluggableListMorph)>>drawSubmorphsOn:
>>>>> [] in OBPluggableListMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>> OBPluggableListMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>> [] in [] in OBPane(Morph)>>drawSubmorphsOn:
>>>>> Array(SequenceableCollection)>>reverseDo:
>>>>> [] in OBPane(Morph)>>drawSubmorphsOn:
>>>>> FormCanvas>>clipBy:during:
>>>>> OBPane(Morph)>>drawSubmorphsOn:
>>>>> [] in OBPane(Morph)>>fullDrawOn:
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>> OBPane(Morph)>>fullDrawOn:
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>> [] in [] in TransformMorph>>drawSubmorphsOn:
>>>>> Array(SequenceableCollection)>>reverseDo:
>>>>> [] in TransformMorph>>drawSubmorphsOn:
>>>>> FormCanvas>>transformBy:clippingTo:during:smoothing:
>>>>> TransformMorph>>drawSubmorphsOn:
>>>>> [] in TransformMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>> TransformMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>> [] in [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>>>>> Array(SequenceableCollection)>>reverseDo:
>>>>> [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
>>>>> OBPaneScroller(Morph)>>drawSubmorphsOn:
>>>>> [] in OBPaneScroller(Morph)>>fullDrawOn:
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>> OBPaneScroller(Morph)>>fullDrawOn:
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>> [] in [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>>>>> Array(SequenceableCollection)>>reverseDo:
>>>>> [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
>>>>> OBGroupingMorph(Morph)>>drawSubmorphsOn:
>>>>> [] in OBGroupingMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>> OBGroupingMorph(Morph)>>fullDrawOn:
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>> [] in [] in SystemWindow(Morph)>>drawSubmorphsOn:
>>>>> Array(SequenceableCollection)>>reverseDo:
>>>>> [] in SystemWindow(Morph)>>drawSubmorphsOn:
>>>>> FormCanvas>>clipBy:during:
>>>>> SystemWindow(Morph)>>drawSubmorphsOn:
>>>>> [] in SystemWindow(Morph)>>fullDrawOn:
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>> SystemWindow(Morph)>>fullDrawOn:
>>>>> FormCanvas(Canvas)>>fullDraw:
>>>>> FormCanvas(Canvas)>>fullDrawMorph:
>>>>> [] in [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>>>>> Rectangle>>allAreasOutsideList:startingAt:do:
>>>>> Rectangle>>allAreasOutsideList:do:
>>>>> [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
>>>>> Array(SequenceableCollection)>>do:
>>>>> WorldState>>drawWorld:submorphs:invalidAreasOn:
>>>>> [] in WorldState>>displayWorld:submorphs:
>>>>> FormCanvas>>roundCornersOf:in:during:
>>>>> FormCanvas(Canvas)>>roundCornersOf:during:
>>>>> WorldState>>displayWorld:submorphs:
>>>>> PasteUpMorph>>privateOuterDisplayWorld
>>>>> PasteUpMorph>>displayWorld
>>>>> [] in WorldState>>displayWorldSafely:
>>>>> BlockClosure>>on:do:
>>>>> BlockClosure>>ifError:
>>>>> WorldState>>displayWorldSafely:
>>>>> WorldState>>doOneCycleNowFor:
>>>>> WorldState>>doOneCycleFor:
>>>>> PasteUpMorph>>doOneCycle
>>>>> [] in Project class>>spawnNewProcess
>>>>> [] in BlockClosure>>newProcess
>>>>>
>>>>>
>>>>> 2009/11/7 Lukas Renggli <[hidden email]>
>>>>>>
>>>>>> 2009/11/7 Stéphane Ducasse <[hidden email]>:
>>>>>> > when you are on the class side if you method has a classVariable and
>>>>>> > you want to know who access it.
>>>>>> > Then chase variables show you the class instance varaibles but not the
>>>>>> > classVariable.
>>>>>>
>>>>>> Yes, that's a bug. When you are on the class side, the class variables
>>>>>> of the meta-class are displayed. Also the labeling of the window is
>>>>>> suboptimal. I fixed these issues. Let me know if this is better now.
>>>>>>
>>>>>> Gofer new
>>>>>>       squeaksource: 'rb';
>>>>>>       addPackage: 'AST-Core';
>>>>>>       addPackage: 'Refactoring-Core';
>>>>>>       addPackage: 'Refactoring-Spelling';
>>>>>>       renggli: 'omnibrowser';
>>>>>>       addPackage: 'OmniBrowser';
>>>>>>       addPackage: 'OB-Standard';
>>>>>>       addPackage: 'OB-Morphic';
>>>>>>       addPackage: 'OB-Shout';
>>>>>>       addPackage: 'OB-Refactory';
>>>>>>       addPackage: 'OB-Regex';
>>>>>>       addPackage: 'OB-SUnitIntegration';
>>>>>>       renggli: 'unsorted';
>>>>>>       addPackage: 'Shout';
>>>>>>       addPackage: 'RoelTyper';
>>>>>>       addPackage: 'ECompletion';
>>>>>>       addPackage: 'ECompletionOmniBrowser';
>>>>>>       load;
>>>>>>       recompile
>>>>>>
>>>>>> Lukas
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Lukas Renggli
>>>>>> http://www.lukas-renggli.ch
>>>>>>
>>>>>> _______________________________________________
>>>>>> Pharo-project mailing list
>>>>>> [hidden email]
>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> [hidden email]
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Lukas Renggli
>>>> http://www.lukas-renggli.ch
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>>
>>
>> --
>> Lukas Renggli
>> http://www.lukas-renggli.ch
>>
>
>
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

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