Crashed Pharo in Bloc/FastTable

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

Crashed Pharo in Bloc/FastTable

Stephan Eggermont-3


THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:28:47.447607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
        Receiver: nil
        Arguments and temporary variables:
                aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
                exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
                resumeValue: nil
        Receiver's instance variables:
nil

FTTableContainerMorph>>rowIndexContainingPoint:
        Receiver: a FTTableContainerMorph(901775360)
        Arguments and temporary variables:
                aPoint: (527@279)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a FTPluggableIconListMorphAdaptor(595329024)
                submorphs: #()
                fullBounds: (473.0@247.0) corner: (681.0@504.0)
                color: Color transparent
                extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
                needsRefreshExposedRows: true
                headerRow: nil
                exposedRows: nil


FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                event: BlMouseDownEvent((527@279) red 159215 0)
                rowIndex: nil
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


MouseClickState>>click
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:

        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
                firstClickUp: BlMouseUpEvent((527@279) 159295 0)
                firstClickTime: 159215
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


MouseClickState>>handleEvent:from:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((527@279) 159295 0)
                aHand: a BlHandMorph
                localEvt: BlMouseUpEvent((527@279) 159295 0)
                timedOut: false
                isDrag: false
        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
                firstClickUp: BlMouseUpEvent((527@279) 159295 0)
                firstClickTime: 159215
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


MouseClickState>>handleEvent:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((527@279) 159295 0)
        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
                firstClickUp: BlMouseUpEvent((527@279) 159295 0)
                firstClickTime: 159215
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


