Pharo-dev
By message
pharo-dev@lists.pharo.org
By month
Threads by month
- ----- 2026 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 37339 discussions
Tudor,
The new DNU appears to be a bug in OTClosureContextNode ... In order for me to see the bug I had to select the DoIt context (after installing Nicolas' fix).
I've attached a patch for the DoIt context problem.
Let me know if that works for you.
Dale
----- "Tudor Girba" <girba(a)iam.unibe.ch> wrote:
| Oh, now I got into another problem when debugging I get an
| UndefinedObject>>DNU: #deguggerMap in OTClosureContextNode>>selection
|
| (see attached trace).
|
| I must admit I am lost :)
|
| Cheers,
| Doru
|
| ----------
|
| '17 May 2009 2:47:39 pm
|
| VM: Mac OS - intel - 1056 - Squeak3.8.1 of ''28 Aug 2006'' [latest
| update: #6747] Squeak VM 4.1.1b2
| Image: Pharo0.1 [Latest update: #10306]
|
| SecurityManager state:
| Restricted: false
| FileAccess: true
| SocketAccess: true
| Working Dir /Users/girba/Work/Code/squeakingmoose
| Trusted Dir /foobar/tooBar/forSqueak/bogus
| Untrusted Dir /Users/girba/Library/Preferences/Squeak/Internet/My
| Squeak
|
| OTClosureContextNode>>selection
| Receiver: an OTClosureContextNode
| Arguments and temporary variables:
|
| Receiver''s instance variables:
| metaNode: context
|
| navigation: an OBDefaultEdgeNavigation
| process: a Process in OTToolset
| class>>debug:context:label:contents:fullView:
| context: UndefinedObject>>DoIt
| parseTree: nil
| sourceMap: nil
| debuggerMap: nil
|
| OTClosureContextNode(OTContextNode)>>definition
| Receiver: an OTClosureContextNode
| Arguments and temporary variables:
|
| Receiver''s instance variables:
| metaNode: context
|
| navigation: an OBDefaultEdgeNavigation
| process: a Process in OTToolset
| class>>debug:context:label:contents:fullView:
| context: UndefinedObject>>DoIt
| parseTree: nil
| sourceMap: nil
| debuggerMap: nil
|
| OTDefinitionPanel(OBDefinitionPanel)>>node:
| Receiver: an OTDefinitionPanel
| Arguments and temporary variables:
| aNode: an OTClosureContextNode
| Receiver''s instance variables:
| browser: an OTDebugger
| definition: an OBMethodDefinition
| selection: (111 to: 116)
|
| OTDefinitionPanel(OBDefinitionPanel)>>selectionChanged:
| Receiver: an OTDefinitionPanel
| Arguments and temporary variables:
| ann: an OBSelectionChanged
| Receiver''s instance variables:
| browser: an OTDebugger
| definition: an OBMethodDefinition
| selection: (111 to: 116)
|
| MessageSend>>valueWithArguments:
| Receiver: MessageSend(#selectionChanged: -> an OTDefinitionPanel)
| Arguments and temporary variables:
| anArray: an Array(an OBSelectionChanged)
| Receiver''s instance variables:
| receiver: an OTDefinitionPanel
| selector: #selectionChanged:
| arguments: #()
|
| [] in ActionSequence>>valueWithArguments:
| Receiver: #(MessageSend(#relabel: -> an OTDebugger)
| MessageSend(#selectionChanged: -> an OBColumnPan...etc...
| Arguments and temporary variables:
| anArray: MessageSend(#selectionChanged: -> an OTDefinitionPanel)
| answer: an Array(an OBSelectionChanged)
| each: an Array(an OBFixedButtonPanel)
| Receiver''s instance variables:
| #(MessageSend(#relabel: -> an OTDebugger)
| MessageSend(#selectionChanged: -> an OBColumnPan...etc...
|
| ActionSequence(SequenceableCollection)>>do:
| Receiver: #(MessageSend(#relabel: -> an OTDebugger)
| MessageSend(#selectionChanged: -> an OBColumnPan...etc...
| Arguments and temporary variables:
| aBlock: [closure] in ActionSequence>>valueWithArguments:
| index: 4
| indexLimiT: 6
| Receiver''s instance variables:
| #(MessageSend(#relabel: -> an OTDebugger)
| MessageSend(#selectionChanged: -> an OBColumnPan...etc...
|
| ActionSequence>>valueWithArguments:
| Receiver: #(MessageSend(#relabel: -> an OTDebugger)
| MessageSend(#selectionChanged: -> an OBColumnPan...etc...
| Arguments and temporary variables:
| anArray: an Array(an OBSelectionChanged)
| answer: an Array(an OBFixedButtonPanel)
| Receiver''s instance variables:
| #(MessageSend(#relabel: -> an OTDebugger)
| MessageSend(#selectionChanged: -> an OBColumnPan...etc...
|
| [] in OBAnnouncer>>announce:
| Receiver: an OBAnnouncer
| Arguments and temporary variables:
| <<error during printing>
| Receiver''s instance variables:
| subscriptions: an IdentityDictionary(OBAboutToChange->an
| ActionSequence(Message...etc...
|
| [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
| Receiver: an IdentityDictionary(OBAboutToChange->an
| ActionSequence(MessageSend(#aboutToChange: -> an...etc...
| Arguments and temporary variables:
| aBlock: OBSelectionChanged->#(MessageSend(#relabel: -> an
| OTDebugger)
| MessageSe...etc...
| assoc: [closure] in OBAnnouncer>>announce:
| Receiver''s instance variables:
| tally: 12
| array: {OBNodeCreated->an ActionSequence(MessageSend(#selectNode: -
|
| > an OBColum...etc...
|
| IdentityDictionary(Set)>>do:
| Receiver: an IdentityDictionary(OBAboutToChange->an
| ActionSequence(MessageSend(#aboutToChange: -> an...etc...
| Arguments and temporary variables:
| aBlock: [closure] in
| IdentityDictionary(Dictionary)>>keysAndValuesDo:
| index: 6
| each: OBSelectionChanged->#(MessageSend(#relabel: -> an
| OTDebugger)
| MessageSend...etc...
| indexLimiT: 20
| Receiver''s instance variables:
| tally: 12
| array: {OBNodeCreated->an ActionSequence(MessageSend(#selectNode: -
|
| > an OBColum...etc...
|
| IdentityDictionary(Dictionary)>>associationsDo:
| Receiver: an IdentityDictionary(OBAboutToChange->an
| ActionSequence(MessageSend(#aboutToChange: -> an...etc...
| Arguments and temporary variables:
| aBlock: [closure] in
| IdentityDictionary(Dictionary)>>keysAndValuesDo:
| Receiver''s instance variables:
| tally: 12
| array: {OBNodeCreated->an ActionSequence(MessageSend(#selectNode: -
|
| > an OBColum...etc...
|
| IdentityDictionary(Dictionary)>>keysAndValuesDo:
| Receiver: an IdentityDictionary(OBAboutToChange->an
| ActionSequence(MessageSend(#aboutToChange: -> an...etc...
| Arguments and temporary variables:
| aBlock: [closure] in OBAnnouncer>>announce:
| Receiver''s instance variables:
| tally: 12
| array: {OBNodeCreated->an ActionSequence(MessageSend(#selectNode: -
|
| > an OBColum...etc...
|
| OBAnnouncer>>announce:
| Receiver: an OBAnnouncer
| Arguments and temporary variables:
| anObject: an OBSelectionChanged
| ann: an OBSelectionChanged
| Receiver''s instance variables:
| subscriptions: an IdentityDictionary(OBAboutToChange->an
| ActionSequence(Message...etc...
|
| OBColumn>>signalSelectionChanged
| Receiver: an OBColumn(UndefinedObject>>DoIt)
| Arguments and temporary variables:
|
| Receiver''s instance variables:
| panel: an OBColumnPanel
| switch: an OBSwitch
| listHolder: an OBList
| selection: 1
|
| OBColumn>>selection:
| Receiver: an OBColumn(UndefinedObject>>DoIt)
| Arguments and temporary variables:
| anInteger: 2
| Receiver''s instance variables:
| panel: an OBColumnPanel
| switch: an OBSwitch
| listHolder: an OBList
| selection: 1
|
| OBPluggableListMorph(PluggableListMorph)>>changeModelSelection:
| Receiver: an OBPluggableListMorph(1687)
| Arguments and temporary variables:
| anInteger: 2
| Receiver''s instance variables:
| bounds: 0@0 corner: 590@152
| owner: an OBPane(2254)
| submorphs: an Array(a ScrollBar(298) a ScrollBar(3558) a
| TransformMorph(2609))
| fullBounds: 0@0 corner: 590@152
| color: Color white
| extension: a MorphExtension (2952) [other: (dragEnabled -> true)
|
| (dropEnabled ...etc...
| borderWidth: 0
| borderColor: Color black
| model: an OBColumn(UndefinedObject>>DoIt)
| slotName: nil
| open: false
| scrollBar: a ScrollBar(3558)
| scroller: a TransformMorph(2609)
| retractableScrollBar: false
| scrollBarOnLeft: false
| getMenuSelector: #menu:
| getMenuTitleSelector: nil
| hasFocus: false
| hScrollBar: a ScrollBar(298)
| list: nil
| getListSelector: #list
| getListSizeSelector: #listSize
| getListElementSelector: #listAt:
| getIndexSelector: #selection
| setIndexSelector: #selection:
| keystrokeActionSelector: #keystroke:from:
| autoDeselect: false
| lastKeystrokeTime: 0
| lastKeystrokes: ''''
| doubleClickSelector: nil
| handlesBasicKeys: nil
| potentialDropRow: nil
| listMorph: an OBLazyListMorph(2317)
| hScrollRangeCache: nil
|
| OBPluggableListMorph>>mouseUp:
| Receiver: an OBPluggableListMorph(1687)
| Arguments and temporary variables:
| event: [135@16 mouseUp 46488 nil]
| row: 2
| Receiver''s instance variables:
| bounds: 0@0 corner: 590@152
| owner: an OBPane(2254)
| submorphs: an Array(a ScrollBar(298) a ScrollBar(3558) a
| TransformMorph(2609))
| fullBounds: 0@0 corner: 590@152
| color: Color white
| extension: a MorphExtension (2952) [other: (dragEnabled -> true)
|
| (dropEnabled ...etc...
| borderWidth: 0
| borderColor: Color black
| model: an OBColumn(UndefinedObject>>DoIt)
| slotName: nil
| open: false
| scrollBar: a ScrollBar(3558)
| scroller: a TransformMorph(2609)
| retractableScrollBar: false
| scrollBarOnLeft: false
| getMenuSelector: #menu:
| getMenuTitleSelector: nil
| hasFocus: false
| hScrollBar: a ScrollBar(298)
| list: nil
| getListSelector: #list
| getListSizeSelector: #listSize
| getListElementSelector: #listAt:
| getIndexSelector: #selection
| setIndexSelector: #selection:
| keystrokeActionSelector: #keystroke:from:
| autoDeselect: false
| lastKeystrokeTime: 0
| lastKeystrokes: ''''
| doubleClickSelector: nil
| handlesBasicKeys: nil
| potentialDropRow: nil
| listMorph: an OBLazyListMorph(2317)
| hScrollRangeCache: nil
|
| OBPluggableListMorph(Morph)>>handleMouseUp:
| Receiver: an OBPluggableListMorph(1687)
| Arguments and temporary variables:
| anEvent: [135@16 mouseUp 46488 nil]
| Receiver''s instance variables:
| bounds: 0@0 corner: 590@152
| owner: an OBPane(2254)
| submorphs: an Array(a ScrollBar(298) a ScrollBar(3558) a
| TransformMorph(2609))
| fullBounds: 0@0 corner: 590@152
| color: Color white
| extension: a MorphExtension (2952) [other: (dragEnabled -> true)
|
| (dropEnabled ...etc...
| borderWidth: 0
| borderColor: Color black
| model: an OBColumn(UndefinedObject>>DoIt)
| slotName: nil
| open: false
| scrollBar: a ScrollBar(3558)
| scroller: a TransformMorph(2609)
| retractableScrollBar: false
| scrollBarOnLeft: false
| getMenuSelector: #menu:
| getMenuTitleSelector: nil
| hasFocus: false
| hScrollBar: a ScrollBar(298)
| list: nil
| getListSelector: #list
| getListSizeSelector: #listSize
| getListElementSelector: #listAt:
| getIndexSelector: #selection
| setIndexSelector: #selection:
| keystrokeActionSelector: #keystroke:from:
| autoDeselect: false
| lastKeystrokeTime: 0
| lastKeystrokes: ''''
| doubleClickSelector: nil
| handlesBasicKeys: nil
| potentialDropRow: nil
| listMorph: an OBLazyListMorph(2317)
| hScrollRangeCache: nil
|
| MouseButtonEvent>>sentTo:
| Receiver: [135@16 mouseUp 46488 nil]
| Arguments and temporary variables:
| anObject: an OBPluggableListMorph(1687)
| Receiver''s instance variables:
| timeStamp: 46488
| source: a HandMorph(3216)
| windowIndex: nil
| type: #mouseUp
| buttons: 0
| position: 135@16
| handler: nil
| wasHandled: true
| whichButton: 4
|
| OBPluggableListMorph(Morph)>>handleEvent:
| Receiver: an OBPluggableListMorph(1687)
| Arguments and temporary variables:
| anEvent: [135@16 mouseUp 46488 nil]
| Receiver''s instance variables:
| bounds: 0@0 corner: 590@152
| owner: an OBPane(2254)
| submorphs: an Array(a ScrollBar(298) a ScrollBar(3558) a
| TransformMorph(2609))
| fullBounds: 0@0 corner: 590@152
| color: Color white
| extension: a MorphExtension (2952) [other: (dragEnabled -> true)
|
| (dropEnabled ...etc...
| borderWidth: 0
| borderColor: Color black
| model: an OBColumn(UndefinedObject>>DoIt)
| slotName: nil
| open: false
| scrollBar: a ScrollBar(3558)
| scroller: a TransformMorph(2609)
| retractableScrollBar: false
| scrollBarOnLeft: false
| getMenuSelector: #menu:
| getMenuTitleSelector: nil
| hasFocus: false
| hScrollBar: a ScrollBar(298)
| list: nil
| getListSelector: #list
| getListSizeSelector: #listSize
| getListElementSelector: #listAt:
| getIndexSelector: #selection
| setIndexSelector: #selection:
| keystrokeActionSelector: #keystroke:from:
| autoDeselect: false
| lastKeystrokeTime: 0
| lastKeystrokes: ''''
| doubleClickSelector: nil
| handlesBasicKeys: nil
| potentialDropRow: nil
| listMorph: an OBLazyListMorph(2317)
| hScrollRangeCache: nil
|
| MorphicEventDispatcher>>dispatchDefault:with:
| Receiver: a MorphicEventDispatcher
| Arguments and temporary variables:
| anEvent: [135@16 mouseUp 46488 nil]
| aMorph: an OBPluggableListMorph(1687)
| localEvt: [135@16 mouseUp 46488 nil]
| index: 4
| child: a TransformMorph(2609)
| morphs: an Array(a ScrollBar(298) a ScrollBar(3558) a
| TransformMorph(2609))
| inside: true
| Receiver''s instance variables:
| lastType: #mouseUp
| lastDispatch: #dispatchDefault:with:
|
| MorphicEventDispatcher>>dispatchEvent:with:
| Receiver: a MorphicEventDispatcher
| Arguments and temporary variables:
| anEvent: [135@16 mouseUp 46488 nil]
| aMorph: an OBPluggableListMorph(1687)
| Receiver''s instance variables:
| lastType: #mouseUp
| lastDispatch: #dispatchDefault:with:
|
| OBPluggableListMorph(Morph)>>processEvent:using:
| Receiver: an OBPluggableListMorph(1687)
| Arguments and temporary variables:
| anEvent: [135@16 mouseUp 46488 nil]
| defaultDispatcher: a MorphicEventDispatcher
| Receiver''s instance variables:
| bounds: 0@0 corner: 590@152
| owner: an OBPane(2254)
| submorphs: an Array(a ScrollBar(298) a ScrollBar(3558) a
| TransformMorph(2609))
| fullBounds: 0@0 corner: 590@152
| color: Color white
| extension: a MorphExtension (2952) [other: (dragEnabled -> true)
|
| (dropEnabled ...etc...
| borderWidth: 0
| borderColor: Color black
| model: an OBColumn(UndefinedObject>>DoIt)
| slotName: nil
| open: false
| scrollBar: a ScrollBar(3558)
| scroller: a TransformMorph(2609)
| retractableScrollBar: false
| scrollBarOnLeft: false
| getMenuSelector: #menu:
| getMenuTitleSelector: nil
| hasFocus: false
| hScrollBar: a ScrollBar(298)
| list: nil
| getListSelector: #list
| getListSizeSelector: #listSize
| getListElementSelector: #listAt:
| getIndexSelector: #selection
| setIndexSelector: #selection:
| keystrokeActionSelector: #keystroke:from:
| autoDeselect: false
| lastKeystrokeTime: 0
| lastKeystrokes: ''''
| doubleClickSelector: nil
| handlesBasicKeys: nil
| potentialDropRow: nil
| listMorph: an OBLazyListMorph(2317)
| hScrollRangeCache: nil
|
| OBPluggableListMorph(Morph)>>processEvent:
| Receiver: an OBPluggableListMorph(1687)
| Arguments and temporary variables:
| anEvent: [135@16 mouseUp 46488 nil]
| Receiver''s instance variables:
| bounds: 0@0 corner: 590@152
| owner: an OBPane(2254)
| submorphs: an Array(a ScrollBar(298) a ScrollBar(3558) a
| TransformMorph(2609))
| fullBounds: 0@0 corner: 590@152
| color: Color white
| extension: a MorphExtension (2952) [other: (dragEnabled -> true)
|
| (dropEnabled ...etc...
| borderWidth: 0
| borderColor: Color black
| model: an OBColumn(UndefinedObject>>DoIt)
| slotName: nil
| open: false
| scrollBar: a ScrollBar(3558)
| scroller: a TransformMorph(2609)
| retractableScrollBar: false
| scrollBarOnLeft: false
| getMenuSelector: #menu:
| getMenuTitleSelector: nil
| hasFocus: false
| hScrollBar: a ScrollBar(298)
| list: nil
| getListSelector: #list
| getListSizeSelector: #listSize
| getListElementSelector: #listAt:
| getIndexSelector: #selection
| setIndexSelector: #selection:
| keystrokeActionSelector: #keystroke:from:
| autoDeselect: false
| lastKeystrokeTime: 0
| lastKeystrokes: ''''
| doubleClickSelector: nil
| handlesBasicKeys: nil
| potentialDropRow: nil
| listMorph: an OBLazyListMorph(2317)
| hScrollRangeCache: nil
|
| OBPluggableListMorph(PluggableListMorph)>>handleFocusEvent:
| Receiver: an OBPluggableListMorph(1687)
| Arguments and temporary variables:
| anEvent: [135@16 mouseUp 46488 nil]
| Receiver''s instance variables:
| bounds: 0@0 corner: 590@152
| owner: an OBPane(2254)
| submorphs: an Array(a ScrollBar(298) a ScrollBar(3558) a
| TransformMorph(2609))
| fullBounds: 0@0 corner: 590@152
| color: Color white
| extension: a MorphExtension (2952) [other: (dragEnabled -> true)
|
| (dropEnabled ...etc...
| borderWidth: 0
| borderColor: Color black
| model: an OBColumn(UndefinedObject>>DoIt)
| slotName: nil
| open: false
| scrollBar: a ScrollBar(3558)
| scroller: a TransformMorph(2609)
| retractableScrollBar: false
| scrollBarOnLeft: false
| getMenuSelector: #menu:
| getMenuTitleSelector: nil
| hasFocus: false
| hScrollBar: a ScrollBar(298)
| list: nil
| getListSelector: #list
| getListSizeSelector: #listSize
| getListElementSelector: #listAt:
| getIndexSelector: #selection
| setIndexSelector: #selection:
| keystrokeActionSelector: #keystroke:from:
| autoDeselect: false
| lastKeystrokeTime: 0
| lastKeystrokes: ''''
| doubleClickSelector: nil
| handlesBasicKeys: nil
| potentialDropRow: nil
| listMorph: an OBLazyListMorph(2317)
| hScrollRangeCache: nil
|
| [] in HandMorph>>sendFocusEvent:to:clear:
| Receiver: a HandMorph(3216)
| Arguments and temporary variables:
| <<error during printing>
| Receiver''s instance variables:
| bounds: 987@479 corner: 1003@495
| owner: a PasteUpMorph(1622) [world]
| submorphs: #()
| fullBounds: 987@479 corner: 1003@495
| color: Color blue
| extension: a MorphExtension (539) [eventHandler = an EventHandler]
| mouseFocus: nil
| keyboardFocus: nil
| eventListeners: nil
| mouseListeners: nil
| keyboardListeners: nil
| mouseClickState: nil
| mouseOverHandler: a MouseOverHandler
| lastMouseEvent: [987@479 mouseUp 173200 nil]
| targetOffset: 143@54
| damageRecorder: a DamageRecorder
| cacheCanvas: nil
| cachedCanvasHasHoles: true
| temporaryCursor: nil
| temporaryCursorOffset: nil
| hardwareCursor: nil
| hasChanged: true
| savedPatch: nil
| userInitials: ''''
| lastEventBuffer: #(1 173200 987 479 0 0 0 1)
| lastKeyScanCode: 126
| combinedChar: nil
|
| [] in PasteUpMorph>>becomeActiveDuring:
| Receiver: a PasteUpMorph(1622) [world]
| Arguments and temporary variables:
| <<error during printing>
| Receiver''s instance variables:
| bounds: 0@0 corner: 1424@807
| owner: nil
| submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(3689) a
| SystemWindow(31...etc...
| fullBounds: nil
| color: (Color r: 0.972 g: 0.972 b: 0.976)
| extension: a MorphExtension (2543) [eventHandler = an
| EventHandler] [other: (...etc...
| borderWidth: 0
| borderColor: (Color r: 0.028 g: 0.028 b: 0.024)
| presenter: a Presenter (1246)
| model: a MorphicModel(1926)
| cursor: 1
| padding: 3
| backgroundMorph: nil
| isPartsBin: nil
| autoLineLayout: false
| indicateCursor: nil
| resizeToFit: nil
| wantsMouseOverHalos: nil
| worldState: a WorldState
| griddingOn: nil
|
| BlockClosure>>on:do:
| Receiver: [closure] in PasteUpMorph>>becomeActiveDuring:
| Arguments and temporary variables:
| exception: Error
| handlerAction: [closure] in PasteUpMorph>>becomeActiveDuring:
| handlerActive: false
| Receiver''s instance variables:
| outerContext: PasteUpMorph>>becomeActiveDuring:
| startpc: 67
| numArgs: 0
|
| PasteUpMorph>>becomeActiveDuring:
| Receiver: a PasteUpMorph(1622) [world]
| Arguments and temporary variables:
| aBlock: [closure] in HandMorph>>sendFocusEvent:to:clear:
| priorWorld: a PasteUpMorph(1622) [world]
| priorHand: a HandMorph(3216)
| priorEvent: [293@48 mouseOver red nil nil]
| Receiver''s instance variables:
| bounds: 0@0 corner: 1424@807
| owner: nil
| submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(3689) a
| SystemWindow(31...etc...
| fullBounds: nil
| color: (Color r: 0.972 g: 0.972 b: 0.976)
| extension: a MorphExtension (2543) [eventHandler = an
| EventHandler] [other: (...etc...
| borderWidth: 0
| borderColor: (Color r: 0.028 g: 0.028 b: 0.024)
| presenter: a Presenter (1246)
| model: a MorphicModel(1926)
| cursor: 1
| padding: 3
| backgroundMorph: nil
| isPartsBin: nil
| autoLineLayout: false
| indicateCursor: nil
| resizeToFit: nil
| wantsMouseOverHalos: nil
| worldState: a WorldState
| griddingOn: nil
|
| HandMorph>>sendFocusEvent:to:clear:
| Receiver: a HandMorph(3216)
| Arguments and temporary variables:
| anEvent: [293@48 mouseUp 46488 nil]
| focusHolder: an OBPluggableListMorph(1687)
| aBlock: [closure] in HandMorph>>sendMouseEvent:
| w: a PasteUpMorph(1622) [world]
| result: #(nil)
| Receiver''s instance variables:
| bounds: 987@479 corner: 1003@495
| owner: a PasteUpMorph(1622) [world]
| submorphs: #()
| fullBounds: 987@479 corner: 1003@495
| color: Color blue
| extension: a MorphExtension (539) [eventHandler = an EventHandler]
| mouseFocus: nil
| keyboardFocus: nil
| eventListeners: nil
| mouseListeners: nil
| keyboardListeners: nil
| mouseClickState: nil
| mouseOverHandler: a MouseOverHandler
| lastMouseEvent: [987@479 mouseUp 173200 nil]
| targetOffset: 143@54
| damageRecorder: a DamageRecorder
| cacheCanvas: nil
| cachedCanvasHasHoles: true
| temporaryCursor: nil
| temporaryCursorOffset: nil
| hardwareCursor: nil
| hasChanged: true
| savedPatch: nil
| userInitials: ''''
| lastEventBuffer: #(1 173200 987 479 0 0 0 1)
| lastKeyScanCode: 126
| combinedChar: nil
|
| HandMorph>>sendEvent:focus:clear:
| Receiver: a HandMorph(3216)
| Arguments and temporary variables:
| anEvent: [293@48 mouseUp 46488 nil]
| focusHolder: an OBPluggableListMorph(1687)
| aBlock: [closure] in HandMorph>>sendMouseEvent:
| result: nil
| Receiver''s instance variables:
| bounds: 987@479 corner: 1003@495
| owner: a PasteUpMorph(1622) [world]
| submorphs: #()
| fullBounds: 987@479 corner: 1003@495
| color: Color blue
| extension: a MorphExtension (539) [eventHandler = an EventHandler]
| mouseFocus: nil
| keyboardFocus: nil
| eventListeners: nil
| mouseListeners: nil
| keyboardListeners: nil
| mouseClickState: nil
| mouseOverHandler: a MouseOverHandler
| lastMouseEvent: [987@479 mouseUp 173200 nil]
| targetOffset: 143@54
| damageRecorder: a DamageRecorder
| cacheCanvas: nil
| cachedCanvasHasHoles: true
| temporaryCursor: nil
| temporaryCursorOffset: nil
| hardwareCursor: nil
| hasChanged: true
| savedPatch: nil
| userInitials: ''''
| lastEventBuffer: #(1 173200 987 479 0 0 0 1)
| lastKeyScanCode: 126
| combinedChar: nil
|
| HandMorph>>sendMouseEvent:
| Receiver: a HandMorph(3216)
| Arguments and temporary variables:
| anEvent: [293@48 mouseUp 46488 nil]
| Receiver''s instance variables:
| bounds: 987@479 corner: 1003@495
| owner: a PasteUpMorph(1622) [world]
| submorphs: #()
| fullBounds: 987@479 corner: 1003@495
| color: Color blue
| extension: a MorphExtension (539) [eventHandler = an EventHandler]
| mouseFocus: nil
| keyboardFocus: nil
| eventListeners: nil
| mouseListeners: nil
| keyboardListeners: nil
| mouseClickState: nil
| mouseOverHandler: a MouseOverHandler
| lastMouseEvent: [987@479 mouseUp 173200 nil]
| targetOffset: 143@54
| damageRecorder: a DamageRecorder
| cacheCanvas: nil
| cachedCanvasHasHoles: true
| temporaryCursor: nil
| temporaryCursorOffset: nil
| hardwareCursor: nil
| hasChanged: true
| savedPatch: nil
| userInitials: ''''
| lastEventBuffer: #(1 173200 987 479 0 0 0 1)
| lastKeyScanCode: 126
| combinedChar: nil
|
| HandMorph>>handleEvent:
| Receiver: a HandMorph(3216)
| Arguments and temporary variables:
| anEvent: [293@48 mouseUp 46488 nil]
| evt: [293@48 mouseUp 46488 nil]
| ofs: nil
| Receiver''s instance variables:
| bounds: 987@479 corner: 1003@495
| owner: a PasteUpMorph(1622) [world]
| submorphs: #()
| fullBounds: 987@479 corner: 1003@495
| color: Color blue
| extension: a MorphExtension (539) [eventHandler = an EventHandler]
| mouseFocus: nil
| keyboardFocus: nil
| eventListeners: nil
| mouseListeners: nil
| keyboardListeners: nil
| mouseClickState: nil
| mouseOverHandler: a MouseOverHandler
| lastMouseEvent: [987@479 mouseUp 173200 nil]
| targetOffset: 143@54
| damageRecorder: a DamageRecorder
| cacheCanvas: nil
| cachedCanvasHasHoles: true
| temporaryCursor: nil
| temporaryCursorOffset: nil
| hardwareCursor: nil
| hasChanged: true
| savedPatch: nil
| userInitials: ''''
| lastEventBuffer: #(1 173200 987 479 0 0 0 1)
| lastKeyScanCode: 126
| combinedChar: nil
|
| HandMorph>>processEvents
| Receiver: a HandMorph(3216)
| Arguments and temporary variables:
| evt: [293@48 mouseUp 46488 nil]
| evtBuf: #(1 46488 293 48 0 0 0 1)
| type: 1
| hadAny: false
| Receiver''s instance variables:
| bounds: 987@479 corner: 1003@495
| owner: a PasteUpMorph(1622) [world]
| submorphs: #()
| fullBounds: 987@479 corner: 1003@495
| color: Color blue
| extension: a MorphExtension (539) [eventHandler = an EventHandler]
| mouseFocus: nil
| keyboardFocus: nil
| eventListeners: nil
| mouseListeners: nil
| keyboardListeners: nil
| mouseClickState: nil
| mouseOverHandler: a MouseOverHandler
| lastMouseEvent: [987@479 mouseUp 173200 nil]
| targetOffset: 143@54
| damageRecorder: a DamageRecorder
| cacheCanvas: nil
| cachedCanvasHasHoles: true
| temporaryCursor: nil
| temporaryCursorOffset: nil
| hardwareCursor: nil
| hasChanged: true
| savedPatch: nil
| userInitials: ''''
| lastEventBuffer: #(1 173200 987 479 0 0 0 1)
| lastKeyScanCode: 126
| combinedChar: nil
|
| [] in WorldState>>doOneCycleNowFor:
| Receiver: a WorldState
| Arguments and temporary variables:
| <<error during printing>
| Receiver''s instance variables:
| hands: an Array(a HandMorph(3216))
| viewBox: 0@0 corner: 1424@807
| canvas: a FormCanvas on: DisplayScreen(1424x807x32)
| damageRecorder: a DamageRecorder
| stepList: a Heap(StepMessage(#stepAt: -> a SystemWindow(1898))(a
| SystemWindow(1...etc...
| lastStepTime: 173182
| lastStepMessage: nil
| lastCycleTime: 173201
| commandHistory: a CommandHistory
| alarms: a Heap()
| lastAlarmTime: 173182
|
| Array(SequenceableCollection)>>do:
| Receiver: an Array(a HandMorph(3216))
| Arguments and temporary variables:
| aBlock: [closure] in WorldState>>doOneCycleNowFor:
| index: 1
| indexLimiT: 1
| Receiver''s instance variables:
| an Array(a HandMorph(3216))
|
| WorldState>>handsDo:
| Receiver: a WorldState
| Arguments and temporary variables:
| aBlock: [closure] in WorldState>>doOneCycleNowFor:
| Receiver''s instance variables:
| hands: an Array(a HandMorph(3216))
| viewBox: 0@0 corner: 1424@807
| canvas: a FormCanvas on: DisplayScreen(1424x807x32)
| damageRecorder: a DamageRecorder
| stepList: a Heap(StepMessage(#stepAt: -> a SystemWindow(1898))(a
| SystemWindow(1...etc...
| lastStepTime: 173182
| lastStepMessage: nil
| lastCycleTime: 173201
| commandHistory: a CommandHistory
| alarms: a Heap()
| lastAlarmTime: 173182
|
| WorldState>>doOneCycleNowFor:
| Receiver: a WorldState
| Arguments and temporary variables:
| aWorld: a PasteUpMorph(1622) [world]
| Receiver''s instance variables:
| hands: an Array(a HandMorph(3216))
| viewBox: 0@0 corner: 1424@807
| canvas: a FormCanvas on: DisplayScreen(1424x807x32)
| damageRecorder: a DamageRecorder
| stepList: a Heap(StepMessage(#stepAt: -> a SystemWindow(1898))(a
| SystemWindow(1...etc...
| lastStepTime: 173182
| lastStepMessage: nil
| lastCycleTime: 173201
| commandHistory: a CommandHistory
| alarms: a Heap()
| lastAlarmTime: 173182
|
|
| --- The full stack ---
| OTClosureContextNode>>selection
| OTClosureContextNode(OTContextNode)>>definition
| OTDefinitionPanel(OBDefinitionPanel)>>node:
| OTDefinitionPanel(OBDefinitionPanel)>>selectionChanged:
| MessageSend>>valueWithArguments:
| [] in ActionSequence>>valueWithArguments:
| ActionSequence(SequenceableCollection)>>do:
| ActionSequence>>valueWithArguments:
| [] in OBAnnouncer>>announce:
| [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
| IdentityDictionary(Set)>>do:
| IdentityDictionary(Dictionary)>>associationsDo:
| IdentityDictionary(Dictionary)>>keysAndValuesDo:
| OBAnnouncer>>announce:
| OBColumn>>signalSelectionChanged
| OBColumn>>selection:
| OBPluggableListMorph(PluggableListMorph)>>changeModelSelection:
| OBPluggableListMorph>>mouseUp:
| OBPluggableListMorph(Morph)>>handleMouseUp:
| MouseButtonEvent>>sentTo:
| OBPluggableListMorph(Morph)>>handleEvent:
| MorphicEventDispatcher>>dispatchDefault:with:
| MorphicEventDispatcher>>dispatchEvent:with:
| OBPluggableListMorph(Morph)>>processEvent:using:
| OBPluggableListMorph(Morph)>>processEvent:
| OBPluggableListMorph(PluggableListMorph)>>handleFocusEvent:
| [] in HandMorph>>sendFocusEvent:to:clear:
| [] in PasteUpMorph>>becomeActiveDuring:
| BlockClosure>>on:do:
| PasteUpMorph>>becomeActiveDuring:
| HandMorph>>sendFocusEvent:to:clear:
| HandMorph>>sendEvent:focus:clear:
| HandMorph>>sendMouseEvent:
| HandMorph>>handleEvent:
| HandMorph>>processEvents
| [] in WorldState>>doOneCycleNowFor:
| Array(SequenceableCollection)>>do:
| WorldState>>handsDo:
| WorldState>>doOneCycleNowFor:
| - - - - - - - - - - - - - - -
| - - - - - - - - - - - - - - - - - -
| WorldState>>doOneCycleFor:
| PasteUpMorph>>doOneCycle
| [] in Project class>>spawnNewProcess
| [] in BlockClosure>>newProcess
| '
|
|
|
|
| On 17 May 2009, at 14:44, Tudor Girba wrote:
|
| > Hi,
| >
| > Thanks. Applying the fix you attached improves the situation in that
|
| > I do not get the invalid utf8 error when debugging
| > Object>>doesNotUnderstand.
| >
| > However, the sources indeed appear as decompiled, and when I perform
|
| > Smalltalk condenseChanges I still get an "Invalid utf8 input
| > detected".
| >
| > Cheers,
| > Doru
| >
| >
| > On 17 May 2009, at 14:13, Nicolas Cellier wrote:
| >
| >> 2009/5/17 Tudor Girba <girba(a)iam.unibe.ch>:
| >>> Hmm, it does not work for me, as I get another invalid utf8 input
| >>> detected :).
| >>>
| >>> Here is the trace.
| >>>
| >>
| >> Sure, we don't have same change log.
| >> Either your change log has not been condensed, or I changed
| something
| >> in my image before condensing.
| >>
| >>
| >>> Cheers,
| >>> Doru
| >>>
| >>>
| >>> ---------------------
| >>> '17 May 2009 2:04:55 pm
| >>>
| >>> VM: Mac OS - intel - 1056 - Squeak3.8.1 of ''28 Aug 2006''
| [latest
| >>> update: #6747] Squeak VM 4.1.1b2
| >>> Image: Pharo0.1 [Latest update: #10306]
| >>>
| >>> SecurityManager state:
| >>> Restricted: false
| >>> FileAccess: true
| >>> SocketAccess: true
| >>> Working Dir /Users/girba/Work/Code/squeakingmoose
| >>> Trusted Dir /foobar/tooBar/forSqueak/bogus
| >>> Untrusted Dir /Users/girba/Library/Preferences/Squeak/Internet/My
|
| >>> Squeak
| >>>
| >>> BlockClosure>>ensure:
| >>> Receiver: [closure] in RemoteString>>text
| >>> Arguments and temporary variables:
| >>> aBlock: [closure] in RemoteString>>text
| >>> returnValue: nil
| >>> b: nil
| >>> Receiver''s instance variables:
| >>> outerContext: RemoteString>>text
| >>> startpc: 72
| >>> numArgs: 0
| >>>
| >>> RemoteString>>text
| >>> Receiver: a RemoteString
| >>> Arguments and temporary variables:
| >>> theFile: MultiByteFileStream: ''/Users/girba/
| >>> Work/Code/
| >>> squeakingmoose/moose.chan...etc...
| >>> Receiver''s instance variables:
| >>> sourceFileNumber: 2
| >>> filePositionHi: 10007336
| >>>
| >>> CompiledMethod>>getSourceFromFile
| >>> Receiver: a CompiledMethod (838)
| >>> Arguments and temporary variables:
| >>> position: 10007336
| >>> Receiver''s instance variables:
| >>> a CompiledMethod (838)
| >>>
| >>> [] in UndefinedObject>>DoIt
| >>> Receiver: nil
| >>> Arguments and temporary variables:
| >>> t1: a CompiledMethod (838)
| >>> Receiver''s instance variables:
| >>> nil
| >>>
| >>> Array(SequenceableCollection)>>collect:
| >>> Receiver: #(a CompiledMethod (838) a CompiledMethod (3897) a
| >>> CompiledMethod (1764) a CompiledMethod ...etc...
| >>> Arguments and temporary variables:
| >>> aBlock: [closure] in UndefinedObject>>DoIt
| >>> newCollection: #(nil nil nil nil)
| >>> index: 1
| >>> indexLimiT: 4
| >>> Receiver''s instance variables:
| >>> #(a CompiledMethod (838) a CompiledMethod (3897) a CompiledMethod
| >>> (1764) a CompiledMethod ...etc...
| >>>
| >>> UndefinedObject>>DoIt
| >>> Receiver: nil
| >>> Arguments and temporary variables:
| >>>
| >>> Receiver''s instance variables:
| >>> nil
| >>>
| >>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
| >>> Receiver: a Compiler
| >>> Arguments and temporary variables:
| >>> <<error during printing>
| >>> Receiver''s instance variables:
| >>> sourceStream: a ReadWriteStream ''view :=
| >>> MOViewRenderer new.
| >>> view nodes: (1 to:...etc...
| >>> requestor: an OBTextMorphEditorWithShout
| >>> class: UndefinedObject
| >>> category: nil
| >>> context: nil
| >>> parser: a Parser
| >>>
| >>> [] in
| OBTextMorphEditorWithShout(ParagraphEditor)>>evaluateSelection
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>> <<error during printing>
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> BlockClosure>>on:do:
| >>> Receiver: [closure] in
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>evaluateSelection
| >>> Arguments and temporary variables:
| >>> exception: OutOfScopeNotification
| >>> handlerAction: [closure] in
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>evalua...etc...
| >>> handlerActive: true
| >>> Receiver''s instance variables:
| >>> outerContext:
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>evaluateSelection
| >>> startpc: 116
| >>> numArgs: 0
| >>>
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>evaluateSelection
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>> result: nil
| >>> rcvr: nil
| >>> ctxt: nil
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>doIt
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>>
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> [] in OBTextMorphEditorWithShout(ParagraphEditor)>>doIt:
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>> <<error during printing>
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> OBTextMorphEditorWithShout
| >>> (ParagraphEditor)>>terminateAndInitializeAround:
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>> aBlock: [closure] in
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>doIt:
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>doIt:
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>> characterStream: a WriteStream ''''
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> OBTextMorphEditorWithShout
| >>> (ParagraphEditor)>>dispatchOnKeyEvent:with:
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>> keyEvent: [keystroke ''<Cmd-d>'']
| >>> typeAheadStream: a WriteStream ''''
| >>> honorCommandKeys: true
| >>> keyValue: 100
| >>> keyChar: $d
| >>> char: $d
| >>> action: #doIt:
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> OBTextMorphEditorWithShout
| >>> (TextMorphEditor)>>dispatchOnKeyEvent:with:
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>> keyEvent: [keystroke ''<Cmd-d>'']
| >>> typeAheadStream: a WriteStream ''''
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>keystroke:
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>> keyEvent: [keystroke ''<Cmd-d>'']
| >>> typeAhead: a WriteStream ''''
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> OBTextMorphEditorWithShout(TextMorphEditor)>>keystroke:
| >>> Receiver: an OBTextMorphEditorWithShout
| >>> Arguments and temporary variables:
| >>> keyEvent: [keystroke ''<Cmd-d>'']
| >>> Receiver''s instance variables:
| >>> model: an OTWorkspacePanel
| >>> paragraph: a MultiNewParagraph
| >>> startBlock: a CharacterBlock with index 338 and
| >>> rectangle
| >>> 679.91064453125@170 c...etc...
| >>> stopBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and recta...etc...
| >>> beginTypeInBlock: nil
| >>> emphasisHere: an Array(a TextColor code: Color
| black)
| >>> initialText: a Text for ''v''
| >>> selectionShowing: false
| >>> otherInterval: (139 to: 139)
| >>> lastParentLocation: nil
| >>> morph: an OBTextMorphWithShout(4064)
| >>> oldInterval: (153 to: 170)
| >>> pivotBlock: a CharacterBlock with index 142 and
| >>> character Character
| >>> cr and rect...etc...
| >>> inBackTo: false
| >>>
| >>> [] in OBTextMorphWithShout(TextMorph)>>keyStroke:
| >>> Receiver: an OBTextMorphWithShout(4064)
| >>> Arguments and temporary variables:
| >>> <<error during printing>
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 734@189
| >>> owner: a TransformMorph(3124)
| >>> submorphs: #()
| >>> fullBounds: 0@0 corner: 734@189
| >>> color: Color black
| >>> extension: a MorphExtension (3227)
| >>> borderWidth: 0
| >>> borderColor: Color black
| >>> textStyle: a TextStyle Monaco
| >>> text: a Text for ''view := MOViewRenderer new.
| >>> view nodes: (1 to: 1000) forEach:...etc...
| >>> wrapFlag: true
| >>> paragraph: a MultiNewParagraph
| >>> editor: an OBTextMorphEditorWithShout
| >>> container: nil
| >>> predecessor: nil
| >>> successor: nil
| >>> backgroundColor: nil
| >>> margins: nil
| >>> editHistory: a TextMorphCommandHistory
| >>> editView: an OBPluggableTextMorphWithShout(3699)
| >>> acceptOnCR: false
| >>>
| >>> OBTextMorphWithShout(TextMorph)>>handleInteraction:
| >>> Receiver: an OBTextMorphWithShout(4064)
| >>> Arguments and temporary variables:
| >>> interactionBlock: [closure] in
| >>> OBTextMorphWithShout(TextMorph)>>keyStroke:
| >>> oldEditor: an OBTextMorphEditorWithShout
| >>> oldParagraph: a MultiNewParagraph
| >>> oldText: a Text for ''view := MOViewRenderer
| new.
| >>> view nodes: (1 to: 1000) forEa...etc...
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 734@189
| >>> owner: a TransformMorph(3124)
| >>> submorphs: #()
| >>> fullBounds: 0@0 corner: 734@189
| >>> color: Color black
| >>> extension: a MorphExtension (3227)
| >>> borderWidth: 0
| >>> borderColor: Color black
| >>> textStyle: a TextStyle Monaco
| >>> text: a Text for ''view := MOViewRenderer new.
| >>> view nodes: (1 to: 1000) forEach:...etc...
| >>> wrapFlag: true
| >>> paragraph: a MultiNewParagraph
| >>> editor: an OBTextMorphEditorWithShout
| >>> container: nil
| >>> predecessor: nil
| >>> successor: nil
| >>> backgroundColor: nil
| >>> margins: nil
| >>> editHistory: a TextMorphCommandHistory
| >>> editView: an OBPluggableTextMorphWithShout(3699)
| >>> acceptOnCR: false
| >>>
| >>> OBTextMorphWithShout(TextMorphForEditView)>>handleInteraction:
| >>> Receiver: an OBTextMorphWithShout(4064)
| >>> Arguments and temporary variables:
| >>> interActionBlock: [closure] in
| >>> OBTextMorphWithShout(TextMorph)>>keyStroke:
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 734@189
| >>> owner: a TransformMorph(3124)
| >>> submorphs: #()
| >>> fullBounds: 0@0 corner: 734@189
| >>> color: Color black
| >>> extension: a MorphExtension (3227)
| >>> borderWidth: 0
| >>> borderColor: Color black
| >>> textStyle: a TextStyle Monaco
| >>> text: a Text for ''view := MOViewRenderer new.
| >>> view nodes: (1 to: 1000) forEach:...etc...
| >>> wrapFlag: true
| >>> paragraph: a MultiNewParagraph
| >>> editor: an OBTextMorphEditorWithShout
| >>> container: nil
| >>> predecessor: nil
| >>> successor: nil
| >>> backgroundColor: nil
| >>> margins: nil
| >>> editHistory: a TextMorphCommandHistory
| >>> editView: an OBPluggableTextMorphWithShout(3699)
| >>> acceptOnCR: false
| >>>
| >>> OBTextMorphWithShout(TextMorph)>>keyStroke:
| >>> Receiver: an OBTextMorphWithShout(4064)
| >>> Arguments and temporary variables:
| >>> evt: [keystroke ''<Cmd-d>'']
| >>> action: nil
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 734@189
| >>> owner: a TransformMorph(3124)
| >>> submorphs: #()
| >>> fullBounds: 0@0 corner: 734@189
| >>> color: Color black
| >>> extension: a MorphExtension (3227)
| >>> borderWidth: 0
| >>> borderColor: Color black
| >>> textStyle: a TextStyle Monaco
| >>> text: a Text for ''view := MOViewRenderer new.
| >>> view nodes: (1 to: 1000) forEach:...etc...
| >>> wrapFlag: true
| >>> paragraph: a MultiNewParagraph
| >>> editor: an OBTextMorphEditorWithShout
| >>> container: nil
| >>> predecessor: nil
| >>> successor: nil
| >>> backgroundColor: nil
| >>> margins: nil
| >>> editHistory: a TextMorphCommandHistory
| >>> editView: an OBPluggableTextMorphWithShout(3699)
| >>> acceptOnCR: false
| >>>
| >>> OBTextMorphWithShout(TextMorphForEditView)>>keyStroke:
| >>> Receiver: an OBTextMorphWithShout(4064)
| >>> Arguments and temporary variables:
| >>> evt: [keystroke ''<Cmd-d>'']
| >>> view: an OBPluggableTextMorphWithShout(3699)
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 734@189
| >>> owner: a TransformMorph(3124)
| >>> submorphs: #()
| >>> fullBounds: 0@0 corner: 734@189
| >>> color: Color black
| >>> extension: a MorphExtension (3227)
| >>> borderWidth: 0
| >>> borderColor: Color black
| >>> textStyle: a TextStyle Monaco
| >>> text: a Text for ''view := MOViewRenderer new.
| >>> view nodes: (1 to: 1000) forEach:...etc...
| >>> wrapFlag: true
| >>> paragraph: a MultiNewParagraph
| >>> editor: an OBTextMorphEditorWithShout
| >>> container: nil
| >>> predecessor: nil
| >>> successor: nil
| >>> backgroundColor: nil
| >>> margins: nil
| >>> editHistory: a TextMorphCommandHistory
| >>> editView: an OBPluggableTextMorphWithShout(3699)
| >>> acceptOnCR: false
| >>>
| >>> OBTextMorphWithShout(OBTextMorph)>>keyStroke:
| >>> Receiver: an OBTextMorphWithShout(4064)
| >>> Arguments and temporary variables:
| >>> anEvent: [keystroke ''<Cmd-d>'']
| >>> stringHolder: an OTWorkspacePanel
| >>> completionAllowed: false
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 734@189
| >>> owner: a TransformMorph(3124)
| >>> submorphs: #()
| >>> fullBounds: 0@0 corner: 734@189
| >>> color: Color black
| >>> extension: a MorphExtension (3227)
| >>> borderWidth: 0
| >>> borderColor: Color black
| >>> textStyle: a TextStyle Monaco
| >>> text: a Text for ''view := MOViewRenderer new.
| >>> view nodes: (1 to: 1000) forEach:...etc...
| >>> wrapFlag: true
| >>> paragraph: a MultiNewParagraph
| >>> editor: an OBTextMorphEditorWithShout
| >>> container: nil
| >>> predecessor: nil
| >>> successor: nil
| >>> backgroundColor: nil
| >>> margins: nil
| >>> editHistory: a TextMorphCommandHistory
| >>> editView: an OBPluggableTextMorphWithShout(3699)
| >>> acceptOnCR: false
| >>>
| >>> OBTextMorphWithShout(TextMorph)>>handleKeystroke:
| >>> Receiver: an OBTextMorphWithShout(4064)
| >>> Arguments and temporary variables:
| >>> anEvent: [keystroke ''<Cmd-d>'']
| >>> pasteUp: nil
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 734@189
| >>> owner: a TransformMorph(3124)
| >>> submorphs: #()
| >>> fullBounds: 0@0 corner: 734@189
| >>> color: Color black
| >>> extension: a MorphExtension (3227)
| >>> borderWidth: 0
| >>> borderColor: Color black
| >>> textStyle: a TextStyle Monaco
| >>> text: a Text for ''view := MOViewRenderer new.
| >>> view nodes: (1 to: 1000) forEach:...etc...
| >>> wrapFlag: true
| >>> paragraph: a MultiNewParagraph
| >>> editor: an OBTextMorphEditorWithShout
| >>> container: nil
| >>> predecessor: nil
| >>> successor: nil
| >>> backgroundColor: nil
| >>> margins: nil
| >>> editHistory: a TextMorphCommandHistory
| >>> editView: an OBPluggableTextMorphWithShout(3699)
| >>> acceptOnCR: false
| >>>
| >>> KeyboardEvent>>sentTo:
| >>> Receiver: [keystroke ''<Cmd-d>'']
| >>> Arguments and temporary variables:
| >>> anObject: an OBTextMorphWithShout(4064)
| >>> Receiver''s instance variables:
| >>> timeStamp: 542561
| >>> source: a HandMorph(3216)
| >>> windowIndex: nil
| >>> type: #keystroke
| >>> buttons: 64
| >>> position: 150@201
| >>> handler: nil
| >>> wasHandled: true
| >>> keyValue: 100
| >>> charCode: 100
| >>> scanCode: 2
| >>>
| >>> OBTextMorphWithShout(Morph)>>handleEvent:
| >>> Receiver: an OBTextMorphWithShout(4064)
| >>> Arguments and temporary variables:
| >>> anEvent: [keystroke ''<Cmd-d>'']
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 734@189
| >>> owner: a TransformMorph(3124)
| >>> submorphs: #()
| >>> fullBounds: 0@0 corner: 734@189
| >>> color: Color black
| >>> extension: a MorphExtension (3227)
| >>> borderWidth: 0
| >>> borderColor: Color black
| >>> textStyle: a TextStyle Monaco
| >>> text: a Text for ''view := MOViewRenderer new.
| >>> view nodes: (1 to: 1000) forEach:...etc...
| >>> wrapFlag: true
| >>> paragraph: a MultiNewParagraph
| >>> editor: an OBTextMorphEditorWithShout
| >>> container: nil
| >>> predecessor: nil
| >>> successor: nil
| >>> backgroundColor: nil
| >>> margins: nil
| >>> editHistory: a TextMorphCommandHistory
| >>> editView: an OBPluggableTextMorphWithShout(3699)
| >>> acceptOnCR: false
| >>>
| >>> OBTextMorphWithShout(Morph)>>handleFocusEvent:
| >>> Receiver: an OBTextMorphWithShout(4064)
| >>> Arguments and temporary variables:
| >>> anEvent: [keystroke ''<Cmd-d>'']
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 734@189
| >>> owner: a TransformMorph(3124)
| >>> submorphs: #()
| >>> fullBounds: 0@0 corner: 734@189
| >>> color: Color black
| >>> extension: a MorphExtension (3227)
| >>> borderWidth: 0
| >>> borderColor: Color black
| >>> textStyle: a TextStyle Monaco
| >>> text: a Text for ''view := MOViewRenderer new.
| >>> view nodes: (1 to: 1000) forEach:...etc...
| >>> wrapFlag: true
| >>> paragraph: a MultiNewParagraph
| >>> editor: an OBTextMorphEditorWithShout
| >>> container: nil
| >>> predecessor: nil
| >>> successor: nil
| >>> backgroundColor: nil
| >>> margins: nil
| >>> editHistory: a TextMorphCommandHistory
| >>> editView: an OBPluggableTextMorphWithShout(3699)
| >>> acceptOnCR: false
| >>>
| >>> [] in HandMorph>>sendFocusEvent:to:clear:
| >>> Receiver: a HandMorph(3216)
| >>> Arguments and temporary variables:
| >>> <<error during printing>
| >>> Receiver''s instance variables:
| >>> bounds: 1141@484 corner: 1157@500
| >>> owner: a PasteUpMorph(1622) [world]
| >>> submorphs: #()
| >>> fullBounds: 1141@484 corner: 1157@500
| >>> color: Color blue
| >>> extension: a MorphExtension (539) [eventHandler =
|
| >>> an EventHandler]
| >>> mouseFocus: nil
| >>> keyboardFocus: nil
| >>> eventListeners: nil
| >>> mouseListeners: nil
| >>> keyboardListeners: nil
| >>> mouseClickState: nil
| >>> mouseOverHandler: a MouseOverHandler
| >>> lastMouseEvent: [1141@484 mouseUp 697775 nil]
| >>> targetOffset: 249@67
| >>> damageRecorder: a DamageRecorder
| >>> cacheCanvas: nil
| >>> cachedCanvasHasHoles: true
| >>> temporaryCursor: nil
| >>> temporaryCursorOffset: nil
| >>> hardwareCursor: nil
| >>> hasChanged: true
| >>> savedPatch: nil
| >>> userInitials: ''''
| >>> lastEventBuffer: #(1 697775 1141 484 0 0 0 1)
| >>> lastKeyScanCode: 125
| >>> combinedChar: nil
| >>>
| >>> [] in PasteUpMorph>>becomeActiveDuring:
| >>> Receiver: a PasteUpMorph(1622) [world]
| >>> Arguments and temporary variables:
| >>> <<error during printing>
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 1424@807
| >>> owner: nil
| >>> submorphs: an Array(a TaskbarMorph(3095) a
| >>> SystemWindow(1875) a
| >>> SystemWindow(13...etc...
| >>> fullBounds: nil
| >>> color: (Color r: 0.972 g: 0.972 b: 0.976)
| >>> extension: a MorphExtension (2543) [eventHandler =
|
| >>> an
| >>> EventHandler] [other: (...etc...
| >>> borderWidth: 0
| >>> borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
| >>> presenter: a Presenter (1246)
| >>> model: a MorphicModel(1926)
| >>> cursor: 1
| >>> padding: 3
| >>> backgroundMorph: nil
| >>> isPartsBin: nil
| >>> autoLineLayout: false
| >>> indicateCursor: nil
| >>> resizeToFit: nil
| >>> wantsMouseOverHalos: nil
| >>> worldState: a WorldState
| >>> griddingOn: nil
| >>>
| >>> BlockClosure>>on:do:
| >>> Receiver: [closure] in PasteUpMorph>>becomeActiveDuring:
| >>> Arguments and temporary variables:
| >>> exception: Error
| >>> handlerAction: [closure] in
| >>> PasteUpMorph>>becomeActiveDuring:
| >>> handlerActive: false
| >>> Receiver''s instance variables:
| >>> outerContext: PasteUpMorph>>becomeActiveDuring:
| >>> startpc: 67
| >>> numArgs: 0
| >>>
| >>> PasteUpMorph>>becomeActiveDuring:
| >>> Receiver: a PasteUpMorph(1622) [world]
| >>> Arguments and temporary variables:
| >>> aBlock: [closure] in
| >>> HandMorph>>sendFocusEvent:to:clear:
| >>> priorWorld: a PasteUpMorph(1622) [world]
| >>> priorHand: a HandMorph(3216)
| >>> priorEvent: nil
| >>> Receiver''s instance variables:
| >>> bounds: 0@0 corner: 1424@807
| >>> owner: nil
| >>> submorphs: an Array(a TaskbarMorph(3095) a
| >>> SystemWindow(1875) a
| >>> SystemWindow(13...etc...
| >>> fullBounds: nil
| >>> color: (Color r: 0.972 g: 0.972 b: 0.976)
| >>> extension: a MorphExtension (2543) [eventHandler =
|
| >>> an
| >>> EventHandler] [other: (...etc...
| >>> borderWidth: 0
| >>> borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
| >>> presenter: a Presenter (1246)
| >>> model: a MorphicModel(1926)
| >>> cursor: 1
| >>> padding: 3
| >>> backgroundMorph: nil
| >>> isPartsBin: nil
| >>> autoLineLayout: false
| >>> indicateCursor: nil
| >>> resizeToFit: nil
| >>> wantsMouseOverHalos: nil
| >>> worldState: a WorldState
| >>> griddingOn: nil
| >>>
| >>> HandMorph>>sendFocusEvent:to:clear:
| >>> Receiver: a HandMorph(3216)
| >>> Arguments and temporary variables:
| >>> anEvent: [keystroke ''<Cmd-d>'']
| >>> focusHolder: an OBTextMorphWithShout(4064)
| >>> aBlock: [closure] in
| >>> HandMorph>>sendKeyboardEvent:
| >>> w: a PasteUpMorph(1622) [world]
| >>> result: #(nil)
| >>> Receiver''s instance variables:
| >>> bounds: 1141@484 corner: 1157@500
| >>> owner: a PasteUpMorph(1622) [world]
| >>> submorphs: #()
| >>> fullBounds: 1141@484 corner: 1157@500
| >>> color: Color blue
| >>> extension: a MorphExtension (539) [eventHandler =
|
| >>> an EventHandler]
| >>> mouseFocus: nil
| >>> keyboardFocus: nil
| >>> eventListeners: nil
| >>> mouseListeners: nil
| >>> keyboardListeners: nil
| >>> mouseClickState: nil
| >>> mouseOverHandler: a MouseOverHandler
| >>> lastMouseEvent: [1141@484 mouseUp 697775 nil]
| >>> targetOffset: 249@67
| >>> damageRecorder: a DamageRecorder
| >>> cacheCanvas: nil
| >>> cachedCanvasHasHoles: true
| >>> temporaryCursor: nil
| >>> temporaryCursorOffset: nil
| >>> hardwareCursor: nil
| >>> hasChanged: true
| >>> savedPatch: nil
| >>> userInitials: ''''
| >>> lastEventBuffer: #(1 697775 1141 484 0 0 0 1)
| >>> lastKeyScanCode: 125
| >>> combinedChar: nil
| >>>
| >>> HandMorph>>sendEvent:focus:clear:
| >>> Receiver: a HandMorph(3216)
| >>> Arguments and temporary variables:
| >>> anEvent: [keystroke ''<Cmd-d>'']
| >>> focusHolder: an OBTextMorphWithShout(4064)
| >>> aBlock: [closure] in
| >>> HandMorph>>sendKeyboardEvent:
| >>> result: nil
| >>> Receiver''s instance variables:
| >>> bounds: 1141@484 corner: 1157@500
| >>> owner: a PasteUpMorph(1622) [world]
| >>> submorphs: #()
| >>> fullBounds: 1141@484 corner: 1157@500
| >>> color: Color blue
| >>> extension: a MorphExtension (539) [eventHandler =
|
| >>> an EventHandler]
| >>> mouseFocus: nil
| >>> keyboardFocus: nil
| >>> eventListeners: nil
| >>> mouseListeners: nil
| >>> keyboardListeners: nil
| >>> mouseClickState: nil
| >>> mouseOverHandler: a MouseOverHandler
| >>> lastMouseEvent: [1141@484 mouseUp 697775 nil]
| >>> targetOffset: 249@67
| >>> damageRecorder: a DamageRecorder
| >>> cacheCanvas: nil
| >>> cachedCanvasHasHoles: true
| >>> temporaryCursor: nil
| >>> temporaryCursorOffset: nil
| >>> hardwareCursor: nil
| >>> hasChanged: true
| >>> savedPatch: nil
| >>> userInitials: ''''
| >>> lastEventBuffer: #(1 697775 1141 484 0 0 0 1)
| >>> lastKeyScanCode: 125
| >>> combinedChar: nil
| >>>
| >>> HandMorph>>sendKeyboardEvent:
| >>> Receiver: a HandMorph(3216)
| >>> Arguments and temporary variables:
| >>> anEvent: [keystroke ''<Cmd-d>'']
| >>> Receiver''s instance variables:
| >>> bounds: 1141@484 corner: 1157@500
| >>> owner: a PasteUpMorph(1622) [world]
| >>> submorphs: #()
| >>> fullBounds: 1141@484 corner: 1157@500
| >>> color: Color blue
| >>> extension: a MorphExtension (539) [eventHandler =
|
| >>> an EventHandler]
| >>> mouseFocus: nil
| >>> keyboardFocus: nil
| >>> eventListeners: nil
| >>> mouseListeners: nil
| >>> keyboardListeners: nil
| >>> mouseClickState: nil
| >>> mouseOverHandler: a MouseOverHandler
| >>> lastMouseEvent: [1141@484 mouseUp 697775 nil]
| >>> targetOffset: 249@67
| >>> damageRecorder: a DamageRecorder
| >>> cacheCanvas: nil
| >>> cachedCanvasHasHoles: true
| >>> temporaryCursor: nil
| >>> temporaryCursorOffset: nil
| >>> hardwareCursor: nil
| >>> hasChanged: true
| >>> savedPatch: nil
| >>> userInitials: ''''
| >>> lastEventBuffer: #(1 697775 1141 484 0 0 0 1)
| >>> lastKeyScanCode: 125
| >>> combinedChar: nil
| >>>
| >>> HandMorph>>handleEvent:
| >>> Receiver: a HandMorph(3216)
| >>> Arguments and temporary variables:
| >>> anEvent: [keystroke ''<Cmd-d>'']
| >>> evt: [keystroke ''<Cmd-d>'']
| >>> ofs: nil
| >>> Receiver''s instance variables:
| >>> bounds: 1141@484 corner: 1157@500
| >>> owner: a PasteUpMorph(1622) [world]
| >>> submorphs: #()
| >>> fullBounds: 1141@484 corner: 1157@500
| >>> color: Color blue
| >>> extension: a MorphExtension (539) [eventHandler =
|
| >>> an EventHandler]
| >>> mouseFocus: nil
| >>> keyboardFocus: nil
| >>> eventListeners: nil
| >>> mouseListeners: nil
| >>> keyboardListeners: nil
| >>> mouseClickState: nil
| >>> mouseOverHandler: a MouseOverHandler
| >>> lastMouseEvent: [1141@484 mouseUp 697775 nil]
| >>> targetOffset: 249@67
| >>> damageRecorder: a DamageRecorder
| >>> cacheCanvas: nil
| >>> cachedCanvasHasHoles: true
| >>> temporaryCursor: nil
| >>> temporaryCursorOffset: nil
| >>> hardwareCursor: nil
| >>> hasChanged: true
| >>> savedPatch: nil
| >>> userInitials: ''''
| >>> lastEventBuffer: #(1 697775 1141 484 0 0 0 1)
| >>> lastKeyScanCode: 125
| >>> combinedChar: nil
| >>>
| >>> HandMorph>>processEvents
| >>> Receiver: a HandMorph(3216)
| >>> Arguments and temporary variables:
| >>> evt: [keystroke ''<Cmd-d>'']
| >>> evtBuf: #(2 542561 100 0 8 100 0 1)
| >>> type: 2
| >>> hadAny: true
| >>> Receiver''s instance variables:
| >>> bounds: 1141@484 corner: 1157@500
| >>> owner: a PasteUpMorph(1622) [world]
| >>> submorphs: #()
| >>> fullBounds: 1141@484 corner: 1157@500
| >>> color: Color blue
| >>> extension: a MorphExtension (539) [eventHandler =
|
| >>> an EventHandler]
| >>> mouseFocus: nil
| >>> keyboardFocus: nil
| >>> eventListeners: nil
| >>> mouseListeners: nil
| >>> keyboardListeners: nil
| >>> mouseClickState: nil
| >>> mouseOverHandler: a MouseOverHandler
| >>> lastMouseEvent: [1141@484 mouseUp 697775 nil]
| >>> targetOffset: 249@67
| >>> damageRecorder: a DamageRecorder
| >>> cacheCanvas: nil
| >>> cachedCanvasHasHoles: true
| >>> temporaryCursor: nil
| >>> temporaryCursorOffset: nil
| >>> hardwareCursor: nil
| >>> hasChanged: true
| >>> savedPatch: nil
| >>> userInitials: ''''
| >>> lastEventBuffer: #(1 697775 1141 484 0 0 0 1)
| >>> lastKeyScanCode: 125
| >>> combinedChar: nil
| >>>
| >>> [] in WorldState>>doOneCycleNowFor:
| >>> Receiver: a WorldState
| >>> Arguments and temporary variables:
| >>> <<error during printing>
| >>> Receiver''s instance variables:
| >>> hands: an Array(a HandMorph(3216))
| >>> viewBox: 0@0 corner: 1424@807
| >>> canvas: a FormCanvas on:
| >>> DisplayScreen(1424x807x32)
| >>> damageRecorder: a DamageRecorder
| >>> stepList: a Heap(StepMessage(#stepAt: -> a
| >>> SystemWindow(1169))(a
| >>> SystemWindow(1...etc...
| >>> lastStepTime: 697763
| >>> lastStepMessage: nil
| >>> lastCycleTime: 697783
| >>> commandHistory: a CommandHistory
| >>> alarms: a Heap()
| >>> lastAlarmTime: 697763
| >>>
| >>> Array(SequenceableCollection)>>do:
| >>> Receiver: an Array(a HandMorph(3216))
| >>> Arguments and temporary variables:
| >>> aBlock: [closure] in
| >>> WorldState>>doOneCycleNowFor:
| >>> index: 1
| >>> indexLimiT: 1
| >>> Receiver''s instance variables:
| >>> an Array(a HandMorph(3216))
| >>>
| >>>
| >>> --- The full stack ---
| >>> BlockClosure>>ensure:
| >>> RemoteString>>text
| >>> CompiledMethod>>getSourceFromFile
| >>> [] in UndefinedObject>>DoIt
| >>> Array(SequenceableCollection)>>collect:
| >>> UndefinedObject>>DoIt
| >>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
| >>> [] in
| OBTextMorphEditorWithShout(ParagraphEditor)>>evaluateSelection
| >>> BlockClosure>>on:do:
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>evaluateSelection
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>doIt
| >>> [] in OBTextMorphEditorWithShout(ParagraphEditor)>>doIt:
| >>> OBTextMorphEditorWithShout
| >>> (ParagraphEditor)>>terminateAndInitializeAround:
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>doIt:
| >>> OBTextMorphEditorWithShout
| >>> (ParagraphEditor)>>dispatchOnKeyEvent:with:
| >>> OBTextMorphEditorWithShout
| >>> (TextMorphEditor)>>dispatchOnKeyEvent:with:
| >>> OBTextMorphEditorWithShout(ParagraphEditor)>>keystroke:
| >>> OBTextMorphEditorWithShout(TextMorphEditor)>>keystroke:
| >>> [] in OBTextMorphWithShout(TextMorph)>>keyStroke:
| >>> OBTextMorphWithShout(TextMorph)>>handleInteraction:
| >>> OBTextMorphWithShout(TextMorphForEditView)>>handleInteraction:
| >>> OBTextMorphWithShout(TextMorph)>>keyStroke:
| >>> OBTextMorphWithShout(TextMorphForEditView)>>keyStroke:
| >>> OBTextMorphWithShout(OBTextMorph)>>keyStroke:
| >>> OBTextMorphWithShout(TextMorph)>>handleKeystroke:
| >>> KeyboardEvent>>sentTo:
| >>> OBTextMorphWithShout(Morph)>>handleEvent:
| >>> OBTextMorphWithShout(Morph)>>handleFocusEvent:
| >>> [] in HandMorph>>sendFocusEvent:to:clear:
| >>> [] in PasteUpMorph>>becomeActiveDuring:
| >>> BlockClosure>>on:do:
| >>> PasteUpMorph>>becomeActiveDuring:
| >>> HandMorph>>sendFocusEvent:to:clear:
| >>> HandMorph>>sendEvent:focus:clear:
| >>> HandMorph>>sendKeyboardEvent:
| >>> HandMorph>>handleEvent:
| >>> HandMorph>>processEvents
| >>> [] in WorldState>>doOneCycleNowFor:
| >>> Array(SequenceableCollection)>>do:
| >>> - - - - - - - - - - - - - - -
| >>> - - - - - - - - - - - - - - - - - -
| >>> WorldState>>handsDo:
| >>> WorldState>>doOneCycleNowFor:
| >>> WorldState>>doOneCycleFor:
| >>> PasteUpMorph>>doOneCycle
| >>> [] in Project class>>spawnNewProcess
| >>> [] in BlockClosure>>newProcess
| >>> '
| >>>
| >>>
| >>>
| >>>
| >>>
| >>> On 17 May 2009, at 13:59, Nicolas Cellier wrote:
| >>>
| >>>> OK,
| >>>>
| >>>> {Object>>#doesNotUnderstand:.
| >>>> SystemNavigation>>#browseMethodsWhoseNamesContain:.
| >>>> Utilities class>>#changeStampPerSe.
| >>>> Utilities class>>#methodsWithInitials:} collect: [:e | e
| >>>> getSourceFromFile].
| >>>>
| >>>> does not fail for me, BUT all these sources look like
| >>>> decompileString.
| >>>> I guess this is dating from the condenseChanges that occured in
| >>>> #update10298
| >>>> Change log prior to this update should have the problem.
| >>>>
| >>>> Nicolas
| >>>>
| >>>> 2009/5/17 Tudor Girba <girba(a)iam.unibe.ch>:
| >>>>> Hi,
| >>>>>
| >>>>> I ran the snippet you sent on both 304cl and 306cl and I get
| the
| >>>>> following list:
| >>>>>
| >>>>> Object->#doesNotUnderstand:
| >>>>> SystemNavigation->#browseMethodsWhoseNamesContain:
| >>>>> Utilities class->#changeStampPerSe
| >>>>> Utilities class->#methodsWithInitials:
| >>>>>
| >>>>> Indeed, most of the annoyances are due to the
| >>>>> Object>>doesNotUnderstand: because when I get a DNU I am stuck
|
| >>>>> (and I
| >>>>> feel like in Java :)).
| >>>>>
| >>>>> I am not sure I understand if there is a fix to the problem.
| >>>>>
| >>>>> Cheers,
| >>>>> Doru
| >>>>>
| >>>>>
| >>>>>
| >>>>> On 17 May 2009, at 12:06, Nicolas Cellier wrote:
| >>>>>
| >>>>>> There's something weird... If you hit var (UndefinedObject)
| >>>>>> doesNotUnderstand: #value: that means there were a problem the
|
| >>>>>> first
| >>>>>> time.
| >>>>>>
| >>>>>> Unfortunately, due to bug in MethodContext tempNames, we don't
|
| >>>>>> know
| >>>>>> the class and selector guilty.
| >>>>>> From the set of selectors I can see this is Object.
| >>>>>> From the source file position, I cannot say anything because I
| do
| >>>>>> not
| >>>>>> have same change log history (sorry, own image).
| >>>>>>
| >>>>>> You could try
| >>>>>> (SourceFiles at: 2) readOnlyCopy position: 10007336; nextChunk
| >>>>>>
| >>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
| >>>>>>> sorry for not checking either.
| >>>>>>> When I run this code I indeed do not have a problem on
| 10306cl
| >>>>>>>
| >>>>>>> stef
| >>>>>>>
| >>>>>>> On May 17, 2009, at 11:36 AM, Nicolas Cellier wrote:
| >>>>>>>
| >>>>>>>> Sure, a key stroke error, it's bar value:, not var value:,
| >>>>>>>> This @!* workspace takes it as global without a warning....
| >>>>>>>>
| >>>>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
| >>>>>>>>> Nicolas
| >>>>>>>>>
| >>>>>>>>> when I run your script on the license looking for image
| >>>>>>>>> I got using 10306cl
| >>>>>>>>>
| >>>>>>>>> I get the following error:
| >>>>>>>>>
| >>>>>>>>>
| >>>>>>>>>
| >>>>>>>>> VM: Mac OS - intel - 1056 - Squeak3.8.1 of '28 Aug
| >>>>>>>>> 2006' [latest
| >>>>>>>>> update: #6747] Squeak VM 4.1.1b2
| >>>>>>>>> Image: Pharo0.1 [Latest update: #10306]
| >>>>>>>>>
| >>>>>>>>> SecurityManager state:
| >>>>>>>>> Restricted: false
| >>>>>>>>> FileAccess: true
| >>>>>>>>> SocketAccess: true
| >>>>>>>>> Working Dir /Data/squeak4.0-relicenseTools/history
| >>>>>>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
| >>>>>>>>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/
| >>>>>>>>> Internet/My
| >>>>>>>>> Squeak
| >>>>>>>>>
| >>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #value:
| >>>>>>>>> Receiver: nil
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> <<error during printing>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> nil
| >>>>>>>>>
| >>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
| >>>>>>>>> Receiver: nil
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> <<error during printing>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> nil
| >>>>>>>>>
| >>>>>>>>> BlockClosure>>valueWithPossibleArgs:
| >>>>>>>>> Receiver: [closure] in [] in [] in [] in
| UndefinedObject>>DoIt
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> anArray: an Array('Error: Invalid utf8 input
| >>>>>>>>> detected' an
| >>>>>>>>> UTF8TextConverter)
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> outerContext: [] in [] in [] in
| UndefinedObject>>DoIt
| >>>>>>>>> startpc: 183
| >>>>>>>>> numArgs: 0
| >>>>>>>>>
| >>>>>>>>> [] in BlockClosure>>ifError:
| >>>>>>>>> Receiver: [closure] in [] in [] in [] in
| UndefinedObject>>DoIt
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> errorHandlerBlock: Error: Invalid utf8 input
| >>>>>>>>> detected
| >>>>>>>>> ex: [closure] in [] in [] in [] in
| >>>>>>>>> UndefinedObject>>DoIt
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> outerContext: [] in [] in [] in
| UndefinedObject>>DoIt
| >>>>>>>>> startpc: 171
| >>>>>>>>> numArgs: 0
| >>>>>>>>>
| >>>>>>>>> BlockClosure>>valueWithPossibleArgs:
| >>>>>>>>> Receiver: [closure] in BlockClosure>>ifError:
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> anArray: an Array(Error: Invalid utf8 input
| >>>>>>>>> detected)
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> outerContext: BlockClosure>>ifError:
| >>>>>>>>> startpc: 40
| >>>>>>>>> numArgs: 1
| >>>>>>>>>
| >>>>>>>>> [] in MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> Receiver: BlockClosure>>on:do:
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> <<error during printing>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> sender: BlockClosure>>ifError:
| >>>>>>>>> pc: 17
| >>>>>>>>> stackp: 3
| >>>>>>>>> method: a CompiledMethod (2306)
| >>>>>>>>> closureOrNil: nil
| >>>>>>>>> receiver: [closure] in [] in [] in [] in
| >>>>>>>>> UndefinedObject>>DoIt
| >>>>>>>>>
| >>>>>>>>> BlockClosure>>ensure:
| >>>>>>>>> Receiver: [closure] in
| >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aBlock: [closure] in
| >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> returnValue: nil
| >>>>>>>>> b: nil
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> outerContext:
| >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> startpc: 90
| >>>>>>>>> numArgs: 0
| >>>>>>>>>
| >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> Receiver: BlockClosure>>on:do:
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> exception: Error: Invalid utf8 input detected
| >>>>>>>>> val: nil
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> sender: BlockClosure>>ifError:
| >>>>>>>>> pc: 17
| >>>>>>>>> stackp: 3
| >>>>>>>>> method: a CompiledMethod (2306)
| >>>>>>>>> closureOrNil: nil
| >>>>>>>>> receiver: [closure] in [] in [] in [] in
| >>>>>>>>> UndefinedObject>>DoIt
| >>>>>>>>>
| >>>>>>>>> Error(Exception)>>signal
| >>>>>>>>> Receiver: Error: Invalid utf8 input detected
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> messageText: 'Invalid utf8 input detected'
| >>>>>>>>> tag: nil
| >>>>>>>>> signalContext: Error(Exception)>>signal
| >>>>>>>>> handlerContext: BlockClosure>>on:do:
| >>>>>>>>> outerContext: nil
| >>>>>>>>>
| >>>>>>>>> Error(Exception)>>signal:
| >>>>>>>>> Receiver: Error: Invalid utf8 input detected
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> signalerText: 'Invalid utf8 input detected'
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> messageText: 'Invalid utf8 input detected'
| >>>>>>>>> tag: nil
| >>>>>>>>> signalContext: Error(Exception)>>signal
| >>>>>>>>> handlerContext: BlockClosure>>on:do:
| >>>>>>>>> outerContext: nil
| >>>>>>>>>
| >>>>>>>>> UTF8TextConverter(Object)>>error:
| >>>>>>>>> Receiver: an UTF8TextConverter
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aString: 'Invalid utf8 input detected'
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> an UTF8TextConverter
| >>>>>>>>>
| >>>>>>>>> UTF8TextConverter>>errorMalformedInput
| >>>>>>>>> Receiver: an UTF8TextConverter
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> an UTF8TextConverter
| >>>>>>>>>
| >>>>>>>>> UTF8TextConverter>>nextFromStream:
| >>>>>>>>> Receiver: an UTF8TextConverter
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aStream: MultiByteFileStream: '/Data/squeak4.0-
| >>>>>>>>> relicenseTools/
| >>>>>>>>> history/Pharo0.1C...etc...
| >>>>>>>>> character1: $
| >>>>>>>>> value1: 160
| >>>>>>>>> character2: Character tab
| >>>>>>>>> value2: 9
| >>>>>>>>> unicode: nil
| >>>>>>>>> character3: Character tab
| >>>>>>>>> value3: 9
| >>>>>>>>> character4: nil
| >>>>>>>>> value4: nil
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> an UTF8TextConverter
| >>>>>>>>>
| >>>>>>>>> MultiByteFileStream>>next
| >>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
| >>>>>>>>> relicenseTools/
| >>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> char: nil
| >>>>>>>>> secondChar: nil
| >>>>>>>>> state: nil
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>>
| >>>>>>>>>
| >>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
| >>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
| >>>>>>>>> relicenseTools/
| >>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> terminator: $!
| >>>>>>>>> out: a WriteStream 'doesNotUnderstand: aMessage
| >>>>>>>>> "Handle the fact that there ...etc...
| >>>>>>>>> ch: Character cr
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>>
| >>>>>>>>>
| >>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
| >>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
| >>>>>>>>> relicenseTools/
| >>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> string: nil
| >>>>>>>>> runsRaw: nil
| >>>>>>>>> strm: nil
| >>>>>>>>> runs: nil
| >>>>>>>>> peek: nil
| >>>>>>>>> pos: nil
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>>
| >>>>>>>>>
| >>>>>>>>> [] in RemoteString>>text
| >>>>>>>>> Receiver: a RemoteString
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> theFile: MultiByteFileStream: '/Data/squeak4.0-
| >>>>>>>>> relicenseTools/
| >>>>>>>>> history/Pharo0.1C...etc...
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> sourceFileNumber: 2
| >>>>>>>>> filePositionHi: 10007336
| >>>>>>>>>
| >>>>>>>>> BlockClosure>>ensure:
| >>>>>>>>> Receiver: [closure] in RemoteString>>text
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aBlock: [closure] in RemoteString>>text
| >>>>>>>>> returnValue: nil
| >>>>>>>>> b: nil
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> outerContext: RemoteString>>text
| >>>>>>>>> startpc: 72
| >>>>>>>>> numArgs: 0
| >>>>>>>>>
| >>>>>>>>> RemoteString>>text
| >>>>>>>>> Receiver: a RemoteString
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> theFile: MultiByteFileStream: '/Data/squeak4.0-
| >>>>>>>>> relicenseTools/
| >>>>>>>>> history/Pharo0.1C...etc...
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> sourceFileNumber: 2
| >>>>>>>>> filePositionHi: 10007336
| >>>>>>>>>
| >>>>>>>>> CompiledMethod>>getSourceFromFile
| >>>>>>>>> Receiver: a CompiledMethod (838)
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> position: 10007336
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> a CompiledMethod (838)
| >>>>>>>>>
| >>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
| >>>>>>>>> Receiver: nil
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> <<error during printing>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> nil
| >>>>>>>>>
| >>>>>>>>> BlockClosure>>on:do:
| >>>>>>>>> Receiver: [closure] in [] in [] in [] in
| UndefinedObject>>DoIt
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> exception: Error
| >>>>>>>>> handlerAction: [closure] in BlockClosure>>ifError:
| >>>>>>>>> handlerActive: false
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> outerContext: [] in [] in [] in
| UndefinedObject>>DoIt
| >>>>>>>>> startpc: 171
| >>>>>>>>> numArgs: 0
| >>>>>>>>>
| >>>>>>>>> BlockClosure>>ifError:
| >>>>>>>>> Receiver: [closure] in [] in [] in [] in
| UndefinedObject>>DoIt
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> errorHandlerBlock: [closure] in [] in [] in [] in
| >>>>>>>>> UndefinedObject>>DoIt
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> outerContext: [] in [] in [] in
| UndefinedObject>>DoIt
| >>>>>>>>> startpc: 171
| >>>>>>>>> numArgs: 0
| >>>>>>>>>
| >>>>>>>>> [] in [] in [] in UndefinedObject>>DoIt
| >>>>>>>>> Receiver: nil
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> <<error during printing>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> nil
| >>>>>>>>>
| >>>>>>>>> IdentitySet(Set)>>do:
| >>>>>>>>> Receiver: an IdentitySet(#name #inheritsFromAnyIn: #asOop
| >>>>>>>>> #isWebBrowser #storeOnStream: #wantsDroppe...etc...
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aBlock: [closure] in [] in [] in
| >>>>>>>>> UndefinedObject>>DoIt
| >>>>>>>>> index: 394
| >>>>>>>>> each: #doesNotUnderstand:
| >>>>>>>>> indexLimiT: 498
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> tally: 373
| >>>>>>>>> array: #(nil nil #name nil #inheritsFromAnyIn:
| >>>>>>>>> #asOop nil nil
| >>>>>>>>> #isWebBrowser nil...etc...
| >>>>>>>>>
| >>>>>>>>> [] in [] in UndefinedObject>>DoIt
| >>>>>>>>> Receiver: nil
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> <<error during printing>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> nil
| >>>>>>>>>
| >>>>>>>>> [] in ProtoObject class(Behavior)>>allSubclassesDoGently:
| >>>>>>>>> Receiver: ProtoObject
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aBlock: Object
| >>>>>>>>> cl: [closure] in [] in UndefinedObject>>DoIt
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> superclass: nil
| >>>>>>>>> methodDict: a MethodDictionary(#'=='->a
| >>>>>>>>> CompiledMethod (602)
| >>>>>>>>> #become:->a Compil...etc...
| >>>>>>>>> format: 2
| >>>>>>>>> instanceVariables: nil
| >>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
| >>>>>>>>> tryNamedPrimitive: tryNamed...etc...
| >>>>>>>>> subclasses: {Object . ObjectOut .
| >>>>>>>>> ImageSegmentRootStub .
| >>>>>>>>> MessageCatcher . TestC...etc...
| >>>>>>>>> name: #ProtoObject
| >>>>>>>>> classPool: nil
| >>>>>>>>> sharedPools: nil
| >>>>>>>>> environment: nil
| >>>>>>>>> category: #'Kernel-Objects'
| >>>>>>>>> traitComposition: nil
| >>>>>>>>> localSelectors: nil
| >>>>>>>>>
| >>>>>>>>> Array(SequenceableCollection)>>do:
| >>>>>>>>> Receiver: {Object . ObjectOut . ImageSegmentRootStub .
| >>>>>>>>> MessageCatcher . TestCoverage}
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aBlock: [closure] in ProtoObject
| >>>>>>>>> class(Behavior)>>allSubclassesDoGently:
| >>>>>>>>> index: 1
| >>>>>>>>> indexLimiT: 5
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> {Object . ObjectOut . ImageSegmentRootStub . MessageCatcher
| .
| >>>>>>>>> TestCoverage}
| >>>>>>>>>
| >>>>>>>>> ProtoObject class(Class)>>subclassesDoGently:
| >>>>>>>>> Receiver: ProtoObject
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aBlock: [closure] in ProtoObject
| >>>>>>>>> class(Behavior)>>allSubclassesDoGently:
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> superclass: nil
| >>>>>>>>> methodDict: a MethodDictionary(#'=='->a
| >>>>>>>>> CompiledMethod (602)
| >>>>>>>>> #become:->a Compil...etc...
| >>>>>>>>> format: 2
| >>>>>>>>> instanceVariables: nil
| >>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
| >>>>>>>>> tryNamedPrimitive: tryNamed...etc...
| >>>>>>>>> subclasses: {Object . ObjectOut .
| >>>>>>>>> ImageSegmentRootStub .
| >>>>>>>>> MessageCatcher . TestC...etc...
| >>>>>>>>> name: #ProtoObject
| >>>>>>>>> classPool: nil
| >>>>>>>>> sharedPools: nil
| >>>>>>>>> environment: nil
| >>>>>>>>> category: #'Kernel-Objects'
| >>>>>>>>> traitComposition: nil
| >>>>>>>>> localSelectors: nil
| >>>>>>>>>
| >>>>>>>>> ProtoObject class(Behavior)>>allSubclassesDoGently:
| >>>>>>>>> Receiver: ProtoObject
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aBlock: [closure] in [] in
| >>>>>>>>> UndefinedObject>>DoIt
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> superclass: nil
| >>>>>>>>> methodDict: a MethodDictionary(#'=='->a
| >>>>>>>>> CompiledMethod (602)
| >>>>>>>>> #become:->a Compil...etc...
| >>>>>>>>> format: 2
| >>>>>>>>> instanceVariables: nil
| >>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
| >>>>>>>>> tryNamedPrimitive: tryNamed...etc...
| >>>>>>>>> subclasses: {Object . ObjectOut .
| >>>>>>>>> ImageSegmentRootStub .
| >>>>>>>>> MessageCatcher . TestC...etc...
| >>>>>>>>> name: #ProtoObject
| >>>>>>>>> classPool: nil
| >>>>>>>>> sharedPools: nil
| >>>>>>>>> environment: nil
| >>>>>>>>> category: #'Kernel-Objects'
| >>>>>>>>> traitComposition: nil
| >>>>>>>>> localSelectors: nil
| >>>>>>>>>
| >>>>>>>>> SystemNavigation>>allBehaviorsDo:
| >>>>>>>>> Receiver: a SystemNavigation
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aBlock: [closure] in [] in
| >>>>>>>>> UndefinedObject>>DoIt
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> browserClass: nil
| >>>>>>>>> hierarchyBrowserClass: nil
| >>>>>>>>>
| >>>>>>>>> [] in UndefinedObject>>DoIt
| >>>>>>>>> Receiver: nil
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> <<error during printing>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> nil
| >>>>>>>>>
| >>>>>>>>> [] in ProgressInitiationException>>defaultAction
| >>>>>>>>> Receiver: ProgressInitiationException
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> progress: [closure] in
| >>>>>>>>> SystemProgressMorph>>label:min:max:
| >>>>>>>>> result: #(nil)
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> messageText: nil
| >>>>>>>>> tag: nil
| >>>>>>>>> signalContext:
| >>>>>>>>> ProgressInitiationException(Exception)>>signal
| >>>>>>>>> handlerContext: nil
| >>>>>>>>> outerContext: nil
| >>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
| >>>>>>>>> maxVal: 3874
| >>>>>>>>> minVal: 0
| >>>>>>>>> aPoint: 840@306
| >>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
| >>>>>>>>>
| >>>>>>>>> BlockClosure>>ensure:
| >>>>>>>>> Receiver: [closure] in
| >>>>>>>>> ProgressInitiationException>>defaultAction
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> aBlock: [closure] in
| >>>>>>>>> ProgressInitiationException>>defaultAction
| >>>>>>>>> returnValue: nil
| >>>>>>>>> b: nil
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> outerContext:
| >>>>>>>>> ProgressInitiationException>>defaultAction
| >>>>>>>>> startpc: 49
| >>>>>>>>> numArgs: 0
| >>>>>>>>>
| >>>>>>>>> ProgressInitiationException>>defaultAction
| >>>>>>>>> Receiver: ProgressInitiationException
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> progress: [closure] in
| >>>>>>>>> SystemProgressMorph>>label:min:max:
| >>>>>>>>> result: #(nil)
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> messageText: nil
| >>>>>>>>> tag: nil
| >>>>>>>>> signalContext:
| >>>>>>>>> ProgressInitiationException(Exception)>>signal
| >>>>>>>>> handlerContext: nil
| >>>>>>>>> outerContext: nil
| >>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
| >>>>>>>>> maxVal: 3874
| >>>>>>>>> minVal: 0
| >>>>>>>>> aPoint: 840@306
| >>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
| >>>>>>>>>
| >>>>>>>>> UndefinedObject>>handleSignal:
| >>>>>>>>> Receiver: nil
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> exception: ProgressInitiationException
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> nil
| >>>>>>>>>
| >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> Receiver: BlockClosure>>on:do:
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> exception: ProgressInitiationException
| >>>>>>>>> val: nil
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> sender: PasteUpMorph>>becomeActiveDuring:
| >>>>>>>>> pc: 17
| >>>>>>>>> stackp: 3
| >>>>>>>>> method: a CompiledMethod (2306)
| >>>>>>>>> closureOrNil: nil
| >>>>>>>>> receiver: [closure] in
| >>>>>>>>> PasteUpMorph>>becomeActiveDuring:
| >>>>>>>>>
| >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> Receiver: BlockClosure>>on:do:
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>> exception: ProgressInitiationException
| >>>>>>>>> val: nil
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> sender:
| >>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
| >>>>>>>>> pc: 17
| >>>>>>>>> stackp: 3
| >>>>>>>>> method: a CompiledMethod (2306)
| >>>>>>>>> closureOrNil: nil
| >>>>>>>>> receiver: [closure] in
| >>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
| >>>>>>>>>
| >>>>>>>>> ProgressInitiationException(Exception)>>signal
| >>>>>>>>> Receiver: ProgressInitiationException
| >>>>>>>>> Arguments and temporary variables:
| >>>>>>>>>
| >>>>>>>>> Receiver's instance variables:
| >>>>>>>>> messageText: nil
| >>>>>>>>> tag: nil
| >>>>>>>>> signalContext:
| >>>>>>>>> ProgressInitiationException(Exception)>>signal
| >>>>>>>>> handlerContext: nil
| >>>>>>>>> outerContext: nil
| >>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
| >>>>>>>>> maxVal: 3874
| >>>>>>>>> minVal: 0
| >>>>>>>>> aPoint: 840@306
| >>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
| >>>>>>>>>
| >>>>>>>>>
| >>>>>>>>> --- The full stack ---
| >>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #value:
| >>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
| >>>>>>>>> BlockClosure>>valueWithPossibleArgs:
| >>>>>>>>> [] in BlockClosure>>ifError:
| >>>>>>>>> BlockClosure>>valueWithPossibleArgs:
| >>>>>>>>> [] in MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> BlockClosure>>ensure:
| >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> Error(Exception)>>signal
| >>>>>>>>> Error(Exception)>>signal:
| >>>>>>>>> UTF8TextConverter(Object)>>error:
| >>>>>>>>> UTF8TextConverter>>errorMalformedInput
| >>>>>>>>> UTF8TextConverter>>nextFromStream:
| >>>>>>>>> MultiByteFileStream>>next
| >>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
| >>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
| >>>>>>>>> [] in RemoteString>>text
| >>>>>>>>> BlockClosure>>ensure:
| >>>>>>>>> RemoteString>>text
| >>>>>>>>> CompiledMethod>>getSourceFromFile
| >>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
| >>>>>>>>> BlockClosure>>on:do:
| >>>>>>>>> BlockClosure>>ifError:
| >>>>>>>>> [] in [] in [] in UndefinedObject>>DoIt
| >>>>>>>>> IdentitySet(Set)>>do:
| >>>>>>>>> [] in [] in UndefinedObject>>DoIt
| >>>>>>>>> [] in ProtoObject class(Behavior)>>allSubclassesDoGently:
| >>>>>>>>> Array(SequenceableCollection)>>do:
| >>>>>>>>> ProtoObject class(Class)>>subclassesDoGently:
| >>>>>>>>> ProtoObject class(Behavior)>>allSubclassesDoGently:
| >>>>>>>>> SystemNavigation>>allBehaviorsDo:
| >>>>>>>>> [] in UndefinedObject>>DoIt
| >>>>>>>>> [] in ProgressInitiationException>>defaultAction
| >>>>>>>>> BlockClosure>>ensure:
| >>>>>>>>> ProgressInitiationException>>defaultAction
| >>>>>>>>> UndefinedObject>>handleSignal:
| >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
| >>>>>>>>> ProgressInitiationException(Exception)>>signal
| >>>>>>>>> - - - - - - - - - - - - - - -
| >>>>>>>>> - - - - - - - - - - - - - - - - - -
| >>>>>>>>> ProgressInitiationException>>display:at:from:to:during:
| >>>>>>>>> ProgressInitiationException
| class>>display:at:from:to:during:
| >>>>>>>>> ByteString(String)>>displayProgressAt:from:to:during:
| >>>>>>>>> UndefinedObject>>DoIt
| >>>>>>>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
| >>>>>>>>> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
| >>>>>>>>> BlockClosure>>on:do:
| >>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
| >>>>>>>>> TextMorphEditor(ParagraphEditor)>>doIt
| >>>>>>>>> [] in TextMorphEditor(ParagraphEditor)>>doIt:
| >>>>>>>>> TextMorphEditor
| >>>>>>>>> (ParagraphEditor)>>terminateAndInitializeAround:
| >>>>>>>>> TextMorphEditor(ParagraphEditor)>>doIt:
| >>>>>>>>> TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
| >>>>>>>>> TextMorphEditor>>dispatchOnKeyEvent:with:
| >>>>>>>>> TextMorphEditor(ParagraphEditor)>>keystroke:
| >>>>>>>>> TextMorphEditor>>keystroke:
| >>>>>>>>> [] in TextMorphForEditView(TextMorph)>>keyStroke:
| >>>>>>>>> TextMorphForEditView(TextMorph)>>handleInteraction:
| >>>>>>>>> TextMorphForEditView>>handleInteraction:
| >>>>>>>>> TextMorphForEditView(Te
|
| [Message truncated]
3
2
Hi folks!
I am calling a external shared library with FFI. This library does some
puts(""); or printf(); In Linux, I open Squeak from command line and I can
see the outputs of puts() and printf() in the console where I started
Squeak. The problem is in Windows. I tried opening Squeak from cmd but
didn't work. Nothing is shown in the console. Is there a way of doing this ?
Thanks a lot in advance,
Mariano
3
7
May 17, 2009
>
> http://code.google.com/p/pharo/issues/detail?id=814
> Issue 814:
> Image hangs on Desktop Color Change
>
>
>
1
0
I'm curious why the instance variables "seconds offset jdn nanos"
are left in the shared pool class "ChronologyConstants".
There is no accessor and the bindings are represented by class
variables anyway (as the comment in SharedPool states).
It's interesting that these instance variables are the same
as in DateAndTime class. Squeak looks the same.
When I remove all instance-vars in ChronologyConstants the
tests will still run - so can we remove them?
Anyone able to enlighten me?
Thx
T.
--
Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + Telefonanschluss für nur 17,95 Euro/mtl.!* http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a
2
1
Steve,
I've attached a method that does what I think you're taking about.
To try it out do the following:
(Morph allSubInstances select: [:ea | ea submorphs size > 0 ]) chasingInspect
Then poke around in the inspector. To see the full complement of Morph fields click in the '1' button...
The method extends the OTInspector and OTChasingInspector and doesn't affect the Explorer. The OmniBrowser tools are much easier to extend.
If you think this is useful, I'll include the extension in the standard OT release.
Dale
----- "Steve Wirts" <stevewirts(a)gmail.com> wrote:
| Dale,
|
| I'd like to provide a new checkbox on a menu item for the Explorer
| tool,
| only if the root is a Morph.
| The checkbox (if enabled) would set the explorer tree to be only
| child
| morphs, not all properties.
|
| Then a slightly different menu that would include flash, explore,
| insepect,
| browse hierarchy.
|
| I'm sure I could figure something out and getting it working but
| probably
| wouldn't do it properly the first go round.
| Any hints at where to start would be usefull.
|
| Thanks.
| steve
|
| On Fri, May 15, 2009 at 4:44 PM, Dale Henrichs
| <dale.henrichs(a)gemstone.com>wrote:
|
| >
| > ----- "Steve Wirts" <stevewirts(a)gmail.com> wrote:
| >
| > | Stef,
| > |
| > | Only submorphs, the gui hierarchy are shown, this is a really
| useful
| > | capability when trying to understand deeply nested complex gui
| > | structures.
| > | I suppose we could put a toggle button on a menu option on
| explorer to
| > | turn
| > | on differernt tree-paths to show as the sub-children.
| > |
| > | I will try to do that.
| > |
| > | thanks
| > | steve
| >
| > Steve,
| >
| > Not sure if this applies or not. But the OT inspectors (regular
| inspector
| > and chasing inspector) allow for one to provide custom inspectors on
| a class
| > by class basis (even the ability to provide multiple views)...
| >
| > If that's what you're getting at, I can give you more information
| about
| > what it takes to extend the inspector.
| >
| > Dale
| >
| > _______________________________________________
| > Pharo-project mailing list
| > Pharo-project(a)lists.gforge.inria.fr
| > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
| >
1
0
[Pharo-project] [ANN] OCompletion improves the accuracy of eCompletion
by Romain Robbes May 16, 2009
by Romain Robbes May 16, 2009
May 16, 2009
Dear Pharo users,
OCompletion is an extension to ECompletion. Like ECompletion, it
completes
the names of methods as you write them in order to save you some
typing.
The O in OCompletion stands for Omniscient and Omnipresent.
OCompletion is much more accurate than ECompletion. We tested it on the
development history of several projects
(see http://www.inf.unisi.ch/phd/robbes/papers/ASE2008-completion.pdf)
Across several hundred thousands tests of the completion, OCompletion's
algorithm scores a 70 (out of 100), while the eCompletion's algorithm
scores a 12. To achieve this level of accuracy, it learns from your
usage
of squeak and proposes to you methods you are more likely to use.
OCompletion shows a small, non-instrusive completion menu with potential
completions as you type method names. You don't need to call it
explicitely
with tab. Just press tab to insert a match, or the down arrow to
select the next
match.
To install it on Squeak or Pharo, simply execute the following line in
your image:
Installer squeaksource project: 'OCompletion'; install: 'OCLoader'
Cheers,
Romain
--
Romain Robbes
http://www.inf.unisi.ch/phd/robbes
9
21
Just checked in as http://www.squeaksource.com/PharoInbox/SUnitGUI-onierstrasz.38.mcz
Now you can declare classes to exclude from coverage analysis by
defining #classNamesNotUnderTest on the class side of your test to
return an array of names of those classes.
http://scg.unibe.ch/wiki/faq/pharofaq/howToCheckTestCoverage
- on
3
4
Sorry for bloating your mailbox but in case
someone is in the need for a splash screen
for presenting Pharo you will find one attached.
Otherwise delete this mail. This is also in
preparation of a Win32 setup bundle.
On Win32 you can enable the splash using the
Squeak/Pharo.ini file (see [1])
Thx
T.
[1] http://www.squeakvm.org/win32/settings.html
--
Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + Telefonanschluss für nur 17,95 Euro/mtl.!* http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a
3
3
- Issue 812: [FIX] Debugger fix from Eliot Miranda
http://code.google.com/p/pharo/issues/detail?id=812
- issue 808: Preference alternativeBrowseIt to settings refactoring
http://code.google.com/p/pharo/issues/detail?id=808
- Issue 813: Preference to settings refactoring:
#balloonHelpInMessageLists case
Stef
3
4
New Pharo with OCompletion
http://pharo-project.org/download
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Lambdas are relegated to relative obscurity until Java makes them
popular by not having them." James Iry
1
0