BlMorphicDoubleClickOrDragEventListener>>handleEvent:
        Receiver: a BlMorphicDoubleClickOrDragEventListener
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((527@279) 159295 0)
        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                state: a MouseClickState[#firstClickUp]


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((527@279) 159295 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                event: BlMouseUpEvent((527@279) 159295 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlVMEventFetcher>>fetchedEventDo:
        Receiver: a BlVMEventFetcher
        Arguments and temporary variables:
                aBlock: [ :event | self handleEvent: event ]
                evtBuf: #(1 159295 527 279 0 0 0 1)
                evt: BlMouseUpEvent((527@279) 159295 0)
                type: 1
        Receiver's instance variables:
                space: a BlMorphicCompatibleBlocSpace [Bloc-1]
                sensor: an InputEventSensor
                lastEventBuffer: #(1 159295 527 279 0 0 0 1)
                lastKeyScanCode: 30
                combinedChar: nil
                recentModifiers: 0


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:

        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:28:47.803607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
        Receiver: nil
        Arguments and temporary variables:
                aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
                exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
                resumeValue: nil
        Receiver's instance variables:
nil

FTTableContainerMorph>>rowIndexContainingPoint:
        Receiver: a FTTableContainerMorph(901775360)
        Arguments and temporary variables:
                aPoint: (527@279)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a FTPluggableIconListMorphAdaptor(595329024)
                submorphs: #()
                fullBounds: (473.0@247.0) corner: (681.0@504.0)
                color: Color transparent
                extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
                needsRefreshExposedRows: true
                headerRow: nil
                exposedRows: nil


FTPluggableIconListMorphAdaptor(FTTableMorph)>>doubleClick:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                event: BlMouseDownEvent((527@279) red 159215 0)
                rowIndex: nil
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


MouseClickState>>doubleClick
        Receiver: a MouseClickState[#secondClickDown]
        Arguments and temporary variables:

        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #secondClickDown
                firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
                firstClickUp: BlMouseUpEvent((527@279) 159295 0)
                firstClickTime: 159215
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


MouseClickState>>handleEvent:from:
        Receiver: a MouseClickState[#secondClickDown]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((527@279) 159655 0)
                aHand: a BlHandMorph
                localEvt: BlMouseUpEvent((527@279) 159655 0)
                timedOut: false
                isDrag: false
        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #secondClickDown
                firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
                firstClickUp: BlMouseUpEvent((527@279) 159295 0)
                firstClickTime: 159215
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


MouseClickState>>handleEvent:
        Receiver: a MouseClickState[#secondClickDown]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((527@279) 159655 0)
        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #secondClickDown
                firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
                firstClickUp: BlMouseUpEvent((527@279) 159295 0)
                firstClickTime: 159215
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


BlMorphicDoubleClickOrDragEventListener>>handleEvent:
        Receiver: a BlMorphicDoubleClickOrDragEventListener
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((527@279) 159655 0)
        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                state: nil


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((527@279) 159655 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                event: BlMouseUpEvent((527@279) 159655 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlVMEventFetcher>>fetchedEventDo:
        Receiver: a BlVMEventFetcher
        Arguments and temporary variables:
                aBlock: [ :event | self handleEvent: event ]
                evtBuf: #(1 159655 527 279 0 0 0 1)
                evt: BlMouseUpEvent((527@279) 159655 0)
                type: 1
        Receiver's instance variables:
                space: a BlMorphicCompatibleBlocSpace [Bloc-1]
                sensor: an InputEventSensor
                lastEventBuffer: #(1 159655 527 279 0 0 0 1)
                lastKeyScanCode: 30
                combinedChar: nil
                recentModifiers: 0


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:

        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>doubleClick:
MouseClickState>>doubleClick
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:28:57.915607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
        Receiver: nil
        Arguments and temporary variables:
                aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
                exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
                resumeValue: nil
        Receiver's instance variables:
nil

FTTableContainerMorph>>rowIndexContainingPoint:
        Receiver: a FTTableContainerMorph(901775360)
        Arguments and temporary variables:
                aPoint: (312@276)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a FTPluggableIconListMorphAdaptor(595329024)
                submorphs: #()
                fullBounds: (473.0@247.0) corner: (681.0@504.0)
                color: Color transparent
                extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
                needsRefreshExposedRows: true
                headerRow: nil
                exposedRows: nil


FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                event: BlMouseDownEvent((312@276) red 169647 0)
                rowIndex: nil
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


MouseClickState>>click
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:

        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((312@276) red 169647 0)
                firstClickUp: BlMouseUpEvent((312@276) 169775 0)
                firstClickTime: 169647
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


MouseClickState>>handleEvent:from:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((312@276) 169775 0)
                aHand: a BlHandMorph
                localEvt: BlMouseUpEvent((312@276) 169775 0)
                timedOut: false
                isDrag: false
        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((312@276) red 169647 0)
                firstClickUp: BlMouseUpEvent((312@276) 169775 0)
                firstClickTime: 169647
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


MouseClickState>>handleEvent:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((312@276) 169775 0)
        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((312@276) red 169647 0)
                firstClickUp: BlMouseUpEvent((312@276) 169775 0)
                firstClickTime: 169647
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


BlMorphicDoubleClickOrDragEventListener>>handleEvent:
        Receiver: a BlMorphicDoubleClickOrDragEventListener
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((312@276) 169775 0)
        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                state: a MouseClickState[#firstClickUp]


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((312@276) 169775 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                event: BlMouseUpEvent((312@276) 169775 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlVMEventFetcher>>fetchedEventDo:
        Receiver: a BlVMEventFetcher
        Arguments and temporary variables:
                aBlock: [ :event | self handleEvent: event ]
                evtBuf: #(1 169775 312 276 0 0 0 1)
                evt: BlMouseUpEvent((312@276) 169775 0)
                type: 1
        Receiver's instance variables:
                space: a BlMorphicCompatibleBlocSpace [Bloc-1]
                sensor: an InputEventSensor
                lastEventBuffer: #(1 169775 312 276 0 0 0 1)
                lastKeyScanCode: 30
                combinedChar: nil
                recentModifiers: 0


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:

        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:28:59.561608 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
        Receiver: nil
        Arguments and temporary variables:
                aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
                exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
                resumeValue: nil
        Receiver's instance variables:
nil

FTTableContainerMorph>>rowIndexContainingPoint:
        Receiver: a FTTableContainerMorph(901775360)
        Arguments and temporary variables:
                aPoint: (329@293)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a FTPluggableIconListMorphAdaptor(595329024)
                submorphs: #()
                fullBounds: (473.0@247.0) corner: (681.0@504.0)
                color: Color transparent
                extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
                needsRefreshExposedRows: true
                headerRow: nil
                exposedRows: nil


FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                event: BlMouseDownEvent((329@293) red 171311 0)
                rowIndex: nil
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


MouseClickState>>click
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:

        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((329@293) red 171311 0)
                firstClickUp: BlMouseUpEvent((329@293) 171423 0)
                firstClickTime: 171311
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


MouseClickState>>handleEvent:from:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((329@293) 171423 0)
                aHand: a BlHandMorph
                localEvt: BlMouseUpEvent((329@293) 171423 0)
                timedOut: false
                isDrag: false
        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((329@293) red 171311 0)
                firstClickUp: BlMouseUpEvent((329@293) 171423 0)
                firstClickTime: 171311
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


MouseClickState>>handleEvent:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((329@293) 171423 0)
        Receiver's instance variables:
                clickClient: a FTPluggableIconListMorphAdaptor(595329024)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((329@293) red 171311 0)
                firstClickUp: BlMouseUpEvent((329@293) 171423 0)
                firstClickTime: 171311
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: #doubleClickTimeout:
                dragSelector: #startDrag:
                dragThreshold: 3


BlMorphicDoubleClickOrDragEventListener>>handleEvent:
        Receiver: a BlMorphicDoubleClickOrDragEventListener
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((329@293) 171423 0)
        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                state: a MouseClickState[#firstClickUp]


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((329@293) 171423 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                event: BlMouseUpEvent((329@293) 171423 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlVMEventFetcher>>fetchedEventDo:
        Receiver: a BlVMEventFetcher
        Arguments and temporary variables:
                aBlock: [ :event | self handleEvent: event ]
                evtBuf: #(1 171423 329 293 0 0 0 1)
                evt: BlMouseUpEvent((329@293) 171423 0)
                type: 1
        Receiver's instance variables:
                space: a BlMorphicCompatibleBlocSpace [Bloc-1]
                sensor: an InputEventSensor
                lastEventBuffer: #(1 171423 329 293 0 0 0 1)
                lastKeyScanCode: 30
                combinedChar: nil
                recentModifiers: 0


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:

        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:29:00.919615 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
        Receiver: nil
        Arguments and temporary variables:
                aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
                exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
                resumeValue: nil
        Receiver's instance variables:
nil

FTTableContainerMorph>>rowIndexContainingPoint:
        Receiver: a FTTableContainerMorph(901775360)
        Arguments and temporary variables:
                aPoint: (31@270)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a FTPluggableIconListMorphAdaptor(595329024)
                submorphs: #()
                fullBounds: (473.0@247.0) corner: (681.0@504.0)
                color: Color transparent
                extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
                needsRefreshExposedRows: true
                headerRow: nil
                exposedRows: nil


FTPluggableIconListMorphAdaptor(FTTableMorph)>>mouseMove:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                event: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


FTPluggableIconListMorphAdaptor(FTTableMorph)>>handleMouseMove:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


BlMouseMoveEvent>>sentTo:
        Receiver: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Arguments and temporary variables:
                anObject: a FTPluggableIconListMorphAdaptor(595329024)
        Receiver's instance variables:
                timeStamp: 172767
                source: a BlHandMorph
                windowIndex: 0
                handler: nil
                wasHandled: true
                buttons: 4
                position: (31@270)
                startPoint: (23.0@271.0)
                trail: {(26@270). (31@270)}


FTPluggableIconListMorphAdaptor(Morph)>>handleEvent:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


FTPluggableIconListMorphAdaptor(Morph)>>handleFocusEvent:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


BlSpaceEventListener>>sendFocusEvent:to:clear:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                focusHolder: a FTPluggableIconListMorphAdaptor(595329024)
                aBlock: [ self mouseFocus: nil ]
                w: a BlWorldMorph
                transformedEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlSpaceEventListener>>sendEvent:focus:clear:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                focusHolder: a FTPluggableIconListMorphAdaptor(595329024)
                aBlock: [ self mouseFocus: nil ]
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlSpaceEventListener>>sendEventToMouseFocus:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


[ self sendEventToMouseFocus: anEvent ] in BlSpaceEventListener>>mouseMove:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


UndefinedObject>>ifNotNil:ifNil:
        Receiver: nil
        Arguments and temporary variables:
                ifNotNilBlock: [ :d | aBlockWithDraggedAsArg cull: d ]
                nilBlock: [ self sendEventToMouseFocus: anEvent ]
        Receiver's instance variables:
nil

BlHandMorph>>withDraggedDo:ifNone:
        Receiver: a BlHandMorph
        Arguments and temporary variables:
                aBlockWithDraggedAsArg: [  ]
                noneBlock: [ self sendEventToMouseFocus: anEvent ]
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: a WeakArray(a BlHandForegroundMorph)
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: a WeakArray(nil)
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlHandView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: 100
                style: a BlUINullStyle
                targetOffset: (-450.0@24.0)
                dragged: nil
                defaultView: a BlHandView


BlSpaceEventListener>>mouseMove:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>mouseMove:
        Receiver: a BlMorphicCompatibilitySpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                next: a BlSpaceEventListener


BlHaloGlobalEventListener(BlEventListener)>>mouseMove:
        Receiver: a BlHaloGlobalEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                next: a BlMorphicCompatibilitySpaceEventListener


BlMouseMoveEvent>>sentToNext:
        Receiver: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Arguments and temporary variables:
                anObject: a BlHaloGlobalEventListener
        Receiver's instance variables:
                timeStamp: 172767
                source: a BlHandMorph
                windowIndex: 0
                handler: nil
                wasHandled: false
                buttons: 4
                position: (31@270)
                startPoint: (23.0@271.0)
                trail: {(26@270). (31@270)}


[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                listener: a BlHaloGlobalEventListener
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlockClosure>>cull:
        Receiver: [ :listener | anEvent sentToNext: listener ]
        Arguments and temporary variables:
                anArg: a BlHaloGlobalEventListener
        Receiver's instance variables:
                outerContext: BlSpaceEventListener>>handleEvent:
                startpc: 27
                numArgs: 1


[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                aBlock: [ :listener | anEvent sentToNext: listener ]
                el: a BlHaloGlobalEventListener
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlockClosure>>cull:
        Receiver: [ :el | aBlock cull: el ]
        Arguments and temporary variables:
                anArg: a BlHaloGlobalEventListener
        Receiver's instance variables:
                outerContext: BlSpaceEventListener>>privateReinjectEvent:
                startpc: 32
                numArgs: 1


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                aBlock: [ :el | aBlock cull: el ]
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlSpaceEventListener>>privateReinjectEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                aBlock: [ :listener | anEvent sentToNext: listener ]
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlSpaceEventListener>>handleEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
        Receiver: a BlMorphicCompatibilitySpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                next: a BlSpaceEventListener


BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
        Receiver: a BlHaloGlobalEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                next: a BlMorphicCompatibilitySpaceEventListener


BlMorphicDoubleClickOrDragEventListener(BlEventListener)>>handleEvent:
        Receiver: a BlMorphicDoubleClickOrDragEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                state: nil


BlMorphicDoubleClickOrDragEventListener>>handleEvent:
        Receiver: a BlMorphicDoubleClickOrDragEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                state: nil


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                event: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlVMEventFetcher>>fetchedEventDo:
        Receiver: a BlVMEventFetcher
        Arguments and temporary variables:
                aBlock: [ :event | self handleEvent: event ]
                evtBuf: #(1 172767 26 270 4 0 0 1)
                evt: BlMouseMoveEvent((23.0@271.0) (31@270) red 172767 0)
                type: 1
        Receiver's instance variables:
                space: a BlMorphicCompatibleBlocSpace [Bloc-1]
                sensor: an InputEventSensor
                lastEventBuffer: #(1 172767 26 270 4 0 0 1)
                lastKeyScanCode: 30
                combinedChar: nil
                recentModifiers: 0


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:

        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>mouseMove:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>handleMouseMove:
BlMouseMoveEvent>>sentTo:
FTPluggableIconListMorphAdaptor(Morph)>>handleEvent:
FTPluggableIconListMorphAdaptor(Morph)>>handleFocusEvent:
BlSpaceEventListener>>sendFocusEvent:to:clear:
BlSpaceEventListener>>sendEvent:focus:clear:
BlSpaceEventListener>>sendEventToMouseFocus:
[ self sendEventToMouseFocus: anEvent ] in BlSpaceEventListener>>mouseMove:
UndefinedObject>>ifNotNil:ifNil:
BlHandMorph>>withDraggedDo:ifNone:
BlSpaceEventListener>>mouseMove:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>mouseMove:
BlHaloGlobalEventListener(BlEventListener)>>mouseMove:
BlMouseMoveEvent>>sentToNext:
[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
BlockClosure>>cull:
[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
BlockClosure>>cull:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
BlSpaceEventListener>>privateReinjectEvent:
BlSpaceEventListener>>handleEvent:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
BlMorphicDoubleClickOrDragEventListener(BlEventListener)>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:29:00.979607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
        Receiver: nil
        Arguments and temporary variables:
                aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
                exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
                resumeValue: nil
        Receiver's instance variables:
nil

FTTableContainerMorph>>rowIndexContainingPoint:
        Receiver: a FTTableContainerMorph(901775360)
        Arguments and temporary variables:
                aPoint: (53@274)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a FTPluggableIconListMorphAdaptor(595329024)
                submorphs: #()
                fullBounds: (473.0@247.0) corner: (681.0@504.0)
                color: Color transparent
                extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
                needsRefreshExposedRows: true
                headerRow: nil
                exposedRows: nil


FTPluggableIconListMorphAdaptor(FTTableMorph)>>mouseMove:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                event: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


FTPluggableIconListMorphAdaptor(FTTableMorph)>>handleMouseMove:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


BlMouseMoveEvent>>sentTo:
        Receiver: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Arguments and temporary variables:
                anObject: a FTPluggableIconListMorphAdaptor(595329024)
        Receiver's instance variables:
                timeStamp: 172793
                source: a BlHandMorph
                windowIndex: 0
                handler: nil
                wasHandled: true
                buttons: 4
                position: (53@274)
                startPoint: (31.0@270.0)
                trail: {(37@270). (43@270). (53@274)}


FTPluggableIconListMorphAdaptor(Morph)>>handleEvent:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


FTPluggableIconListMorphAdaptor(Morph)>>handleFocusEvent:
        Receiver: a FTPluggableIconListMorphAdaptor(595329024)
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                bounds: (473.0@247.0) corner: (681.0@504.0)
                owner: a PanelMorph(547618816)
                submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
                fullBounds: (473@247) corner: (681@504)
                color: Color white
                extension: a MorphExtension (634912768) [other:  (announcer -> an
Announcer) (k...etc...
                container: a FTTableContainerMorph(901775360)
                verticalScrollBar: a ScrollBar(648544256)
                backgroundColor: nil
                selectionColor: nil
                showIndex: 0
                dataSource: a FTPluggableIconListMorphAdaptorDataSource
                intercellSpacing: nil
                rowHeight: nil
                selectedRowIndexes: #()
                highlightedRowIndexes: #()
                selectionStrategy: a FTMultipleSelection
                columns: an Array(a FTColumn)
                secondarySelectionColor: nil
                headerColor: nil
                showHeader: nil
                showColumnHeaders: false
                search: a FTSearchFunction
                allowsDeselection: true
                setSelectionListSelector: #classSelectionAt:put:
                getSelectionListSelector: #classSelectionAt:
                setIndexSelector: #selectedClassIndex:
                getIndexSelector: #selectedClassIndex
                keystrokeSelector: #keyPressedOnList:shifted:
                resetListSelector: #resetClassSelection
                doubleClickSelector: #doubleClick
                keystrokeActionSelector: nil


BlSpaceEventListener>>sendFocusEvent:to:clear:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                focusHolder: a FTPluggableIconListMorphAdaptor(595329024)
                aBlock: [ self mouseFocus: nil ]
                w: a BlWorldMorph
                transformedEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a PluggableButtonMorph(148373504)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlSpaceEventListener>>sendEvent:focus:clear:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                focusHolder: a FTPluggableIconListMorphAdaptor(595329024)
                aBlock: [ self mouseFocus: nil ]
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a PluggableButtonMorph(148373504)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlSpaceEventListener>>sendEventToMouseFocus:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a PluggableButtonMorph(148373504)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


[ self sendEventToMouseFocus: anEvent ] in BlSpaceEventListener>>mouseMove:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a PluggableButtonMorph(148373504)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


UndefinedObject>>ifNotNil:ifNil:
        Receiver: nil
        Arguments and temporary variables:
                ifNotNilBlock: [ :d | aBlockWithDraggedAsArg cull: d ]
                nilBlock: [ self sendEventToMouseFocus: anEvent ]
        Receiver's instance variables:
nil

BlHandMorph>>withDraggedDo:ifNone:
        Receiver: a BlHandMorph
        Arguments and temporary variables:
                aBlockWithDraggedAsArg: [  ]
                noneBlock: [ self sendEventToMouseFocus: anEvent ]
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: a WeakArray(a BlHandForegroundMorph)
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: a WeakArray(nil)
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlHandView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: 100
                style: a BlUINullStyle
                targetOffset: (-450.0@24.0)
                dragged: nil
                defaultView: a BlHandView


BlSpaceEventListener>>mouseMove:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a PluggableButtonMorph(148373504)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>mouseMove:
        Receiver: a BlMorphicCompatibilitySpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                next: a BlSpaceEventListener


BlHaloGlobalEventListener(BlEventListener)>>mouseMove:
        Receiver: a BlHaloGlobalEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                next: a BlMorphicCompatibilitySpaceEventListener


BlMouseMoveEvent>>sentToNext:
        Receiver: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Arguments and temporary variables:
                anObject: a BlHaloGlobalEventListener
        Receiver's instance variables:
                timeStamp: 172793
                source: a BlHandMorph
                windowIndex: 0
                handler: nil
                wasHandled: false
                buttons: 4
                position: (53@274)
                startPoint: (31.0@270.0)
                trail: {(37@270). (43@270). (53@274)}


[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                listener: a BlHaloGlobalEventListener
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a PluggableButtonMorph(148373504)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlockClosure>>cull:
        Receiver: [ :listener | anEvent sentToNext: listener ]
        Arguments and temporary variables:
                anArg: a BlHaloGlobalEventListener
        Receiver's instance variables:
                outerContext: BlSpaceEventListener>>handleEvent:
                startpc: 27
                numArgs: 1


[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                aBlock: [ :listener | anEvent sentToNext: listener ]
                el: a BlHaloGlobalEventListener
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a PluggableButtonMorph(148373504)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlockClosure>>cull:
        Receiver: [ :el | aBlock cull: el ]
        Arguments and temporary variables:
                anArg: a BlHaloGlobalEventListener
        Receiver's instance variables:
                outerContext: BlSpaceEventListener>>privateReinjectEvent:
                startpc: 32
                numArgs: 1


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                aBlock: [ :el | aBlock cull: el ]
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlSpaceEventListener>>privateReinjectEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                aBlock: [ :listener | anEvent sentToNext: listener ]
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a PluggableButtonMorph(148373504)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlSpaceEventListener>>handleEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a PluggableButtonMorph(148373504)
                mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
                lastMouseEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
        Receiver: a BlMorphicCompatibilitySpaceEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                next: a BlSpaceEventListener


BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
        Receiver: a BlHaloGlobalEventListener
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                next: a BlMorphicCompatibilitySpaceEventListener


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                event: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlVMEventFetcher>>fetchedEventDo:
        Receiver: a BlVMEventFetcher
        Arguments and temporary variables:
                aBlock: [ :event | self handleEvent: event ]
                evtBuf: #(1 172793 37 270 4 0 0 1)
                evt: BlMouseMoveEvent((31.0@270.0) (53@274) red 172793 0)
                type: 1
        Receiver's instance variables:
                space: a BlMorphicCompatibleBlocSpace [Bloc-1]
                sensor: an InputEventSensor
                lastEventBuffer: #(1 172793 37 270 4 0 0 1)
                lastKeyScanCode: 30
                combinedChar: nil
                recentModifiers: 0


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:

        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>mouseMove:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>handleMouseMove:
BlMouseMoveEvent>>sentTo:
FTPluggableIconListMorphAdaptor(Morph)>>handleEvent:
FTPluggableIconListMorphAdaptor(Morph)>>handleFocusEvent:
BlSpaceEventListener>>sendFocusEvent:to:clear:
BlSpaceEventListener>>sendEvent:focus:clear:
BlSpaceEventListener>>sendEventToMouseFocus:
[ self sendEventToMouseFocus: anEvent ] in BlSpaceEventListener>>mouseMove:
UndefinedObject>>ifNotNil:ifNil:
BlHandMorph>>withDraggedDo:ifNone:
BlSpaceEventListener>>mouseMove:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>mouseMove:
BlHaloGlobalEventListener(BlEventListener)>>mouseMove:
BlMouseMoveEvent>>sentToNext:
[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
BlockClosure>>cull:
[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
BlockClosure>>cull:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
BlSpaceEventListener>>privateReinjectEvent:
BlSpaceEventListener>>handleEvent:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlRectangleView>>cornerRadius:
14 July 2015 1:46:40.985607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BlRectangleView(Object)>>doesNotUnderstand: #cornerRadius:
        Receiver: a BlRectangleView
        Arguments and temporary variables:
                aMessage: cornerRadius: 5
                exception: MessageNotUnderstood: BlRectangleView>>cornerRadius:
                resumeValue: nil
        Receiver's instance variables:
                transform: a BlAthensIdentityTransform
                ownerReference: a WeakArray(a BlWellPanel)
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                extent: (50@50)
                fillStyle: Color white
                borderStyle: a BlNullRectanglerBorder
                layoutStrategy: a BlDummyLayoutStrategy
                plainSurface: true
                clipping: false
                subviews: #()


[ :v |
v color: self defaultColor.
v cornerRadius: 5.
v
        borderStyle:
                (BlSolidRectangleBorder new
                        color: self defaultBorderColor;
                        width: self defaultBorderWidth).
v addView: (BlStringView string: self title) ] in BlWellPanel>>initialize
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                v: a BlRectangleView
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil


BlWellPanel(BlMorph)>>withRectangleViewDo:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aBlock: [ :v |
v color: self defaultColor.
v cornerRadius: 5.
v
        borderStyle:
...etc...
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil


BlWellPanel>>initialize
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil


BlWellPanel class(Behavior)>>new
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->BlWellPanel>>#defaultBorder...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #(#title)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


UndefinedObject>>DoIt
        Receiver: nil
        Arguments and temporary variables:

        Receiver's instance variables:
nil

OpalCompiler>>evaluate
        Receiver: an OpalCompiler
        Arguments and temporary variables:
                value: nil
                selectedSource: a ReadStream
                itsSelection: a Text for ''
                itsSelectionString: ''
        Receiver's instance variables:
                ast: DoIt
        ^ BlWellPanel new openInWorld
                source: a ReadStream
                context: nil
                receiver: nil
                compilationContext: a CompilationContext
                compilationContextClass: nil
                useFaultyForParsing: false


RubSmalltalkEditor>>evaluate:andDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aStream: a ReadStream
                aBlock: [ :result | aBlock value: result ]
                result: nil
                rcvr: nil
                ctxt: nil
        Receiver's instance variables:
                defaultKeymappingIndex: nil
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


RubSmalltalkEditor>>highlightEvaluateAndDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aBlock: [ :result |  ]
        Receiver's instance variables:
                defaultKeymappingIndex: nil
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(204472320)
        Arguments and temporary variables:
                editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (580@31)
                owner: a TransformWithLayoutMorph(782237696)
                submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (676069376) [other:  (announcer -> an
Announcer) (k...etc...
                model: a GLMRubricSmalltalkTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(743702528)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkScriptingMode
                cursor: a RubCursor(650379264)
                segments: an OrderedCollection(a RubHighlightSegmentMorph(677642240))
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                nextInQueue: [
textMorph textArea
        handleEdit: [
                textMorph textArea editor ...etc...
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
BlRectangleView(Object)>>doesNotUnderstand: #cornerRadius:
[ :v |
v color: self defaultColor.
v cornerRadius: 5.
v
        borderStyle:
                (BlSolidRectangleBorder new
                        color: self defaultBorderColor;
                        width: self defaultBorderWidth).
v addView: (BlStringView string: self title) ] in BlWellPanel>>initialize
BlWellPanel(BlMorph)>>withRectangleViewDo:
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: Array>>self
14 July 2015 2:08:25.071608 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

Array(Object)>>doesNotUnderstand: #self
        Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
        Arguments and temporary variables:
                aMessage: self
                exception: MessageNotUnderstood: Array>>self
                resumeValue: nil
        Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...

BlWellPanel>>defaultValues:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                anObject: {Color lightYellow. Color lightGreen. Color lightBlue.
Color white. C...etc...
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: nil


BlWellPanel class>>withSevenPaleColors
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


UndefinedObject>>DoIt
        Receiver: nil
        Arguments and temporary variables:

        Receiver's instance variables:
nil

OpalCompiler>>evaluate
        Receiver: an OpalCompiler
        Arguments and temporary variables:
                value: nil
                selectedSource: a ReadStream
                itsSelection: a Text for ''
                itsSelectionString: ''
        Receiver's instance variables:
                ast: DoIt
        ^ BlWellPanel withSevenPaleColors openInWorld
                source: a ReadStream
                context: nil
                receiver: nil
                compilationContext: a CompilationContext
                compilationContextClass: nil
                useFaultyForParsing: false


RubSmalltalkEditor>>evaluate:andDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aStream: a ReadStream
                aBlock: [ :result | aBlock value: result ]
                result: nil
                rcvr: nil
                ctxt: nil
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


RubSmalltalkEditor>>highlightEvaluateAndDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aBlock: [ :result |  ]
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(204472320)
        Arguments and temporary variables:
                editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (580@69)
                owner: a TransformWithLayoutMorph(782237696)
                submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (676069376) [other:  (announcer -> an
Announcer) (k...etc...
                model: a GLMRubricSmalltalkTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(743702528)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkScriptingMode
                cursor: a RubCursor(650379264)
                segments: an OrderedCollection(a RubHighlightSegmentMorph(503578624))
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                nextInQueue: [
textMorph textArea
        handleEdit: [
                textMorph textArea editor ...etc...
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
Array(Object)>>doesNotUnderstand: #self
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: Rectangle>>asPoint
14 July 2015 2:08:35.82361 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

Rectangle(Object)>>doesNotUnderstand: #asPoint
        Receiver: (0@0) corner: (30@30)
        Arguments and temporary variables:
                aMessage: asPoint
                exception: MessageNotUnderstood: Rectangle>>asPoint
                resumeValue: nil
        Receiver's instance variables:
                origin: (0@0)
                corner: (30@30)


BlMinimalMorphView(BlView)>>basicExtent:
        Receiver: a BlMinimalMorphView
        Arguments and temporary variables:
                aPoint: (0@0) corner: (30@30)
                previousExtent: nil
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: a WeakArray(a BlDragWell)
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                extent: (50@50)


BlMinimalMorphView(BlProtoView)>>privateExtent:
        Receiver: a BlMinimalMorphView
        Arguments and temporary variables:
                anExtent: (0@0) corner: (30@30)
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: a WeakArray(a BlDragWell)
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                extent: (50@50)


[ aView privateExtent: anExtent ] in BlExtentRestriction>>extent:of:
        Receiver: a BlExtentRestriction
        Arguments and temporary variables:
                anExtent: (0@0) corner: (30@30)
                aView: a BlMinimalMorphView
        Receiver's instance variables:
                minimalWidth: 0
                minimalHeight: 0
                maximalWidth: 1073741823
                maximalHeight: 1073741823


BlMinimalMorphView(BlProtoView)>>changedAround:
        Receiver: a BlMinimalMorphView
        Arguments and temporary variables:
                aBlock: [ aView privateExtent: anExtent ]
                previousTransform: an AthensAffineTransform
                previousBnds: (-1@ -1) corner: (51@51)
                newTransform: nil
                newBnds: nil
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: a WeakArray(a BlDragWell)
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                extent: (50@50)


BlExtentRestriction>>extent:of:
        Receiver: a BlExtentRestriction
        Arguments and temporary variables:
                anExtent: (0@0) corner: (30@30)
                aView: a BlMinimalMorphView
        Receiver's instance variables:
                minimalWidth: 0
                minimalHeight: 0
                maximalWidth: 1073741823
                maximalHeight: 1073741823


BlMinimalMorphView(BlProtoView)>>extent:
        Receiver: a BlMinimalMorphView
        Arguments and temporary variables:
                anExtent: (0@0) corner: (30@30)
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: a WeakArray(a BlDragWell)
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                extent: (50@50)


BlDragWell(BlMorph)>>defaultView
        Receiver: a BlDragWell
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: nil
                announcer: nil
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                panel: nil


BlDragWell(BlMorph)>>initialize
        Receiver: a BlDragWell
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: nil
                announcer: nil
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                panel: nil


BlDragWell>>initialize
        Receiver: a BlDragWell
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: nil
                announcer: nil
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                panel: nil


BlDragWell class(Behavior)>>new
        Receiver: BlDragWell
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->BlDragWell>>#defaultBorderC...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #(#panel)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlDragWell
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


BlDragWell class>>on:
        Receiver: BlDragWell
        Arguments and temporary variables:
                aColor: Color lightYellow
        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->BlDragWell>>#defaultBorderC...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #(#panel)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlDragWell
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


[ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel: self;
                        yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                value: Color lightYellow
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


Array(SequenceableCollection)>>do:
        Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
        Arguments and temporary variables:
                aBlock: [ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel:...etc...
                index: 1
        Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...

BlWellPanel>>addDefaultWellsAndPlus
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel>>defaultValues:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                anObject: {Color lightYellow. Color lightGreen. Color lightBlue.
Color white. C...etc...
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel class>>withSevenPaleColors
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


UndefinedObject>>DoIt
        Receiver: nil
        Arguments and temporary variables:

        Receiver's instance variables:
nil

OpalCompiler>>evaluate
        Receiver: an OpalCompiler
        Arguments and temporary variables:
                value: nil
                selectedSource: a ReadStream
                itsSelection: a Text for ''
                itsSelectionString: ''
        Receiver's instance variables:
                ast: DoIt
        ^ BlWellPanel withSevenPaleColors openInWorld
                source: a ReadStream
                context: nil
                receiver: nil
                compilationContext: a CompilationContext
                compilationContextClass: nil
                useFaultyForParsing: false


RubSmalltalkEditor>>evaluate:andDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aStream: a ReadStream
                aBlock: [ :result | aBlock value: result ]
                result: nil
                rcvr: nil
                ctxt: nil
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


RubSmalltalkEditor>>highlightEvaluateAndDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aBlock: [ :result |  ]
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(204472320)
        Arguments and temporary variables:
                editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (580@69)
                owner: a TransformWithLayoutMorph(782237696)
                submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
                fullBounds: (0@0) corner: (580@69)
                color: Color transparent
                extension: a MorphExtension (676069376) [other:  (announcer -> an
Announcer) (k...etc...
                model: a GLMRubricSmalltalkTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(743702528)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkScriptingMode
                cursor: a RubCursor(650379264)
                segments: an OrderedCollection(a RubHighlightSegmentMorph(503578624))
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                nextInQueue: [
textMorph textArea
        handleEdit: [
                textMorph textArea editor ...etc...
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
Rectangle(Object)>>doesNotUnderstand: #asPoint
BlMinimalMorphView(BlView)>>basicExtent:
BlMinimalMorphView(BlProtoView)>>privateExtent:
[ aView privateExtent: anExtent ] in BlExtentRestriction>>extent:of:
BlMinimalMorphView(BlProtoView)>>changedAround:
BlExtentRestriction>>extent:of:
BlMinimalMorphView(BlProtoView)>>extent:
BlDragWell(BlMorph)>>defaultView
BlDragWell(BlMorph)>>initialize
BlDragWell>>initialize
BlDragWell class(Behavior)>>new
BlDragWell class>>on:
[ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel: self;
                        yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Array(SequenceableCollection)>>do:
BlWellPanel>>addDefaultWellsAndPlus
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlDragWell>>layoutPropertiesFirstAxisDo:
14 July 2015 2:57:40.453607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BlDragWell(Object)>>doesNotUnderstand: #layoutPropertiesFirstAxisDo:
        Receiver: a BlDragWell
        Arguments and temporary variables:
                aMessage: layoutPropertiesFirstAxisDo: [ :a | a beRigid ]
                exception: MessageNotUnderstood: BlDragWell>>layoutPropertiesFirstAxisDo:
                resumeValue: nil
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                panel: nil


BlDragWell(BlMorph)>>doesNotUnderstand: #layoutPropertiesFirstAxisDo:
        Receiver: a BlDragWell
        Arguments and temporary variables:
                aMessage: layoutPropertiesFirstAxisDo: [ :a | a beRigid ]
                cat: nil
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                panel: nil


BlDragWell>>initialize
        Receiver: a BlDragWell
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                panel: nil


BlDragWell class(Behavior)>>new
        Receiver: BlDragWell
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->BlDragWell>>#defaultBorderC...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #(#panel)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlDragWell
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


BlDragWell class>>on:
        Receiver: BlDragWell
        Arguments and temporary variables:
                aColor: Color lightYellow
        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->BlDragWell>>#defaultBorderC...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #(#panel)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlDragWell
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


[ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel: self;
                        yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                value: Color lightYellow
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlBoxLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


Array(SequenceableCollection)>>do:
        Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
        Arguments and temporary variables:
                aBlock: [ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel:...etc...
                index: 1
        Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...

BlWellPanel>>addDefaultWellsAndPlus
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlBoxLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel>>defaultValues:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                anObject: {Color lightYellow. Color lightGreen. Color lightBlue.
Color white. C...etc...
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlBoxLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel class>>withSevenPaleColors
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


UndefinedObject>>DoIt
        Receiver: nil
        Arguments and temporary variables:

        Receiver's instance variables:
nil

OpalCompiler>>evaluate
        Receiver: an OpalCompiler
        Arguments and temporary variables:
                value: nil
                selectedSource: a ReadStream
                itsSelection: a Text for ''
                itsSelectionString: ''
        Receiver's instance variables:
                ast: DoIt
        ^ BlWellPanel withSevenPaleColors openInWorld
                source: a ReadStream
                context: nil
                receiver: nil
                compilationContext: a CompilationContext
                compilationContextClass: nil
                useFaultyForParsing: false


RubSmalltalkEditor>>evaluate:andDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aStream: a ReadStream
                aBlock: [ :result | aBlock value: result ]
                result: nil
                rcvr: nil
                ctxt: nil
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


RubSmalltalkEditor>>highlightEvaluateAndDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aBlock: [ :result |  ]
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(204472320)
        Arguments and temporary variables:
                editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (580@69)
                owner: a TransformWithLayoutMorph(782237696)
                submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (676069376) [other:  (announcer -> an
Announcer) (k...etc...
                model: a GLMRubricSmalltalkTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(743702528)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkScriptingMode
                cursor: a RubCursor(650379264)
                segments: an OrderedCollection(a RubHighlightSegmentMorph(222298112))
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                nextInQueue: [
textMorph textArea
        handleEdit: [
                textMorph textArea editor ...etc...
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
BlDragWell(Object)>>doesNotUnderstand: #layoutPropertiesFirstAxisDo:
BlDragWell(BlMorph)>>doesNotUnderstand: #layoutPropertiesFirstAxisDo:
BlDragWell>>initialize
BlDragWell class(Behavior)>>new
BlDragWell class>>on:
[ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel: self;
                        yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Array(SequenceableCollection)>>do:
BlWellPanel>>addDefaultWellsAndPlus
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlStackLayoutStrategy>>beLeftToRight
14 July 2015 3:10:23.759608 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BlStackLayoutStrategy(Object)>>doesNotUnderstand: #beLeftToRight
        Receiver: a BlStackLayoutStrategy
        Arguments and temporary variables:
                aMessage: beLeftToRight
                exception: MessageNotUnderstood: BlStackLayoutStrategy>>beLeftToRight
                resumeValue: nil
        Receiver's instance variables:
                layouting: false
                plugged: true


BlWellPanel>>initialize
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: nil


BlWellPanel class(Behavior)>>new
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


BlWellPanel class>>withSevenPaleColors
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


UndefinedObject>>DoIt
        Receiver: nil
        Arguments and temporary variables:

        Receiver's instance variables:
nil

OpalCompiler>>evaluate
        Receiver: an OpalCompiler
        Arguments and temporary variables:
                value: nil
                selectedSource: a ReadStream
                itsSelection: a Text for ''
                itsSelectionString: ''
        Receiver's instance variables:
                ast: DoIt
        ^ BlWellPanel withSevenPaleColors openInWorld
                source: a ReadStream
                context: nil
                receiver: nil
                compilationContext: a CompilationContext
                compilationContextClass: nil
                useFaultyForParsing: false


RubSmalltalkEditor>>evaluate:andDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aStream: a ReadStream
                aBlock: [ :result | aBlock value: result ]
                result: nil
                rcvr: nil
                ctxt: nil
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


RubSmalltalkEditor>>highlightEvaluateAndDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aBlock: [ :result |  ]
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(204472320)
        Arguments and temporary variables:
                editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (580@69)
                owner: a TransformWithLayoutMorph(782237696)
                submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (676069376) [other:  (announcer -> an
Announcer) (k...etc...
                model: a GLMRubricSmalltalkTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(743702528)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkScriptingMode
                cursor: a RubCursor(650379264)
                segments: an OrderedCollection(a RubHighlightSegmentMorph(459800576))
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                nextInQueue: [
textMorph textArea
        handleEdit: [
                textMorph textArea editor ...etc...
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
BlStackLayoutStrategy(Object)>>doesNotUnderstand: #beLeftToRight
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlStackLayoutStrategy>>padding:
14 July 2015 3:10:51.877611 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BlStackLayoutStrategy(Object)>>doesNotUnderstand: #padding:
        Receiver: a BlStackLayoutStrategy
        Arguments and temporary variables:
                aMessage: padding: 2
                exception: MessageNotUnderstood: BlStackLayoutStrategy>>padding:
                resumeValue: nil
        Receiver's instance variables:
                layouting: false
                plugged: true


BlWellPanel>>initialize
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: nil


BlWellPanel class(Behavior)>>new
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


BlWellPanel class>>withSevenPaleColors
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


UndefinedObject>>DoIt
        Receiver: nil
        Arguments and temporary variables:

        Receiver's instance variables:
nil

OpalCompiler>>evaluate
        Receiver: an OpalCompiler
        Arguments and temporary variables:
                value: nil
                selectedSource: a ReadStream
                itsSelection: a Text for ''
                itsSelectionString: ''
        Receiver's instance variables:
                ast: DoIt
        ^ BlWellPanel withSevenPaleColors openInWorld
                source: a ReadStream
                context: nil
                receiver: nil
                compilationContext: a CompilationContext
                compilationContextClass: nil
                useFaultyForParsing: false


RubSmalltalkEditor>>evaluate:andDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aStream: a ReadStream
                aBlock: [ :result | aBlock value: result ]
                result: nil
                rcvr: nil
                ctxt: nil
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


RubSmalltalkEditor>>highlightEvaluateAndDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aBlock: [ :result |  ]
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(204472320)
        Arguments and temporary variables:
                editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (580@69)
                owner: a TransformWithLayoutMorph(782237696)
                submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (676069376) [other:  (announcer -> an
Announcer) (k...etc...
                model: a GLMRubricSmalltalkTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(743702528)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkScriptingMode
                cursor: a RubCursor(650379264)
                segments: an OrderedCollection(a RubHighlightSegmentMorph(456654848))
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                nextInQueue: [
textMorph textArea
        handleEdit: [
                textMorph textArea editor ...etc...
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
BlStackLayoutStrategy(Object)>>doesNotUnderstand: #padding:
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "isRightToLeft" is nil
14 July 2015 3:14:57.567607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

UndefinedObject(Object)>>doesNotUnderstand: #isRightToLeft
        Receiver: nil
        Arguments and temporary variables:
                aMessage: isRightToLeft
                exception: MessageNotUnderstood: receiver of "isRightToLeft" is nil
                resumeValue: nil
        Receiver's instance variables:
nil

BlRowLayout(BlBoxLayout)>>initializeCells
        Receiver: a BlRowLayout
        Arguments and temporary variables:
                b: [ :c | self addCell: (self newCellFor: c) ]
        Receiver's instance variables:
                strategy: nil
                targetReference: nil
                position: nil
                extent: nil
                firstCell: nil
                lastCell: nil


BlRowLayout>>initializeCells
        Receiver: a BlRowLayout
        Arguments and temporary variables:

        Receiver's instance variables:
                strategy: nil
                targetReference: nil
                position: nil
                extent: nil
                firstCell: nil
                lastCell: nil


BlRowLayout(BlBoxLayout)>>adaptContentsToExtent
        Receiver: a BlRowLayout
        Arguments and temporary variables:

        Receiver's instance variables:
                strategy: nil
                targetReference: nil
                position: nil
                extent: nil
                firstCell: nil
                lastCell: nil


BlWellPanel>>initialize
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: nil


BlWellPanel class(Behavior)>>new
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


BlWellPanel class>>withSevenPaleColors
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


UndefinedObject>>DoIt
        Receiver: nil
        Arguments and temporary variables:

        Receiver's instance variables:
nil

OpalCompiler>>evaluate
        Receiver: an OpalCompiler
        Arguments and temporary variables:
                value: nil
                selectedSource: a ReadStream
                itsSelection: a Text for ''
                itsSelectionString: ''
        Receiver's instance variables:
                ast: DoIt
        ^ BlWellPanel withSevenPaleColors openInWorld
                source: a ReadStream
                context: nil
                receiver: nil
                compilationContext: a CompilationContext
                compilationContextClass: nil
                useFaultyForParsing: false


RubSmalltalkEditor>>evaluate:andDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aStream: a ReadStream
                aBlock: [ :result | aBlock value: result ]
                result: nil
                rcvr: nil
                ctxt: nil
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


RubSmalltalkEditor>>highlightEvaluateAndDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aBlock: [ :result |  ]
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(204472320)
        Arguments and temporary variables:
                editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (580@69)
                owner: a TransformWithLayoutMorph(782237696)
                submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (676069376) [other:  (announcer -> an
Announcer) (k...etc...
                model: a GLMRubricSmalltalkTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(743702528)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkScriptingMode
                cursor: a RubCursor(650379264)
                segments: an OrderedCollection(a RubHighlightSegmentMorph(60817408))
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                nextInQueue: [
textMorph textArea
        handleEdit: [
                textMorph textArea editor ...etc...
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #isRightToLeft
BlRowLayout(BlBoxLayout)>>initializeCells
BlRowLayout>>initializeCells
BlRowLayout(BlBoxLayout)>>adaptContentsToExtent
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlLayoutProperties>>hasFloating
14 July 2015 6:02:09.223608 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BlLayoutProperties(Object)>>doesNotUnderstand: #hasFloating
        Receiver: a BlLayoutProperties
        Arguments and temporary variables:
                aMessage: hasFloating
                exception: MessageNotUnderstood: BlLayoutProperties>>hasFloating
                resumeValue: nil
        Receiver's instance variables:
                positioning: #top
                resizing: #rigid
                anchors: nil
                extentRestriction: nil
                secondAxisProperties: a BlSecondAxisLayoutProperties


[ :origin :each |
| result |
result := origin
        +
                (each layoutProperties hasFloating
                        ifFalse: [ aBlock cull: origin cull: each ]
                        ifTrue: [ self float: each ]).
self align: each.
BrServiceLocator uniqueInstance layouter layoutDone: each -> aRectangle.
result ] in BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aBrick: a BlWellPanel
                aRectangle: (1@1) corner: (49@49)
                anInteger: (0@0)
                aBlock: [ :origin :each |
each privatePosition: (origin x + each marginLeft) @...etc...
                origin: (0@0)
                each: a BlDragWell
                result: nil
        Receiver's instance variables:
                layouting: true
                plugged: true


[ :each | nextValue := binaryBlock value: nextValue value: each ] in
Array(Collection)>>inject:into:
        Receiver: an Array(a BlDragWell)
        Arguments and temporary variables:
                thisValue: (0@0)
                binaryBlock: [ :origin :each |
| result |
result := origin
        +
                (each layoutPr...etc...
                nextValue: (0@0)
                each: a BlDragWell
        Receiver's instance variables:
an Array(a BlDragWell)

Array(SequenceableCollection)>>do:
        Receiver: an Array(a BlDragWell)
        Arguments and temporary variables:
                aBlock: [ :each | nextValue := binaryBlock value: nextValue value: each ]
                index: 1
        Receiver's instance variables:
an Array(a BlDragWell)

Array(Collection)>>inject:into:
        Receiver: an Array(a BlDragWell)
        Arguments and temporary variables:
                nextValue: (0@0)
                thisValue: (0@0)
                binaryBlock: [ :origin :each |
| result |
result := origin
        +
                (each layoutPr...etc...
        Receiver's instance variables:
an Array(a BlDragWell)

BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aBrick: a BlWellPanel
                aRectangle: (1@1) corner: (49@49)
                anInteger: (0@0)
                aBlock: [ :origin :each |
each privatePosition: (origin x + each marginLeft) @...etc...
        Receiver's instance variables:
                layouting: true
                plugged: true


BrHorizontalLinearLayout>>layout:in:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aBrick: a BlWellPanel
                newBounds: (1@1) corner: (49@49)
        Receiver's instance variables:
                layouting: true
                plugged: true


BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutComponents:
        Receiver: a BlBrickHeightTraverser
        Arguments and temporary variables:
                aView: a BlWellPanel
        Receiver's instance variables:
                isTraversing: nil


BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutAround:inContext:
        Receiver: a BlBrickHeightTraverser
        Arguments and temporary variables:
                aView: a BlWellPanel
                aContextView: nil
                shoudBeDamaged: true
        Receiver's instance variables:
                isTraversing: nil


BlBrickLayouter>>layout:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aMorph: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


BlBrickLayouter>>privateLayoutIn:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBrick: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


[
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] in [
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
                self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBrick: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


BlockClosure>>ensure:
        Receiver: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self priv...etc...
        Arguments and temporary variables:
                aBlock: [ layouting := false ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqu...etc...
                startpc: 83
                numArgs: 0


BlBrickLayouter>>privateForbidLayoutingWhile:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBlock: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick ->
aBric...etc...
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


[
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
                self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBrick: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


BlockClosure>>ensure:
        Receiver: [
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layout...etc...
        Arguments and temporary variables:
                aBlock: [
layouting
        ifFalse: [ BrServiceLocator uniqueInstance layouter retri...etc...
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: BlBrickLayouter>>layoutIn:
                startpc: 77
                numArgs: 0


BlBrickLayouter>>layoutIn:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBrick: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


[
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutIn: newBounds.
BrServiceLocator uniqueInstance layouter layoutIn: aView ] in
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aView: a BlWellPanel
                newBounds: (1@1) corner: (49@49)
        Receiver's instance variables:
                layouting: true
                plugged: true


BlockClosure>>ensure:
        Receiver: [
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutI...etc...
        Arguments and temporary variables:
                aBlock: [ layouting := false ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
                startpc: 52
                numArgs: 0


BrHorizontalLinearLayout(BlLayoutStrategy)>>privateForbidLayoutingWhile:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aBlock: [
"Compute the layout for the given morph based on the new bounds"
aVi...etc...
        Receiver's instance variables:
                layouting: true
                plugged: true


BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aView: a BlWellPanel
                newBounds: (1@1) corner: (49@49)
        Receiver's instance variables:
                layouting: true
                plugged: true


BlWellPanel(BlProtoView)>>doLayoutIn:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                newInnerBounds: (1@1) corner: (49@49)
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlProtoView)>>doLayout
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlViewBoundsCache>>updateBounds
        Receiver: a BlViewBoundsCache
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: nil
                extent: (50@50)
                dirty: true
                drawingBounds: nil
                innerBounds: nil
                updating: true
                viewReference: a WeakArray(a BlWellPanel)


BlViewBoundsCache>>upToDate
        Receiver: a BlViewBoundsCache
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: nil
                extent: (50@50)
                dirty: true
                drawingBounds: nil
                innerBounds: nil
                updating: true
                viewReference: a WeakArray(a BlWellPanel)


BlViewBoundsCache>>bounds
        Receiver: a BlViewBoundsCache
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: nil
                extent: (50@50)
                dirty: true
                drawingBounds: nil
                innerBounds: nil
                updating: true
                viewReference: a WeakArray(a BlWellPanel)


BlWellPanel(BlProtoView)>>bounds
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BrHorizontalLinearLayout(BrLinearLayout)>>layoutOf:changedFrom:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aView: a BlWellPanel
                aSubView: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                plugged: true


[ :ls | ls layoutOf: self changedFrom: aView ] in
BlWellPanel(BlProtoView)>>layoutChangedFrom:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aView: a BlWellPanel
                ls: a BrHorizontalLinearLayout
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlockClosure>>cull:
        Receiver: [ :ls | ls layoutOf: self changedFrom: aView ]
        Arguments and temporary variables:
                anArg: a BrHorizontalLinearLayout
        Receiver's instance variables:
                outerContext: BlWellPanel(BlProtoView)>>layoutChangedFrom:
                startpc: 27
                numArgs: 1


BlWellPanel(BlProtoView)>>layoutStrategyDo:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aBlock: [ :ls | ls layoutOf: self changedFrom: aView ]
                ls: a BrHorizontalLinearLayout
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlProtoView)>>layoutChangedFrom:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aView: a BlWellPanel
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlProtoView)>>layoutChanged
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlMorph)>>privateAddedMorph:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aMorph: a BlDragWell
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlMorph)>>privateAddMorph:atIndex:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aMorph: a BlDragWell
                index: 1
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlMorph)>>addMorphBack:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aMorph: a BlDragWell
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


[ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel: self;
                        yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                value: Color lightYellow
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


Array(SequenceableCollection)>>do:
        Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
        Arguments and temporary variables:
                aBlock: [ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel:...etc...
                index: 1
        Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...

BlWellPanel>>addDefaultWellsAndPlus
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...



--- The full stack ---
BlLayoutProperties(Object)>>doesNotUnderstand: #hasFloating
[ :origin :each |
| result |
result := origin
        +
                (each layoutProperties hasFloating
                        ifFalse: [ aBlock cull: origin cull: each ]
                        ifTrue: [ self float: each ]).
self align: each.
BrServiceLocator uniqueInstance layouter layoutDone: each -> aRectangle.
result ] in BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
[ :each | nextValue := binaryBlock value: nextValue value: each ] in
Array(Collection)>>inject:into:
Array(SequenceableCollection)>>do:
Array(Collection)>>inject:into:
BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
BrHorizontalLinearLayout>>layout:in:
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutComponents:
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutAround:inContext:
BlBrickLayouter>>layout:
BlBrickLayouter>>privateLayoutIn:
[
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] in [
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
                self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
BlockClosure>>ensure:
BlBrickLayouter>>privateForbidLayoutingWhile:
[
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
                self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
BlockClosure>>ensure:
BlBrickLayouter>>layoutIn:
[
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutIn: newBounds.
BrServiceLocator uniqueInstance layouter layoutIn: aView ] in
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
BlockClosure>>ensure:
BrHorizontalLinearLayout(BlLayoutStrategy)>>privateForbidLayoutingWhile:
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
BlWellPanel(BlProtoView)>>doLayoutIn:
BlWellPanel(BlProtoView)>>doLayout
BlViewBoundsCache>>updateBounds
BlViewBoundsCache>>upToDate
BlViewBoundsCache>>bounds
BlWellPanel(BlProtoView)>>bounds
BrHorizontalLinearLayout(BrLinearLayout)>>layoutOf:changedFrom:
[ :ls | ls layoutOf: self changedFrom: aView ] in
BlWellPanel(BlProtoView)>>layoutChangedFrom:
BlockClosure>>cull:
BlWellPanel(BlProtoView)>>layoutStrategyDo:
BlWellPanel(BlProtoView)>>layoutChangedFrom:
BlWellPanel(BlProtoView)>>layoutChanged
BlWellPanel(BlMorph)>>privateAddedMorph:
BlWellPanel(BlMorph)>>privateAddMorph:atIndex:
BlWellPanel(BlMorph)>>addMorphBack:
[ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel: self;
                        yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Array(SequenceableCollection)>>do:
BlWellPanel>>addDefaultWellsAndPlus
  - - - - - - - - - - - - - - -
                        - - - - - - - - - - - - - - - - - -
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BrHorizontalLinearLayout>>hFloating:
14 July 2015 6:03:24.473608 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BrHorizontalLinearLayout(Object)>>doesNotUnderstand: #hFloating:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aMessage: hFloating: false
                exception: MessageNotUnderstood: BrHorizontalLinearLayout>>hFloating:
                resumeValue: nil
        Receiver's instance variables:
                layouting: false
                plugged: true


BlWellPanel>>initialize
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BlLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: #()
                layoutStrategy: a BlDummyLayoutStrategy
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: nil


BlWellPanel class(Behavior)>>new
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


BlWellPanel class>>withSevenPaleColors
        Receiver: BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: BlMorph
                methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
                format: 172
                layout: a FixedLayout
                instanceVariables: #(#title #defaultValues)
                organization: a ClassOrganization
                subclasses: nil
                name: #BlWellPanel
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'Bloc-DragPanels'
                traitComposition: {}
                localSelectors: nil


UndefinedObject>>DoIt
        Receiver: nil
        Arguments and temporary variables:

        Receiver's instance variables:
nil

OpalCompiler>>evaluate
        Receiver: an OpalCompiler
        Arguments and temporary variables:
                value: nil
                selectedSource: a ReadStream
                itsSelection: a Text for ''
                itsSelectionString: ''
        Receiver's instance variables:
                ast: DoIt
        ^ BlWellPanel withSevenPaleColors openInWorld
                source: a ReadStream
                context: nil
                receiver: nil
                compilationContext: a CompilationContext
                compilationContextClass: nil
                useFaultyForParsing: false


RubSmalltalkEditor>>evaluate:andDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aStream: a ReadStream
                aBlock: [ :result | aBlock value: result ]
                result: nil
                rcvr: nil
                ctxt: nil
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


RubSmalltalkEditor>>highlightEvaluateAndDo:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aBlock: [ :result |  ]
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(204472320)
                selectorChooser: nil
                notificationStrategy: a GLMPopperNotificationStrategy


[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(204472320)
        Arguments and temporary variables:
                editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (580@69)
                owner: a TransformWithLayoutMorph(782237696)
                submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (676069376) [other:  (announcer -> an
Announcer) (k...etc...
                model: a GLMRubricSmalltalkTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(743702528)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkScriptingMode
                cursor: a RubCursor(650379264)
                segments: an OrderedCollection(a RubHighlightSegmentMorph(940834816))
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
        Receiver: a GLMMorphicPharoPlaygroundRenderer
        Arguments and temporary variables:
                ann: a GLMHighlightAndEvaluate
        Receiver's instance variables:
                renderer: a GLMMorphicRenderer
                textMorph: a RubScrolledTextMorph(654049280)
                textModel: a GLMRubricSmalltalkTextModel


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                nextInQueue: [
textMorph textArea
        handleEdit: [
                textMorph textArea editor ...etc...
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlHaloGlobalEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
BrHorizontalLinearLayout(Object)>>doesNotUnderstand: #hFloating:
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:01.907607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

OrderedCollection(Object)>>errorSubscriptBounds:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


OrderedCollection>>at:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                anInteger: 11
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
        Receiver: a RubPrimarySelectionMorph(653524992)
        Arguments and temporary variables:
                firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
                lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
                firstLineIndex: 10
                lastLineIndex: 8
                firstLine: a RubTextLine 264 to: 291
                lastLine: a RubTextLine 255 to: 262
                verts: an OrderedCollection()
                secondLine: nil
                thirdLine: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
        Receiver: a RubPrimarySelectionMorph(653524992)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
        Receiver: a RubPrimarySelectionMorph(653524992)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
        Receiver: a RubPrimarySelectionMorph(653524992)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
        Receiver: RubPrimarySelectionMorph
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                superclass: RubPlainSegmentMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #()
                organization: a ClassOrganization
                subclasses: nil
                name: #RubPrimarySelectionMorph
                classPool: a Dictionary()
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Rubric-Editing-Core'
                traitComposition: {}
                localSelectors: nil
                announcer: nil


RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [ self editingState markIndex: markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 261
                pointIndex: 262
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                markIndex: 261
                pointIndex: 262
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>zapSelectionWith:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aText: a Text for 'u'
                start: 261
                stop: 347
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>addString:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aString: 'u'
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>normalCharacter:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aKeyboardEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>dispatch:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aKeyboardEvent: BlKeystrokeEvent('u')
                return: [ :val | ^ val ]
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>keystroke:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aKeyboardEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


[
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
        ifFalse: [ super keystroke: aKeyboardEvent ].
self selectorChooserKeystroke: aKeyboardEvent ] in
RubSmalltalkEditor>>keystroke:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aKeyboardEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


NECController class>>codeCompletionAround:textMorph:keyStroke:
        Receiver: NECController
        Arguments and temporary variables:
                aBlock: [
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
        ifFalse: [ su...etc...
                aTextMorph: a RubEditingArea(556531712)
                evt: BlKeystrokeEvent('u')
                editor: a RubSmalltalkEditor
                stringHolder: a RubScrolledTextModel
                completionAllowed: true
                controller: a NECController
        Receiver's instance variables:
                superclass: Object
                methodDict: a
MethodDictionary(#additionals->NECController>>#additionals #captu...etc...
                format: 142
                layout: a FixedLayout
                instanceVariables: #('model' 'menuMorph' 'editor' 'context'
'inverseMapping' 'c...etc...
                organization: a ClassOrganization
                subclasses: {NECWorkspaceController. NOCController}
                name: #NECController
                classPool: a Dictionary()
                sharedPools: an OrderedCollection()
                environment: a SystemDictionary(lots of globals)
                category: #'NECompletion-View'
                traitComposition: {}
                localSelectors: nil
                uniqueInstance: a NECController


PharoCommonTools(ToolRegistry)>>codeCompletionAround:textMorph:keyStroke:
        Receiver: a PharoCommonTools
        Arguments and temporary variables:
                aBlock: [
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
        ifFalse: [ su...etc...
                aTextMorph: a RubEditingArea(556531712)
                evt: BlKeystrokeEvent('u')
        Receiver's instance variables:
                tools: an IdentityDictionary(#basicInspector->EyeInspector
#browser->Nautilus #...etc...
                recentTools: a Dictionary(#basicInspector->a Set(EyeInspector)
#browser->a Set(...etc...


RubSmalltalkEditor>>completionAround:keyStroke:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aBlock: [
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
        ifFalse: [ su...etc...
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor>>keystroke:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                aKeyboardEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


[ self editor keystroke: anEvent ] in
RubEditingArea(RubAbstractTextArea)>>keyStroke:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [ self editor keystroke: anEvent ]
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>keyStroke:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleKeystroke:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlKeystrokeEvent>>sentTo:
        Receiver: BlKeystrokeEvent('u')
        Arguments and temporary variables:
                anObject: a RubEditingArea(556531712)
        Receiver's instance variables:
                timeStamp: 16733739
                source: a BlHandMorph
                windowIndex: 0
                handler: nil
                wasHandled: false
                buttons: 0
                position: (72.0@162.0)
                keyValue: 117
                charCode: 117
                scanCode: 117


RubEditingArea(Morph)>>handleEvent:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(Morph)>>handleFocusEvent:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlSpaceEventListener>>sendFocusEvent:to:clear:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
                focusHolder: a RubEditingArea(556531712)
                aBlock: [ self keyboardFocus: nil ]
                w: a BlWorldMorph
                transformedEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a RubEditingArea(556531712)
                mouseFocus: nil
                lastMouseEvent: BlMouseMoveEvent((1486.0@1382.0) (1484@1384) 16732409 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlSpaceEventListener>>sendEvent:focus:clear:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
                focusHolder: a RubEditingArea(556531712)
                aBlock: [ self keyboardFocus: nil ]
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a RubEditingArea(556531712)
                mouseFocus: nil
                lastMouseEvent: BlMouseMoveEvent((1486.0@1382.0) (1484@1384) 16732409 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlSpaceEventListener>>sendEventToKeyboardFocus:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a RubEditingArea(556531712)
                mouseFocus: nil
                lastMouseEvent: BlMouseMoveEvent((1486.0@1382.0) (1484@1384) 16732409 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlSpaceEventListener>>keystroke:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a RubEditingArea(556531712)
                mouseFocus: nil
                lastMouseEvent: BlMouseMoveEvent((1486.0@1382.0) (1484@1384) 16732409 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>keystroke:
        Receiver: a BlMorphicCompatibilitySpaceEventListener
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                next: a BlSpaceEventListener


BlHaloGlobalEventListener(BlEventListener)>>keystroke:
        Receiver: a BlHaloGlobalEventListener
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
        Receiver's instance variables:
                next: a BlMorphicCompatibilitySpaceEventListener


BlKeystrokeEvent>>sentToNext:
        Receiver: BlKeystrokeEvent('u')
        Arguments and temporary variables:
                anObject: a BlHaloGlobalEventListener
        Receiver's instance variables:
                timeStamp: 16733739
                source: a BlHandMorph
                windowIndex: 0
                handler: nil
                wasHandled: false
                buttons: 0
                position: (1484.0@1384.0)
                keyValue: 117
                charCode: 117
                scanCode: 117


[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                anEvent: BlKeystrokeEvent('u')
                listener: a BlHaloGlobalEventListener
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a RubEditingArea(556531712)
                mouseFocus: nil
                lastMouseEvent: BlMouseMoveEvent((1486.0@1382.0) (1484@1384) 16732409 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false


BlockClosure>>cull:
        Receiver: [ :listener | anEvent sentToNext: listener ]
        Arguments and temporary variables:
                anArg: a BlHaloGlobalEventListener
        Receiver's instance variables:
                outerContext: BlSpaceEventListener>>handleEvent:
                startpc: 27
                numArgs: 1


[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
        Receiver: a BlSpaceEventListener
        Arguments and temporary variables:
                aBlock: [ :listener | anEvent sentToNext: listener ]
                el: a BlHaloGlobalEventListener
        Receiver's instance variables:
                started: true
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                keyboardFocus: a RubEditingArea(556531712)
                mouseFocus: nil
                lastMouseEvent: BlMouseMoveEvent((1486.0@1382.0) (1484@1384) 16732409 0)
                mouseOverHandler: a BlMouseOverHandler
                tickSubscribers: a WeakArray()
                startSlideOccured: false



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>zapSelectionWith:
RubSmalltalkEditor(RubTextEditor)>>addString:
RubSmalltalkEditor(RubTextEditor)>>normalCharacter:
RubSmalltalkEditor(RubTextEditor)>>dispatch:
RubSmalltalkEditor(RubTextEditor)>>keystroke:
[
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
        ifFalse: [ super keystroke: aKeyboardEvent ].
self selectorChooserKeystroke: aKeyboardEvent ] in
RubSmalltalkEditor>>keystroke:
NECController class>>codeCompletionAround:textMorph:keyStroke:
PharoCommonTools(ToolRegistry)>>codeCompletionAround:textMorph:keyStroke:
RubSmalltalkEditor>>completionAround:keyStroke:
RubSmalltalkEditor>>keystroke:
[ self editor keystroke: anEvent ] in
RubEditingArea(RubAbstractTextArea)>>keyStroke:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>keyStroke:
RubEditingArea(RubAbstractTextArea)>>handleKeystroke:
BlKeystrokeEvent>>sentTo:
RubEditingArea(Morph)>>handleEvent:
RubEditingArea(Morph)>>handleFocusEvent:
BlSpaceEventListener>>sendFocusEvent:to:clear:
BlSpaceEventListener>>sendEvent:focus:clear:
BlSpaceEventListener>>sendEventToKeyboardFocus:
BlSpaceEventListener>>keystroke:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>keystroke:
BlHaloGlobalEventListener(BlEventListener)>>keystroke:
BlKeystrokeEvent>>sentToNext:
[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
BlockClosure>>cull:
[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
  - - - - - - - - - - - - - - -
                        - - - - - - - - - - - - - - - - - -
BlockClosure>>cull:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
BlSpaceEventListener>>privateReinjectEvent:
BlSpaceEventListener>>handleEvent:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:01.941608 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

OrderedCollection(Object)>>errorSubscriptBounds:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


OrderedCollection>>at:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                anInteger: 11
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
        Receiver: a RubPrimarySelectionMorph(201064448)
        Arguments and temporary variables:
                firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
                lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
                firstLineIndex: 10
                lastLineIndex: 8
                firstLine: a RubTextLine 264 to: 291
                lastLine: a RubTextLine 255 to: 262
                verts: an OrderedCollection()
                secondLine: nil
                thirdLine: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
        Receiver: a RubPrimarySelectionMorph(201064448)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
        Receiver: a RubPrimarySelectionMorph(201064448)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
        Receiver: a RubPrimarySelectionMorph(201064448)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
        Receiver: RubPrimarySelectionMorph
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                superclass: RubPlainSegmentMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #()
                organization: a ClassOrganization
                subclasses: nil
                name: #RubPrimarySelectionMorph
                classPool: a Dictionary()
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Rubric-Editing-Core'
                traitComposition: {}
                localSelectors: nil
                announcer: nil


RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [ self editingState markIndex: markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 292
                pointIndex: 261
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>recomputeSelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: nil
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubShoutStylerDecorator>>stylerStyled:
        Receiver: a RubShoutStylerDecorator
        Arguments and temporary variables:
                styledCopyOfText: a Text for 'initialize
        super initialize.
        self withRectangle...etc...
        Receiver's instance variables:
                next: a RubCurrentLineBarDecorator
                canvas: an AthensCairoCanvas
                displayScanner: nil
                position: (0@0)
                styler: a RubSHTextStylerST80
                shoutIsAvailable: true
                text: a Text for 'initialize
        super initialize.
        self withRectangleViewDo: [ :v...etc...
                replaceStart: 261
                replaceStop: 346


RubShoutStylerDecorator>>stylerStyledInBackground:
        Receiver: a RubShoutStylerDecorator
        Arguments and temporary variables:
                styledCopyOfText: a Text for 'initialize
        super initialize.
        self withRectangle...etc...
        Receiver's instance variables:
                next: a RubCurrentLineBarDecorator
                canvas: an AthensCairoCanvas
                displayScanner: nil
                position: (0@0)
                styler: a RubSHTextStylerST80
                shoutIsAvailable: true
                text: a Text for 'initialize
        super initialize.
        self withRectangleViewDo: [ :v...etc...
                replaceStart: 261
                replaceStop: 346


[ view ifNotNil: [ view stylerStyledInBackground: text ] ] in [
sem notNil
        ifTrue: [
                sem
                        waitTimeoutSeconds: 5
                        onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
                        onTimeout: [
                                "do nothing if the styling has not finished or the process turned
into a zombie."
                                 ] ] ] in [
sem := Semaphore new.
[
sem notNil
        ifTrue: [
                sem
                        waitTimeoutSeconds: 5
                        onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
                        onTimeout: [
                                "do nothing if the styling has not finished or the process turned
into a zombie."
                                 ] ] ] forkAt: Processor activePriority.
backgroundProcess := [
self privateStyle: text.
sem signal ] forkAt: Processor userBackgroundPriority ] in
RubSHTextStylerST80(SHTextStyler)>>styleInBackgroundProcess:
        Receiver: a RubSHTextStylerST80
        Arguments and temporary variables:
                aText: a Text for 'initialize
        super initialize.
        self withRectangleViewDo: [ :...etc...
        Receiver's instance variables:
                sem: a Semaphore()
                backgroundProcess: a Process in [
self privateStyle: text.
sem signal ] in [
...etc...
                text: a Text for 'initialize
        super initialize.
        self withRectangleViewDo: [ :v...etc...
                monitor: a Monitor
                view: a RubShoutStylerDecorator
                stylingEnabled: true
                classOrMetaClass: BlWellPanel
                workspace: nil
                font: nil
                parser: a SHParserST80
                environment: nil
                pixelHeight: 13.333333333333334


DelayWaitTimeout>>waitOnCompletion:onTimeout:
        Receiver: a DelayWaitTimeout(5000 msecs)
        Arguments and temporary variables:
                completionBlock: [ view ifNotNil: [ view stylerStyledInBackground:
text ] ]
                timeoutBlock: [
"do nothing if the styling has not finished or the process tur...etc...
        Receiver's instance variables:
                delaySemaphore: a Semaphore()
                beingWaitedOn: false
                millisecondDelayDuration: 5000
                scheduler: a DelayMicrosecondScheduler
                schedulerResumptionTime: 3614342706895607
                process: a Process in nil
                expired: false


Semaphore>>waitTimeoutSeconds:onCompletion:onTimeout:
        Receiver: a Semaphore()
        Arguments and temporary variables:
                anInteger: 5
                completionBlock: [ view ifNotNil: [ view stylerStyledInBackground:
text ] ]
                timeoutBlock: [
"do nothing if the styling has not finished or the process tur...etc...
                d: a DelayWaitTimeout(5000 msecs)
        Receiver's instance variables:
                firstLink: nil
                lastLink: nil
                excessSignals: 0


[
sem notNil
        ifTrue: [
                sem
                        waitTimeoutSeconds: 5
                        onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
                        onTimeout: [
                                "do nothing if the styling has not finished or the process turned
into a zombie."
                                 ] ] ] in [
sem := Semaphore new.
[
sem notNil
        ifTrue: [
                sem
                        waitTimeoutSeconds: 5
                        onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
                        onTimeout: [
                                "do nothing if the styling has not finished or the process turned
into a zombie."
                                 ] ] ] forkAt: Processor activePriority.
backgroundProcess := [
self privateStyle: text.
sem signal ] forkAt: Processor userBackgroundPriority ] in
RubSHTextStylerST80(SHTextStyler)>>styleInBackgroundProcess:
        Receiver: a RubSHTextStylerST80
        Arguments and temporary variables:
                aText: a Text for 'initialize
        super initialize.
        self withRectangleViewDo: [ :...etc...
        Receiver's instance variables:
                sem: a Semaphore()
                backgroundProcess: a Process in [
self privateStyle: text.
sem signal ] in [
...etc...
                text: a Text for 'initialize
        super initialize.
        self withRectangleViewDo: [ :v...etc...
                monitor: a Monitor
                view: a RubShoutStylerDecorator
                stylingEnabled: true
                classOrMetaClass: BlWellPanel
                workspace: nil
                font: nil
                parser: a SHParserST80
                environment: nil
                pixelHeight: 13.333333333333334


[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
sem notNil
        ifTrue: [
                sem
                        waitTimeoutSeconds: 5
                        onCompletion: [ view ifNotNil:...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: [
sem := Semaphore new.
[
sem notNil
        ifTrue: [
                sem
                        waitT...etc...
                startpc: 108
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubEditingArea(RubAbstractTextArea)>>recomputeSelection
RubShoutStylerDecorator>>stylerStyled:
RubShoutStylerDecorator>>stylerStyledInBackground:
[ view ifNotNil: [ view stylerStyledInBackground: text ] ] in [
sem notNil
        ifTrue: [
                sem
                        waitTimeoutSeconds: 5
                        onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
                        onTimeout: [
                                "do nothing if the styling has not finished or the process turned
into a zombie."
                                 ] ] ] in [
sem := Semaphore new.
[
sem notNil
        ifTrue: [
                sem
                        waitTimeoutSeconds: 5
                        onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
                        onTimeout: [
                                "do nothing if the styling has not finished or the process turned
into a zombie."
                                 ] ] ] forkAt: Processor activePriority.
backgroundProcess := [
self privateStyle: text.
sem signal ] forkAt: Processor userBackgroundPriority ] in
RubSHTextStylerST80(SHTextStyler)>>styleInBackgroundProcess:
DelayWaitTimeout>>waitOnCompletion:onTimeout:
Semaphore>>waitTimeoutSeconds:onCompletion:onTimeout:
[
sem notNil
        ifTrue: [
                sem
                        waitTimeoutSeconds: 5
                        onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
                        onTimeout: [
                                "do nothing if the styling has not finished or the process turned
into a zombie."
                                 ] ] ] in [
sem := Semaphore new.
[
sem notNil
        ifTrue: [
                sem
                        waitTimeoutSeconds: 5
                        onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
                        onTimeout: [
                                "do nothing if the styling has not finished or the process turned
into a zombie."
                                 ] ] ] forkAt: Processor activePriority.
backgroundProcess := [
self privateStyle: text.
sem signal ] forkAt: Processor userBackgroundPriority ] in
RubSHTextStylerST80(SHTextStyler)>>styleInBackgroundProcess:
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:09.767607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

OrderedCollection(Object)>>errorSubscriptBounds:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


OrderedCollection>>at:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                anInteger: 11
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
        Receiver: a RubPrimarySelectionMorph(947388416)
        Arguments and temporary variables:
                firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
                lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
                firstLineIndex: 10
                lastLineIndex: 8
                firstLine: a RubTextLine 264 to: 291
                lastLine: a RubTextLine 255 to: 262
                verts: an OrderedCollection()
                secondLine: nil
                thirdLine: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
        Receiver: a RubPrimarySelectionMorph(947388416)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
        Receiver: a RubPrimarySelectionMorph(947388416)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
        Receiver: a RubPrimarySelectionMorph(947388416)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
        Receiver: RubPrimarySelectionMorph
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                superclass: RubPlainSegmentMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #()
                organization: a ClassOrganization
                subclasses: nil
                name: #RubPrimarySelectionMorph
                classPool: a Dictionary()
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Rubric-Editing-Core'
                traitComposition: {}
                localSelectors: nil
                announcer: nil


RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [ self editingState markBlock: markCharacterBlock pointBlock:
pointChar...etc...
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markBlock:pointBlock:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markCharacterBlock: a CharacterBlock with index 262 and surface
(76.80001831054...etc...
                pointCharacterBlock: a CharacterBlock with index 262 and surface
(76.8000183105...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>click:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                event: BlMouseDownEvent((102@150) red 16741489 0)
                p: a CharacterBlock with index 262 and surface
(76.80001831054688@139) corner: ...etc...
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor>>click:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                anEvent: BlMouseDownEvent((102@150) red 16741489 0)
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


[
self editor click: anEvent.
self scrollSelectionIntoView: nil ] in
RubEditingArea(RubAbstractTextArea)>>click:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                anEvent: BlMouseDownEvent((102@150) red 16741489 0)
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self editor click: anEvent.
self scrollSelectionIntoView: nil ]
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>click:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                anEvent: BlMouseDownEvent((102@150) red 16741489 0)
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


MouseClickState>>click
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:

        Receiver's instance variables:
                clickClient: a RubEditingArea(556531712)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((102@150) red 16741489 0)
                firstClickUp: BlMouseUpEvent((1514@1372) 16741617 0)
                firstClickTime: 16741489
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: nil
                dragSelector: nil
                dragThreshold: 5


MouseClickState>>handleEvent:from:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((1514@1372) 16741617 0)
                aHand: a BlHandMorph
                localEvt: BlMouseUpEvent((102@150) 16741617 0)
                timedOut: false
                isDrag: false
        Receiver's instance variables:
                clickClient: a RubEditingArea(556531712)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((102@150) red 16741489 0)
                firstClickUp: BlMouseUpEvent((1514@1372) 16741617 0)
                firstClickTime: 16741489
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: nil
                dragSelector: nil
                dragThreshold: 5


MouseClickState>>handleEvent:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((1514@1372) 16741617 0)
        Receiver's instance variables:
                clickClient: a RubEditingArea(556531712)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((102@150) red 16741489 0)
                firstClickUp: BlMouseUpEvent((1514@1372) 16741617 0)
                firstClickTime: 16741489
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: nil
                dragSelector: nil
                dragThreshold: 5


BlMorphicDoubleClickOrDragEventListener>>handleEvent:
        Receiver: a BlMorphicDoubleClickOrDragEventListener
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((1514@1372) 16741617 0)
        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                state: a MouseClickState[#firstClickUp]


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((1514@1372) 16741617 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                event: BlMouseUpEvent((1514@1372) 16741617 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlVMEventFetcher>>fetchedEventDo:
        Receiver: a BlVMEventFetcher
        Arguments and temporary variables:
                aBlock: [ :event | self handleEvent: event ]
                evtBuf: #(1 16741617 1514 1372 0 0 0 1)
                evt: BlMouseUpEvent((1514@1372) 16741617 0)
                type: 1
        Receiver's instance variables:
                space: a BlMorphicCompatibleBlocSpace [Bloc-1]
                sensor: an InputEventSensor
                lastEventBuffer: #(1 16741617 1514 1372 0 0 0 1)
                lastKeyScanCode: 101
                combinedChar: nil
                recentModifiers: 0


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:

        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markBlock:pointBlock:
RubSmalltalkEditor(RubTextEditor)>>click:
RubSmalltalkEditor>>click:
[
self editor click: anEvent.
self scrollSelectionIntoView: nil ] in
RubEditingArea(RubAbstractTextArea)>>click:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:15.405607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

OrderedCollection(Object)>>errorSubscriptBounds:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


OrderedCollection>>at:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                anInteger: 11
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
        Receiver: a RubPrimarySelectionMorph(7077888)
        Arguments and temporary variables:
                firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
                lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
                firstLineIndex: 10
                lastLineIndex: 8
                firstLine: a RubTextLine 264 to: 291
                lastLine: a RubTextLine 255 to: 262
                verts: an OrderedCollection()
                secondLine: nil
                thirdLine: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
        Receiver: a RubPrimarySelectionMorph(7077888)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
        Receiver: a RubPrimarySelectionMorph(7077888)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
        Receiver: a RubPrimarySelectionMorph(7077888)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
        Receiver: RubPrimarySelectionMorph
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                superclass: RubPlainSegmentMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #()
                organization: a ClassOrganization
                subclasses: nil
                name: #RubPrimarySelectionMorph
                classPool: a Dictionary()
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Rubric-Editing-Core'
                traitComposition: {}
                localSelectors: nil
                announcer: nil


RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [ self editingState markBlock: markCharacterBlock pointBlock:
pointChar...etc...
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markBlock:pointBlock:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markCharacterBlock: a CharacterBlock with index 262 and surface
(76.80001831054...etc...
                pointCharacterBlock: a CharacterBlock with index 262 and surface
(76.8000183105...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>click:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                event: BlMouseDownEvent((92@149) red 16747129 0)
                p: a CharacterBlock with index 262 and surface
(76.80001831054688@139) corner: ...etc...
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor>>click:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                anEvent: BlMouseDownEvent((92@149) red 16747129 0)
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


[
self editor click: anEvent.
self scrollSelectionIntoView: nil ] in
RubEditingArea(RubAbstractTextArea)>>click:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                anEvent: BlMouseDownEvent((92@149) red 16747129 0)
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self editor click: anEvent.
self scrollSelectionIntoView: nil ]
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>click:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                anEvent: BlMouseDownEvent((92@149) red 16747129 0)
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


MouseClickState>>click
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:

        Receiver's instance variables:
                clickClient: a RubEditingArea(556531712)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((92@149) red 16747129 0)
                firstClickUp: BlMouseUpEvent((1504@1371) 16747257 0)
                firstClickTime: 16747129
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: nil
                dragSelector: nil
                dragThreshold: 5


MouseClickState>>handleEvent:from:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((1504@1371) 16747257 0)
                aHand: a BlHandMorph
                localEvt: BlMouseUpEvent((92@149) 16747257 0)
                timedOut: false
                isDrag: false
        Receiver's instance variables:
                clickClient: a RubEditingArea(556531712)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((92@149) red 16747129 0)
                firstClickUp: BlMouseUpEvent((1504@1371) 16747257 0)
                firstClickTime: 16747129
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: nil
                dragSelector: nil
                dragThreshold: 5


MouseClickState>>handleEvent:
        Receiver: a MouseClickState[#firstClickUp]
        Arguments and temporary variables:
                evt: BlMouseUpEvent((1504@1371) 16747257 0)
        Receiver's instance variables:
                clickClient: a RubEditingArea(556531712)
                clickState: #firstClickUp
                firstClickDown: BlMouseDownEvent((92@149) red 16747129 0)
                firstClickUp: BlMouseUpEvent((1504@1371) 16747257 0)
                firstClickTime: 16747129
                clickSelector: #click:
                dblClickSelector: #doubleClick:
                dblClickTime: 500
                dblClickTimeoutSelector: nil
                dragSelector: nil
                dragThreshold: 5


BlMorphicDoubleClickOrDragEventListener>>handleEvent:
        Receiver: a BlMorphicDoubleClickOrDragEventListener
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((1504@1371) 16747257 0)
        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                state: a MouseClickState[#firstClickUp]


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlMouseUpEvent((1504@1371) 16747257 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                event: BlMouseUpEvent((1504@1371) 16747257 0)
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlVMEventFetcher>>fetchedEventDo:
        Receiver: a BlVMEventFetcher
        Arguments and temporary variables:
                aBlock: [ :event | self handleEvent: event ]
                evtBuf: #(1 16747257 1504 1371 0 0 0 1)
                evt: BlMouseUpEvent((1504@1371) 16747257 0)
                type: 1
        Receiver's instance variables:
                space: a BlMorphicCompatibleBlocSpace [Bloc-1]
                sensor: an InputEventSensor
                lastEventBuffer: #(1 16747257 1504 1371 0 0 0 1)
                lastKeyScanCode: 101
                combinedChar: nil
                recentModifiers: 0


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:

        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: a BlTickEvent
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicDoubleClickOrDragEventListener
                deferredActions: WaitfreeQueue with 0 items


WeakMessageSend>>value:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                anObject: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg: a BlTickEvent
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


WeakMessageSend>>cull:cull:
        Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
        Arguments and temporary variables:
                arg1: a BlTickEvent
                arg2: an Announcer
        Receiver's instance variables:
                selector: #handlePrimaryTickEvent:
                shouldBeNil: #()
                arguments: a WeakArray()


[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
        Receiver: a WeakAnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a BlTickEvent
        Receiver's instance variables:
                list: a WeakFinalizationList
                next: nil
                announcer: an Announcer
                announcementClass: BlTickEvent
                action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: WeakAnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markBlock:pointBlock:
RubSmalltalkEditor(RubTextEditor)>>click:
RubSmalltalkEditor>>click:
[
self editor click: anEvent.
self scrollSelectionIntoView: nil ] in
RubEditingArea(RubAbstractTextArea)>>click:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:21.007607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

OrderedCollection(Object)>>errorSubscriptBounds:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


OrderedCollection>>at:
        Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
        Arguments and temporary variables:
                anInteger: 11
                index: 11
        Receiver's instance variables:
                array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
                firstIndex: 1
                lastIndex: 10


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
        Receiver: a RubPrimarySelectionMorph(501481472)
        Arguments and temporary variables:
                firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
                lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
                firstLineIndex: 10
                lastLineIndex: 8
                firstLine: a RubTextLine 264 to: 291
                lastLine: a RubTextLine 255 to: 262
                verts: an OrderedCollection()
                secondLine: nil
                thirdLine: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
        Receiver: a RubPrimarySelectionMorph(501481472)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
        Receiver: a RubPrimarySelectionMorph(501481472)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
        Receiver: a RubPrimarySelectionMorph(501481472)
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                bounds: (0@0) corner: (20@20)
                owner: nil
                submorphs: #()
                fullBounds: (0@0) corner: (20@20)
                color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
                extension: nil
                vertices: {(5@0). (20@10). (0@20)}
                filledForm: nil
                smoothCurve: false
                curveState: nil
                borderForm: nil
                borderColor: nil
                borderWidth: nil
                textArea: a RubEditingArea(556531712)
                firstIndex: 292
                lastIndex: 261
                icon: nil
                iconBlock: nil
                label: nil
                changeable: false


RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
        Receiver: RubPrimarySelectionMorph
        Arguments and temporary variables:
                aTextArea: a RubEditingArea(556531712)
                aFirstCharIndex: 292
                aLastCharIndex: 261
        Receiver's instance variables:
                superclass: RubPlainSegmentMorph
                methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
                format: 170
                layout: a FixedLayout
                instanceVariables: #()
                organization: a ClassOrganization
                subclasses: nil
                name: #RubPrimarySelectionMorph
                classPool: a Dictionary()
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Rubric-Editing-Core'
                traitComposition: {}
                localSelectors: nil
                announcer: nil


RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [ self editingState markIndex: markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectAll
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubEditingArea(RubAbstractTextArea)>>selectAll
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'initialize
        super initialize.
        self withRectangleVie...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlockClosure>>ensure:
        Receiver: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelection...etc...
        Arguments and temporary variables:
                aBlock: [ self readOnly: wasEditable ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFal...etc...
                startpc: 57
                numArgs: 0


RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self edit...etc...
                wasEditable: false
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'initialize
        super initialize.
        self withRectangleVie...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse:...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'initialize
        super initialize.
        self withRectangleVie...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubTextScrollPane>>updateTextWith:
        Receiver: a RubTextScrollPane(200540160)
        Arguments and temporary variables:
                stringOrText: a Text for 'initialize
        super initialize.
        self withRectangleView...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1478.0)
                owner: a RubScrolledTextMorph(110886912)
                submorphs: an Array(a TransformWithLayoutMorph(220987392))
                fullBounds: (1412@1222) corner: (2252@1478)
                color: Color transparent
                extension: a MorphExtension (855900160) [other:  (announcer -> an
Announcer) (k...etc...
                scroller: a TransformWithLayoutMorph(220987392)
                hScrollbar: a RubScrollBar(286261248)
                vScrollbar: a RubScrollBar(915668992)
                drawFocusBorder: true


RubScrolledTextMorph>>updateTextWith:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                stringOrText: a Text for 'initialize
        super initialize.
        self withRectangleView...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


RubScrolledTextMorph>>cancel
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


RubScrolledTextMorph>>whenCanceEditRequestedInModel:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                anAnnoucement: a RubCanceEditRequestedInModel
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


MessageSend>>value:
        Receiver: MessageSend(#whenCanceEditRequestedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                anObject: a RubCanceEditRequestedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenCanceEditRequestedInModel:
                arguments: #()


MessageSend>>cull:
        Receiver: MessageSend(#whenCanceEditRequestedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg: a RubCanceEditRequestedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenCanceEditRequestedInModel:
                arguments: #()


MessageSend>>cull:cull:
        Receiver: MessageSend(#whenCanceEditRequestedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg1: a RubCanceEditRequestedInModel
                arg2: an Announcer
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenCanceEditRequestedInModel:
                arguments: #()


[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
        Receiver: an AnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a RubCanceEditRequestedInModel
        Receiver's instance variables:
                announcer: an Announcer
                announcementClass: RubCanceEditRequestedInModel
                subscriber: a RubScrolledTextMorph(110886912)
                action: MessageSend(#whenCanceEditRequestedInModel: -> a
RubScrolledTextMorph(1...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>cancel
RubScrolledTextMorph>>whenCanceEditRequestedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

thLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [ self editingState markIndex: markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectAll
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubEditingArea(RubAbstractTextArea)>>selectAll
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'initialize
        super initialize.
        self withRectangleVie...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlockClosure>>ensure:
        Receiver: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelection...etc...
        Arguments and temporary variables:
                aBlock: [ self readOnly: wasEditable ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFal...etc...
                startpc: 57
                numArgs: 0


RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self edit...etc...
                wasEditable: false
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'initialize
        super initialize.
        self withRectangleVie...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse:...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'initialize
        super initialize.
        self withRectangleVie...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubTextScrollPane>>updateTextWith:
        Receiver: a RubTextScrollPane(200540160)
        Arguments and temporary variables:
                stringOrText: a Text for 'initialize
        super initialize.
        self withRectangleView...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1478.0)
                owner: a RubScrolledTextMorph(110886912)
                submorphs: an Array(a TransformWithLayoutMorph(220987392))
                fullBounds: (1412@1222) corner: (2252@1478)
                color: Color transparent
                extension: a MorphExtension (855900160) [other:  (announcer -> an
Announcer) (k...etc...
                scroller: a TransformWithLayoutMorph(220987392)
                hScrollbar: a RubScrollBar(286261248)
                vScrollbar: a RubScrollBar(915668992)
                drawFocusBorder: true


RubScrolledTextMorph>>updateTextWith:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                stringOrText: a Text for 'initialize
        super initialize.
        self withRectangleView...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


RubScrolledTextMorph>>whenTextUpdatedInModel:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


MessageSend>>value:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                anObject: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg1: a RubTextUpdatedInModel
                arg2: an Announcer
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
        Receiver: an AnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                announcer: an Announcer
                announcementClass: RubTextUpdatedInModel
                subscriber: a RubScrolledTextMorph(110886912)
                action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

dex: markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectAll
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubEditingArea(RubAbstractTextArea)>>selectAll
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlockClosure>>ensure:
        Receiver: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelection...etc...
        Arguments and temporary variables:
                aBlock: [ self readOnly: wasEditable ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFal...etc...
                startpc: 57
                numArgs: 0


RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self edit...etc...
                wasEditable: false
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse:...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubTextScrollPane>>updateTextWith:
        Receiver: a RubTextScrollPane(200540160)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1478.0)
                owner: a RubScrolledTextMorph(110886912)
                submorphs: an Array(a TransformWithLayoutMorph(220987392))
                fullBounds: (1412@1222) corner: (2252@1478)
                color: Color transparent
                extension: a MorphExtension (855900160) [other:  (announcer -> an
Announcer) (k...etc...
                scroller: a TransformWithLayoutMorph(220987392)
                hScrollbar: a RubScrollBar(286261248)
                vScrollbar: a RubScrollBar(915668992)
                drawFocusBorder: true


RubScrolledTextMorph>>updateTextWith:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


RubScrolledTextMorph>>whenTextUpdatedInModel:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


MessageSend>>value:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                anObject: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg1: a RubTextUpdatedInModel
                arg2: an Announcer
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
        Receiver: an AnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                announcer: an Announcer
                announcementClass: RubTextUpdatedInModel
                subscriber: a RubScrolledTextMorph(110886912)
                action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

  markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectAll
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubEditingArea(RubAbstractTextArea)>>selectAll
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlockClosure>>ensure:
        Receiver: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelection...etc...
        Arguments and temporary variables:
                aBlock: [ self readOnly: wasEditable ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFal...etc...
                startpc: 57
                numArgs: 0


RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self edit...etc...
                wasEditable: false
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse:...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubTextScrollPane>>updateTextWith:
        Receiver: a RubTextScrollPane(200540160)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1478.0)
                owner: a RubScrolledTextMorph(110886912)
                submorphs: an Array(a TransformWithLayoutMorph(220987392))
                fullBounds: (1412@1222) corner: (2252@1478)
                color: Color transparent
                extension: a MorphExtension (855900160) [other:  (announcer -> an
Announcer) (k...etc...
                scroller: a TransformWithLayoutMorph(220987392)
                hScrollbar: a RubScrollBar(286261248)
                vScrollbar: a RubScrollBar(915668992)
                drawFocusBorder: true


RubScrolledTextMorph>>updateTextWith:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


RubScrolledTextMorph>>whenTextUpdatedInModel:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


MessageSend>>value:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                anObject: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg1: a RubTextUpdatedInModel
                arg2: an Announcer
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
        Receiver: an AnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                announcer: an Announcer
                announcementClass: RubTextUpdatedInModel
                subscriber: a RubScrolledTextMorph(110886912)
                action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

rkIndex: markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectAll
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubEditingArea(RubAbstractTextArea)>>selectAll
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlockClosure>>ensure:
        Receiver: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelection...etc...
        Arguments and temporary variables:
                aBlock: [ self readOnly: wasEditable ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFal...etc...
                startpc: 57
                numArgs: 0


RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self edit...etc...
                wasEditable: false
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse:...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubTextScrollPane>>updateTextWith:
        Receiver: a RubTextScrollPane(200540160)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1478.0)
                owner: a RubScrolledTextMorph(110886912)
                submorphs: an Array(a TransformWithLayoutMorph(220987392))
                fullBounds: (1412@1222) corner: (2252@1478)
                color: Color transparent
                extension: a MorphExtension (855900160) [other:  (announcer -> an
Announcer) (k...etc...
                scroller: a TransformWithLayoutMorph(220987392)
                hScrollbar: a RubScrollBar(286261248)
                vScrollbar: a RubScrollBar(915668992)
                drawFocusBorder: true


RubScrolledTextMorph>>updateTextWith:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


RubScrolledTextMorph>>whenTextUpdatedInModel:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


MessageSend>>value:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                anObject: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg1: a RubTextUpdatedInModel
                arg2: an Announcer
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
        Receiver: an AnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                announcer: an Announcer
                announcementClass: RubTextUpdatedInModel
                subscriber: a RubScrolledTextMorph(110886912)
                action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

dex: markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectAll
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubEditingArea(RubAbstractTextArea)>>selectAll
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlockClosure>>ensure:
        Receiver: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelection...etc...
        Arguments and temporary variables:
                aBlock: [ self readOnly: wasEditable ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFal...etc...
                startpc: 57
                numArgs: 0


RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self edit...etc...
                wasEditable: false
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse:...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubTextScrollPane>>updateTextWith:
        Receiver: a RubTextScrollPane(200540160)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1478.0)
                owner: a RubScrolledTextMorph(110886912)
                submorphs: an Array(a TransformWithLayoutMorph(220987392))
                fullBounds: (1412@1222) corner: (2252@1478)
                color: Color transparent
                extension: a MorphExtension (855900160) [other:  (announcer -> an
Announcer) (k...etc...
                scroller: a TransformWithLayoutMorph(220987392)
                hScrollbar: a RubScrollBar(286261248)
                vScrollbar: a RubScrollBar(915668992)
                drawFocusBorder: true


RubScrolledTextMorph>>updateTextWith:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


RubScrolledTextMorph>>whenTextUpdatedInModel:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


MessageSend>>value:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                anObject: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg1: a RubTextUpdatedInModel
                arg2: an Announcer
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
        Receiver: an AnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                announcer: an Announcer
                announcementClass: RubTextUpdatedInModel
                subscriber: a RubScrolledTextMorph(110886912)
                action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

dex: markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectAll
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubEditingArea(RubAbstractTextArea)>>selectAll
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlockClosure>>ensure:
        Receiver: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelection...etc...
        Arguments and temporary variables:
                aBlock: [ self readOnly: wasEditable ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFal...etc...
                startpc: 57
                numArgs: 0


RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self edit...etc...
                wasEditable: false
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse:...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableName...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubTextScrollPane>>updateTextWith:
        Receiver: a RubTextScrollPane(200540160)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1478.0)
                owner: a RubScrolledTextMorph(110886912)
                submorphs: an Array(a TransformWithLayoutMorph(220987392))
                fullBounds: (1412@1222) corner: (2252@1478)
                color: Color transparent
                extension: a MorphExtension (855900160) [other:  (announcer -> an
Announcer) (k...etc...
                scroller: a TransformWithLayoutMorph(220987392)
                hScrollbar: a RubScrollBar(286261248)
                vScrollbar: a RubScrollBar(915668992)
                drawFocusBorder: true


RubScrolledTextMorph>>updateTextWith:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
        instanceVariableNames...etc...
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


RubScrolledTextMorph>>whenTextUpdatedInModel:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


MessageSend>>value:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                anObject: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg1: a RubTextUpdatedInModel
                arg2: an Announcer
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
        Receiver: an AnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                announcer: an Announcer
                announcementClass: RubTextUpdatedInModel
                subscriber: a RubScrolledTextMorph(110886912)
                action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

dex: markIndex pointIndex: pointIndex ]
                prevMarkBlock: nil
                prevPointBlock: nil
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                markIndex: 1
                pointIndex: 292
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:
                start: 1
                stop: 291
        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubSmalltalkEditor(RubTextEditor)>>selectAll
        Receiver: a RubSmalltalkEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
                textArea: a RubEditingArea(556531712)
                selectorChooser: nil
                notificationStrategy: a RubTextInsertionStrategy


RubEditingArea(RubAbstractTextArea)>>selectAll
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'defaultExtent
        ^ 98 @ 60'
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


BlockClosure>>ensure:
        Receiver: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelection...etc...
        Arguments and temporary variables:
                aBlock: [ self readOnly: wasEditable ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFal...etc...
                startpc: 57
                numArgs: 0


RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aBlock: [
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self edit...etc...
                wasEditable: false
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'defaultExtent
        ^ 98 @ 60'
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>handleEdit:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                editBlock: [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse:...etc...
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubEditingArea(RubAbstractTextArea)>>updateTextWith:
        Receiver: a RubEditingArea(556531712)
        Arguments and temporary variables:
                aStringOrText: a Text for 'defaultExtent
        ^ 98 @ 60'
        Receiver's instance variables:
                bounds: (0@0) corner: (840@202)
                owner: a TransformWithLayoutMorph(220987392)
                submorphs: an Array(a RubCursor(70254592))
                fullBounds: (0@0) corner: (840@202)
                color: Color transparent
                extension: a MorphExtension (1073217536) [other:  (announcer -> an
Announcer) (...etc...
                model: a RubScrolledTextModel
                paragraph: a RubShoutStylerDecorator
                editor: a RubSmalltalkEditor
                scrollPane: a RubTextScrollPane(200540160)
                editingState: a RubEditingState
                textStyle: a TextStyle Source Code Pro
                textColor: Color black
                margins: (6@6) corner: (6@6)
                readOnly: false
                menuAllowed: nil
                editingMode: a RubSmalltalkCodeMode
                cursor: a RubCursor(70254592)
                segments: an OrderedCollection()
                getMenuPolicy: nil
                wrapped: true
                editorClass: RubSmalltalkEditor


RubTextScrollPane>>updateTextWith:
        Receiver: a RubTextScrollPane(200540160)
        Arguments and temporary variables:
                stringOrText: a Text for 'defaultExtent
        ^ 98 @ 60'
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1478.0)
                owner: a RubScrolledTextMorph(110886912)
                submorphs: an Array(a TransformWithLayoutMorph(220987392))
                fullBounds: (1412@1222) corner: (2252@1478)
                color: Color transparent
                extension: a MorphExtension (855900160) [other:  (announcer -> an
Announcer) (k...etc...
                scroller: a TransformWithLayoutMorph(220987392)
                hScrollbar: a RubScrollBar(286261248)
                vScrollbar: a RubScrollBar(915668992)
                drawFocusBorder: true


RubScrolledTextMorph>>updateTextWith:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                stringOrText: a Text for 'defaultExtent
        ^ 98 @ 60'
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


RubScrolledTextMorph>>whenTextUpdatedInModel:
        Receiver: a RubScrolledTextMorph(110886912)
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                bounds: (1412.0@1222.0) corner: (2252.0@1499.0)
                owner: a PanelMorph(893386752)
                submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
                fullBounds: (1412@1222) corner: (2252@1499)
                color: Color white
                extension: a MorphExtension (184549376) [other:  (announcer -> an
Announcer) (k...etc...
                hasEditingConflicts: false
                hasUnacceptedEdits: false
                alwaysAccept: nil
                setTextSelector: #setText:from:
                getTextSelector: #getText
                getSelectionSelector: #primarySelectionInterval
                autoAccept: false
                scrollPane: a RubTextScrollPane(200540160)
                rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
                enabled: true


MessageSend>>value:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                anObject: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg: a RubTextUpdatedInModel
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


MessageSend>>cull:cull:
        Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
        Arguments and temporary variables:
                arg1: a RubTextUpdatedInModel
                arg2: an Announcer
        Receiver's instance variables:
                receiver: a RubScrolledTextMorph(110886912)
                selector: #whenTextUpdatedInModel:
                arguments: #()


[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
        Receiver: an AnnouncementSubscription
        Arguments and temporary variables:
                anAnnouncement: a RubTextUpdatedInModel
        Receiver's instance variables:
                announcer: an Announcer
                announcementClass: RubTextUpdatedInModel
                subscriber: a RubScrolledTextMorph(110886912)
                action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...


BlockClosure>>on:do:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: on: exception fork: handlerAction
        "Activate the receiver. In ca...etc...
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0


[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
        Receiver: [ action cull: anAnnouncement cull: announcer ]
        Arguments and temporary variables:
                exception: UnhandledError
                handlerAction: nil
                ex: UnhandledError
                copy: nil
                onDoCtx: nil
                process: nil
                handler: nil
                bottom: nil
                thisCtx: nil
        Receiver's instance variables:
                outerContext: AnnouncementSubscription>>deliver:
                startpc: 47
                numArgs: 0



--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
        ifFalse: [
                self selectAll.
                self editor replaceSelectionWith: aStringOrText.
                self deselect ] ] in [
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
        beEditableWhile: [
                aStringOrText = self text
                        ifFalse: [
                                self selectAll.
                                self editor replaceSelectionWith: aStringOrText.
                                self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlLayoutProperties>>hasFloating
14 July 2015 6:06:45.437607 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BlLayoutProperties(Object)>>doesNotUnderstand: #hasFloating
        Receiver: a BlLayoutProperties
        Arguments and temporary variables:
                aMessage: hasFloating
                exception: MessageNotUnderstood: BlLayoutProperties>>hasFloating
                resumeValue: nil
        Receiver's instance variables:
                positioning: #top
                resizing: #rigid
                anchors: nil
                extentRestriction: nil
                secondAxisProperties: a BlSecondAxisLayoutProperties


[ :origin :each |
| result |
result := origin
        +
                (each layoutProperties hasFloating
                        ifFalse: [ aBlock cull: origin cull: each ]
                        ifTrue: [ self float: each ]).
self align: each.
BrServiceLocator uniqueInstance layouter layoutDone: each -> aRectangle.
result ] in BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aBrick: a BlWellPanel
                aRectangle: (1@1) corner: (49@49)
                anInteger: (0@0)
                aBlock: [ :origin :each |
each privatePosition: (origin x + each marginLeft) @...etc...
                origin: (0@0)
                each: a BlDragWell
                result: nil
        Receiver's instance variables:
                layouting: true
                plugged: true


[ :each | nextValue := binaryBlock value: nextValue value: each ] in
Array(Collection)>>inject:into:
        Receiver: an Array(a BlDragWell)
        Arguments and temporary variables:
                thisValue: (0@0)
                binaryBlock: [ :origin :each |
| result |
result := origin
        +
                (each layoutPr...etc...
                nextValue: (0@0)
                each: a BlDragWell
        Receiver's instance variables:
an Array(a BlDragWell)

Array(SequenceableCollection)>>do:
        Receiver: an Array(a BlDragWell)
        Arguments and temporary variables:
                aBlock: [ :each | nextValue := binaryBlock value: nextValue value: each ]
                index: 1
        Receiver's instance variables:
an Array(a BlDragWell)

Array(Collection)>>inject:into:
        Receiver: an Array(a BlDragWell)
        Arguments and temporary variables:
                nextValue: (0@0)
                thisValue: (0@0)
                binaryBlock: [ :origin :each |
| result |
result := origin
        +
                (each layoutPr...etc...
        Receiver's instance variables:
an Array(a BlDragWell)

BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aBrick: a BlWellPanel
                aRectangle: (1@1) corner: (49@49)
                anInteger: (0@0)
                aBlock: [ :origin :each |
each privatePosition: (origin x + each marginLeft) @...etc...
        Receiver's instance variables:
                layouting: true
                plugged: true


BrHorizontalLinearLayout>>layout:in:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aBrick: a BlWellPanel
                newBounds: (1@1) corner: (49@49)
        Receiver's instance variables:
                layouting: true
                plugged: true


BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutComponents:
        Receiver: a BlBrickHeightTraverser
        Arguments and temporary variables:
                aView: a BlWellPanel
        Receiver's instance variables:
                isTraversing: nil


BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutAround:inContext:
        Receiver: a BlBrickHeightTraverser
        Arguments and temporary variables:
                aView: a BlWellPanel
                aContextView: nil
                shoudBeDamaged: true
        Receiver's instance variables:
                isTraversing: nil


BlBrickLayouter>>layout:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aMorph: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


BlBrickLayouter>>privateLayoutIn:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBrick: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


[
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] in [
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
                self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBrick: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


BlockClosure>>ensure:
        Receiver: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self priv...etc...
        Arguments and temporary variables:
                aBlock: [ layouting := false ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: [
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqu...etc...
                startpc: 83
                numArgs: 0


BlBrickLayouter>>privateForbidLayoutingWhile:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBlock: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick ->
aBric...etc...
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


[
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
                self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBrick: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


BlockClosure>>ensure:
        Receiver: [
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layout...etc...
        Arguments and temporary variables:
                aBlock: [
layouting
        ifFalse: [ BrServiceLocator uniqueInstance layouter retri...etc...
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: BlBrickLayouter>>layoutIn:
                startpc: 77
                numArgs: 0


BlBrickLayouter>>layoutIn:
        Receiver: a BlBrickLayouter
        Arguments and temporary variables:
                aBrick: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))


[
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutIn: newBounds.
BrServiceLocator uniqueInstance layouter layoutIn: aView ] in
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aView: a BlWellPanel
                newBounds: (1@1) corner: (49@49)
        Receiver's instance variables:
                layouting: true
                plugged: true


BlockClosure>>ensure:
        Receiver: [
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutI...etc...
        Arguments and temporary variables:
                aBlock: [ layouting := false ]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
                startpc: 52
                numArgs: 0


BrHorizontalLinearLayout(BlLayoutStrategy)>>privateForbidLayoutingWhile:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aBlock: [
"Compute the layout for the given morph based on the new bounds"
aVi...etc...
        Receiver's instance variables:
                layouting: true
                plugged: true


BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aView: a BlWellPanel
                newBounds: (1@1) corner: (49@49)
        Receiver's instance variables:
                layouting: true
                plugged: true


BlWellPanel(BlProtoView)>>doLayoutIn:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                newInnerBounds: (1@1) corner: (49@49)
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlProtoView)>>doLayout
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlViewBoundsCache>>updateBounds
        Receiver: a BlViewBoundsCache
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: nil
                extent: (50@50)
                dirty: true
                drawingBounds: nil
                innerBounds: nil
                updating: true
                viewReference: a WeakArray(a BlWellPanel)


BlViewBoundsCache>>upToDate
        Receiver: a BlViewBoundsCache
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: nil
                extent: (50@50)
                dirty: true
                drawingBounds: nil
                innerBounds: nil
                updating: true
                viewReference: a WeakArray(a BlWellPanel)


BlViewBoundsCache>>bounds
        Receiver: a BlViewBoundsCache
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: nil
                extent: (50@50)
                dirty: true
                drawingBounds: nil
                innerBounds: nil
                updating: true
                viewReference: a WeakArray(a BlWellPanel)


BlWellPanel(BlProtoView)>>bounds
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BrHorizontalLinearLayout(BrLinearLayout)>>layoutOf:changedFrom:
        Receiver: a BrHorizontalLinearLayout
        Arguments and temporary variables:
                aView: a BlWellPanel
                aSubView: a BlWellPanel
        Receiver's instance variables:
                layouting: true
                plugged: true


[ :ls | ls layoutOf: self changedFrom: aView ] in
BlWellPanel(BlProtoView)>>layoutChangedFrom:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aView: a BlWellPanel
                ls: a BrHorizontalLinearLayout
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlockClosure>>cull:
        Receiver: [ :ls | ls layoutOf: self changedFrom: aView ]
        Arguments and temporary variables:
                anArg: a BrHorizontalLinearLayout
        Receiver's instance variables:
                outerContext: BlWellPanel(BlProtoView)>>layoutChangedFrom:
                startpc: 27
                numArgs: 1


BlWellPanel(BlProtoView)>>layoutStrategyDo:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aBlock: [ :ls | ls layoutOf: self changedFrom: aView ]
                ls: a BrHorizontalLinearLayout
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlProtoView)>>layoutChangedFrom:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aView: a BlWellPanel
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlProtoView)>>layoutChanged
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlMorph)>>privateAddedMorph:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aMorph: a BlDragWell
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlMorph)>>privateAddMorph:atIndex:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aMorph: a BlDragWell
                index: 1
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


BlWellPanel(BlMorph)>>addMorphBack:
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                aMorph: a BlDragWell
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


[ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel: self;
                        yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
        Receiver: a BlWellPanel
        Arguments and temporary variables:
                value: Color lightYellow
        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...


Array(SequenceableCollection)>>do:
        Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
        Arguments and temporary variables:
                aBlock: [ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel:...etc...
                index: 1
        Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...

BlWellPanel>>addDefaultWellsAndPlus
        Receiver: a BlWellPanel
        Arguments and temporary variables:

        Receiver's instance variables:
                transform: an AthensAffineTransform
                ownerReference: nil
                visible: true
                properties: an IdentityDictionary()
                layoutProperties: a BrLayoutProperties
                boundsCache: a BlViewBoundsCache
                theme: nil
                nextSiblingReference: nil
                previousSiblingReference: nil
                spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
                eventListener: a BlMorphEventListener
                errorOnDraw: false
                locked: false
                view: a BlRectangleView
                announcer: an Announcer
                submorphs: an Array(a BlDragWell)
                layoutStrategy: a BrHorizontalLinearLayout
                zIndex: nil
                style: a BlUINullStyle
                title: nil
                defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...



--- The full stack ---
BlLayoutProperties(Object)>>doesNotUnderstand: #hasFloating
[ :origin :each |
| result |
result := origin
        +
                (each layoutProperties hasFloating
                        ifFalse: [ aBlock cull: origin cull: each ]
                        ifTrue: [ self float: each ]).
self align: each.
BrServiceLocator uniqueInstance layouter layoutDone: each -> aRectangle.
result ] in BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
[ :each | nextValue := binaryBlock value: nextValue value: each ] in
Array(Collection)>>inject:into:
Array(SequenceableCollection)>>do:
Array(Collection)>>inject:into:
BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
BrHorizontalLinearLayout>>layout:in:
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutComponents:
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutAround:inContext:
BlBrickLayouter>>layout:
BlBrickLayouter>>privateLayoutIn:
[
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] in [
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
                self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
BlockClosure>>ensure:
BlBrickLayouter>>privateForbidLayoutingWhile:
[
self
        privateForbidLayoutingWhile: [
                BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
                self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
BlockClosure>>ensure:
BlBrickLayouter>>layoutIn:
[
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutIn: newBounds.
BrServiceLocator uniqueInstance layouter layoutIn: aView ] in
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
BlockClosure>>ensure:
BrHorizontalLinearLayout(BlLayoutStrategy)>>privateForbidLayoutingWhile:
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
BlWellPanel(BlProtoView)>>doLayoutIn:
BlWellPanel(BlProtoView)>>doLayout
BlViewBoundsCache>>updateBounds
BlViewBoundsCache>>upToDate
BlViewBoundsCache>>bounds
BlWellPanel(BlProtoView)>>bounds
BrHorizontalLinearLayout(BrLinearLayout)>>layoutOf:changedFrom:
[ :ls | ls layoutOf: self changedFrom: aView ] in
BlWellPanel(BlProtoView)>>layoutChangedFrom:
BlockClosure>>cull:
BlWellPanel(BlProtoView)>>layoutStrategyDo:
BlWellPanel(BlProtoView)>>layoutChangedFrom:
BlWellPanel(BlProtoView)>>layoutChanged
BlWellPanel(BlMorph)>>privateAddedMorph:
BlWellPanel(BlMorph)>>privateAddMorph:atIndex:
BlWellPanel(BlMorph)>>addMorphBack:
[ :value |
self
        addMorphBack:
                ((self wellClass on: value)
                        panel: self;
                        yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Array(SequenceableCollection)>>do:
BlWellPanel>>addDefaultWellsAndPlus
  - - - - - - - - - - - - - - -
                        - - - - - - - - - - - - - - - - - -
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
        handleEdit: [
                textMorph textArea editor highlightEvaluateAndDo: ann action.
                textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
        "Activate the receiver. In case of exception, fork a new process, which
will handle an error.
        An original process will continue running as if receiver evaluation
finished and answered nil,
        i.e., an expression like:
       
        [ self error: 'some error'] on: Error fork: [:ex |  123 ]
       
        will always answer nil for original process, not 123.

        The context stack , starting from context which sent this message to
receiver and
        up to the top of the stack will be transferred to forked process, with
handlerAction on top.
        (so when the forked process will be resuming, it will enter the
handlerAction)
         "

        ^ self
                on: exception
                do: [ :ex |
                        | copy onDoCtx process handler bottom thisCtx |
                        onDoCtx := thisContext.
                        thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
                        [ onDoCtx sender == thisCtx ]
                                whileFalse: [
                                        onDoCtx := onDoCtx sender.
                                        onDoCtx
                                                ifNil: [
                                                        "Can't find our home context. seems like we're already forked
                                and handling another exception in new thread. In this case, just
pass it through handler."
                                                        ^ handlerAction cull: ex ] ].
                        bottom := [ Processor terminateActive ] asContext.
                        onDoCtx privSender: bottom.
                        handler := [ handlerAction cull: ex ] asContext.
                        handler privSender: thisContext sender.
                        (Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
                        thisContext privSender: thisCtx.
                        nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:05.708422 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 0 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)



--- The full stack ---
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
  - - - - - - - - - - - - - - -
                        - - - - - - - - - - - - - - - - - -
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
-- and more not shown
---------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:05.722422 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.684421 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BlHaloGlobalEventListener(BlGlobalEventListener)>>space
        Receiver: a BlHaloGlobalEventListener
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicCompatibilitySpaceEventListener


BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 6 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)



--- The full stack ---
BlHaloGlobalEventListener(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
  - - - - - - - - - - - - - - -
                        - - - - - - - - - - - - - - - - - -
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
-- and more not shown
---------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.690421 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.692421 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.694421 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.694421 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.696421 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.930422 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

BlMorphicCompatibilitySpaceEventListener(BlGlobalEventListener)>>space
        Receiver: a BlMorphicCompatibilitySpaceEventListener
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlSpaceEventListener


BlHaloGlobalEventListener(BlGlobalEventListener)>>space
        Receiver: a BlHaloGlobalEventListener
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicCompatibilitySpaceEventListener


BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlHaloGlobalEventListener
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1


BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                aBlock: [ :sp | sp removeEventListener: self ]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:

        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicEventListenerRecord>>handleEvent:
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
        Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Arguments and temporary variables:
                anEventListener: a BlMorphicEventListenerRecord
        Receiver's instance variables:
                rootMorph: a BlSpaceMorph
                manager: a BlMorphicUIManager
                identifier: 'Bloc-1'
                announcer: an Announcer
                alarmQueue: a BlAlarmQueue
                fataDrawingError: false
                mainLoopManager: a BlMainLoopManager
                eventFetcher: a BlVMEventFetcher
                eventListener: a BlMorphicEventListenerRecord
                deferredActions: WaitfreeQueue with 16 items


[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
        Receiver: a BlMorphicEventListenerRecord
        Arguments and temporary variables:
                sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                next: a BlMorphicEventListenerRecord
                morphicListenerReference: a WeakArray(nil)


BlockClosure>>cull:
        Receiver: [ :sp | sp removeEventListener: self ]
        Arguments and temporary variables:
                anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
        Receiver's instance variables:
                outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
                startpc: 26
                numArgs: 1



--- The full stack ---
BlMorphicCompatibilitySpaceEventListener(BlGlobalEventListener)>>space
BlHaloGlobalEventListener(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
  - - - - - - - - - - - - - - -
                        - - - - - - - - - - - - - - - - - -
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
-- and more not shown
---------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.936421 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.938421 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.938421 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.940422 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.940422 pm

VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <[hidden email]> Jenkins build #14826

Image: Pharo5.0 [Latest update: #50170]

[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
        Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: BlMainLoopManager>>loop
                startpc: 41
                numArgs: 0



--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------


Reply | Threaded
Open this post in threaded view
|

Re: Crashed Pharo in Bloc/FastTable

Stephan Eggermont-3
That is with fasttable for nautilus disabled, as it didn't work for
Bloc. Switching to hierarchy view in Nautilus in Bloc also
provided a hanging uninteruptable system. (now on Mac, earlier on Linux)

Stephan