Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
August 2009
- 77 participants
- 1342 messages
[Pharo-project] [BUG]NewInspector(Object)>>doesNotUnderstand: #extent:
by roel.wuyts@gmail.com
I opened a Pharo1.0-10418-BETAdev09.08.2 image, opened a class browser,
right-clicked the title bar of the System Browser, and selected Inspect.
An inspector opens (successfully), as well as a DNU that NewInsecptor
does not understand the message 'extent:'.
Browsing around a bit shows that it expects that SystemBrowser expects
that it opens a morph and sends the 'etent:' message after opening the
inspector (note that it would be better to first resize before to avoid
redrawing and flickering).
23 August 2009 11:36:56 am
VM: Mac OS - intel - 1058 - Squeak3.8.1 of '28 Aug 2006' [latest update:
#6747] Squeak VM 4.2.1b1
Image: Pharo1.0beta [Latest update: #10418]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/rowuyts/Documents/Development/Pharo1
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/rowuyts/Library/Preferences/Squeak/Internet/My
Squeak
NewInspector(Object)>>doesNotUnderstand: #extent:
Receiver: a NewInspector
Arguments and temporary variables:
aMessage: extent: 300@200
exception: MessageNotUnderstood: NewInspector>>extent:
resumeValue: nil
Receiver's instance variables:
dependents: a DependentsArray(a PluggableSystemWindow(3989) a
PluggableTreeMorp...etc...
contents: ''
selectedObject: a NIObjectNode
roots: an OrderedCollection(a NIObjectNode)
window: a PluggableSystemWindow(3989)
showOnlyCurrentPath: false
selectedObjectForPath: nil
SystemWindow(Morph)>>inspectInMorphic:
Receiver: a SystemWindow(316)
Arguments and temporary variables:
evt: [270@256 mouseUp 124582 nil]
Receiver's instance variables:
bounds: 9@44 corner: 713@515
owner: a PasteUpMorph(1622) [world]
submorphs: an Array(a WindowEdgeGripMorph(3602) a
WindowEdgeGripMorph(3160) a W...etc...
fullBounds: 9@44 corner: 714@516
color: (Color r: 0.816 g: 0.812 b: 0.812)
extension: a MorphExtension (756) [other: (layoutPolicy -> a
ProportionalLayou...etc...
borderWidth: 1
borderColor: Color lightGray
model: an OBSystemBrowser
slotName: nil
open: false
labelString: 'System Browser'
stripes: an Array(a RectangleMorph(3370) a RectangleMorph(3816))
label: a LabelMorph(131)'System Browser'
closeBox: a MultistateButtonMorph(1456)
collapseBox: a MultistateButtonMorph(1402)
activeOnlyOnTop: true
paneMorphs: an Array(an OBGroupingMorph(1376) an OBGroupingMorph(60))
paneRects: nil
collapsedFrame: nil
fullFrame: 9@44 corner: 713@515
isCollapsed: false
menuBox: an IconicButton(2697)
mustNotClose: false
labelWidgetAllowance: 98
updatablePanes: #()
allowReframeHandles: true
labelArea: an AlignmentMorph(556)
expandBox: a MultistateButtonMorph(1563)
SystemWindow(Morph)>>inspectAt:event:
Receiver: a SystemWindow(316)
Arguments and temporary variables:
aPoint: 204@63
evt: [270@256 mouseUp 124582 nil]
morphs: an Array(an AlignmentMorph(556) a SystemWindow(316))
target: a SystemWindow(316)
Receiver's instance variables:
bounds: 9@44 corner: 713@515
owner: a PasteUpMorph(1622) [world]
submorphs: an Array(a WindowEdgeGripMorph(3602) a
WindowEdgeGripMorph(3160) a W...etc...
fullBounds: 9@44 corner: 714@516
color: (Color r: 0.816 g: 0.812 b: 0.812)
extension: a MorphExtension (756) [other: (layoutPolicy -> a
ProportionalLayou...etc...
borderWidth: 1
borderColor: Color lightGray
model: an OBSystemBrowser
slotName: nil
open: false
labelString: 'System Browser'
stripes: an Array(a RectangleMorph(3370) a RectangleMorph(3816))
label: a LabelMorph(131)'System Browser'
closeBox: a MultistateButtonMorph(1456)
collapseBox: a MultistateButtonMorph(1402)
activeOnlyOnTop: true
paneMorphs: an Array(an OBGroupingMorph(1376) an OBGroupingMorph(60))
paneRects: nil
collapsedFrame: nil
fullFrame: 9@44 corner: 713@515
isCollapsed: false
menuBox: an IconicButton(2697)
mustNotClose: false
labelWidgetAllowance: 98
updatablePanes: #()
allowReframeHandles: true
labelArea: an AlignmentMorph(556)
expandBox: a MultistateButtonMorph(1563)
[] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
Receiver: a ToggleMenuItemMorph(2793)'inspect'
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 206@251 corner: 364@269
owner: a MenuMorph(3977)
submorphs: #()
fullBounds: nil
color: Color black
extension: a MorphExtension (832) [other: (layoutProperties -> a
LayoutPropert...etc...
font: a LogicalFont
familyName: DejaVu Sans
emphasis: nil
pointSize: 10
rea...etc...
emphasis: 0
contents: 'inspect'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a SystemWindow(316)
selector: #inspectAt:event:
arguments: {204@63}
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
BlockClosure>>ensure:
Receiver: [closure] in
ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
Arguments and temporary variables:
aBlock: [closure] in CursorWithMask(Cursor)>>showWhile:
returnValue: nil
b: nil
Receiver's instance variables:
outerContext: ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
startpc: 136
numArgs: 0
CursorWithMask(Cursor)>>showWhile:
Receiver: ((CursorWithMask
extent: 16@16
depth: 1
fromArray: #(
2r0
2r10000000000000000000000...etc...
Arguments and temporary variables:
aBlock: [closure] in
ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
oldcursor: ((CursorWithMask
extent: 16@16
depth: 1
fromArray: #(
2r0
2r1...etc...
Receiver's instance variables:
bits: a Bitmap of length 16
width: 16
height: 16
depth: 1
offset: -1@-1
maskForm: Form(16x16x1)
ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
Receiver: a ToggleMenuItemMorph(2793)'inspect'
Arguments and temporary variables:
evt: [270@256 mouseUp 124582 nil]
w: a PasteUpMorph(1622) [world]
selArgCount: #(2)
Receiver's instance variables:
bounds: 206@251 corner: 364@269
owner: a MenuMorph(3977)
submorphs: #()
fullBounds: nil
color: Color black
extension: a MorphExtension (832) [other: (layoutProperties -> a
LayoutPropert...etc...
font: a LogicalFont
familyName: DejaVu Sans
emphasis: nil
pointSize: 10
rea...etc...
emphasis: 0
contents: 'inspect'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a SystemWindow(316)
selector: #inspectAt:event:
arguments: {204@63}
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
Receiver: a ToggleMenuItemMorph(2793)'inspect'
Arguments and temporary variables:
evt: [270@256 mouseUp 124582 nil]
Receiver's instance variables:
bounds: 206@251 corner: 364@269
owner: a MenuMorph(3977)
submorphs: #()
fullBounds: nil
color: Color black
extension: a MorphExtension (832) [other: (layoutProperties -> a
LayoutPropert...etc...
font: a LogicalFont
familyName: DejaVu Sans
emphasis: nil
pointSize: 10
rea...etc...
emphasis: 0
contents: 'inspect'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a SystemWindow(316)
selector: #inspectAt:event:
arguments: {204@63}
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
Receiver: a ToggleMenuItemMorph(2793)'inspect'
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
Receiver's instance variables:
bounds: 206@251 corner: 364@269
owner: a MenuMorph(3977)
submorphs: #()
fullBounds: nil
color: Color black
extension: a MorphExtension (832) [other: (layoutProperties -> a
LayoutPropert...etc...
font: a LogicalFont
familyName: DejaVu Sans
emphasis: nil
pointSize: 10
rea...etc...
emphasis: 0
contents: 'inspect'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a SystemWindow(316)
selector: #inspectAt:event:
arguments: {204@63}
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
MouseButtonEvent>>sentTo:
Receiver: [270@256 mouseUp 124582 nil]
Arguments and temporary variables:
anObject: a ToggleMenuItemMorph(2793)'inspect'
Receiver's instance variables:
timeStamp: 124582
source: a HandMorph(3216)
windowIndex: nil
type: #mouseUp
buttons: 0
position: 270@256
handler: nil
wasHandled: true
whichButton: 4
ToggleMenuItemMorph(Morph)>>handleEvent:
Receiver: a ToggleMenuItemMorph(2793)'inspect'
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
Receiver's instance variables:
bounds: 206@251 corner: 364@269
owner: a MenuMorph(3977)
submorphs: #()
fullBounds: nil
color: Color black
extension: a MorphExtension (832) [other: (layoutProperties -> a
LayoutPropert...etc...
font: a LogicalFont
familyName: DejaVu Sans
emphasis: nil
pointSize: 10
rea...etc...
emphasis: 0
contents: 'inspect'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a SystemWindow(316)
selector: #inspectAt:event:
arguments: {204@63}
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
MorphicEventDispatcher>>dispatchDefault:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
aMorph: a ToggleMenuItemMorph(2793)'inspect'
localEvt: nil
index: 1
child: nil
morphs: #()
inside: true
Receiver's instance variables:
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
aMorph: a ToggleMenuItemMorph(2793)'inspect'
Receiver's instance variables:
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
ToggleMenuItemMorph(Morph)>>processEvent:using:
Receiver: a ToggleMenuItemMorph(2793)'inspect'
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
defaultDispatcher: a MorphicEventDispatcher
Receiver's instance variables:
bounds: 206@251 corner: 364@269
owner: a MenuMorph(3977)
submorphs: #()
fullBounds: nil
color: Color black
extension: a MorphExtension (832) [other: (layoutProperties -> a
LayoutPropert...etc...
font: a LogicalFont
familyName: DejaVu Sans
emphasis: nil
pointSize: 10
rea...etc...
emphasis: 0
contents: 'inspect'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a SystemWindow(316)
selector: #inspectAt:event:
arguments: {204@63}
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
MorphicEventDispatcher>>dispatchDefault:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
aMorph: a MenuMorph(3977)
localEvt: [270@256 mouseUp 124582 nil]
index: 20
child: a ToggleMenuItemMorph(2793)'inspect'
morphs: an Array(an AlignmentMorph(187) a
ToggleMenuItemMorph(2760)'grab' a Tog...etc...
inside: false
Receiver's instance variables:
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
aMorph: a MenuMorph(3977)
Receiver's instance variables:
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
MenuMorph(Morph)>>processEvent:using:
Receiver: a MenuMorph(3977)
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
defaultDispatcher: a MorphicEventDispatcher
Receiver's instance variables:
bounds: 202@33 corner: 368@399
owner: nil
submorphs: an Array(an AlignmentMorph(187) a
ToggleMenuItemMorph(2760)'grab' a ...etc...
fullBounds: nil
color: (Color r: 0.871 g: 0.871 b: 0.871)
extension: a MorphExtension (2794) [other: (layoutPolicy -> a
TableLayout) (la...etc...
borderWidth: 1
borderColor: Color gray
defaultTarget: a SystemWindow(316)
selectedItem: a ToggleMenuItemMorph(2793)'inspect'
stayUp: false
popUpOwner: nil
activeSubMenu: nil
activatorDockingBar: nil
MenuMorph(Morph)>>processEvent:
Receiver: a MenuMorph(3977)
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
Receiver's instance variables:
bounds: 202@33 corner: 368@399
owner: nil
submorphs: an Array(an AlignmentMorph(187) a
ToggleMenuItemMorph(2760)'grab' a ...etc...
fullBounds: nil
color: (Color r: 0.871 g: 0.871 b: 0.871)
extension: a MorphExtension (2794) [other: (layoutPolicy -> a
TableLayout) (la...etc...
borderWidth: 1
borderColor: Color gray
defaultTarget: a SystemWindow(316)
selectedItem: a ToggleMenuItemMorph(2793)'inspect'
stayUp: false
popUpOwner: nil
activeSubMenu: nil
activatorDockingBar: nil
MenuMorph>>handleFocusEvent:
Receiver: a MenuMorph(3977)
Arguments and temporary variables:
evt: [270@256 mouseUp 124582 nil]
Receiver's instance variables:
bounds: 202@33 corner: 368@399
owner: nil
submorphs: an Array(an AlignmentMorph(187) a
ToggleMenuItemMorph(2760)'grab' a ...etc...
fullBounds: nil
color: (Color r: 0.871 g: 0.871 b: 0.871)
extension: a MorphExtension (2794) [other: (layoutPolicy -> a
TableLayout) (la...etc...
borderWidth: 1
borderColor: Color gray
defaultTarget: a SystemWindow(316)
selectedItem: a ToggleMenuItemMorph(2793)'inspect'
stayUp: false
popUpOwner: nil
activeSubMenu: nil
activatorDockingBar: nil
[] in HandMorph>>sendFocusEvent:to:clear:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 690@509 corner: 706@525
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 690@509 corner: 706@525
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: [690@509 mouseUp 805735 nil]
targetOffset: 29@14
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 805735 690 509 0 0 0 1)
lastKeyScanCode: 46
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: 976@638
owner: nil
submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(1204) a
SystemWindow(31...etc...
fullBounds: 0@0 corner: 976@638
color: (Color r: 0.97 g: 0.98 b: 1.0)
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: [270@256 mouseOver red nil nil]
Receiver's instance variables:
bounds: 0@0 corner: 976@638
owner: nil
submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(1204) a
SystemWindow(31...etc...
fullBounds: 0@0 corner: 976@638
color: (Color r: 0.97 g: 0.98 b: 1.0)
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: [270@256 mouseUp 124582 nil]
focusHolder: a MenuMorph(3977)
aBlock: [closure] in HandMorph>>sendMouseEvent:
w: a PasteUpMorph(1622) [world]
result: #(nil)
Receiver's instance variables:
bounds: 690@509 corner: 706@525
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 690@509 corner: 706@525
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: [690@509 mouseUp 805735 nil]
targetOffset: 29@14
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 805735 690 509 0 0 0 1)
lastKeyScanCode: 46
combinedChar: nil
HandMorph>>sendEvent:focus:clear:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
focusHolder: a MenuMorph(3977)
aBlock: [closure] in HandMorph>>sendMouseEvent:
result: nil
Receiver's instance variables:
bounds: 690@509 corner: 706@525
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 690@509 corner: 706@525
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: [690@509 mouseUp 805735 nil]
targetOffset: 29@14
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 805735 690 509 0 0 0 1)
lastKeyScanCode: 46
combinedChar: nil
HandMorph>>sendMouseEvent:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
Receiver's instance variables:
bounds: 690@509 corner: 706@525
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 690@509 corner: 706@525
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: [690@509 mouseUp 805735 nil]
targetOffset: 29@14
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 805735 690 509 0 0 0 1)
lastKeyScanCode: 46
combinedChar: nil
HandMorph>>handleEvent:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
anEvent: [270@256 mouseUp 124582 nil]
evt: [270@256 mouseUp 124582 nil]
ofs: nil
Receiver's instance variables:
bounds: 690@509 corner: 706@525
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 690@509 corner: 706@525
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: [690@509 mouseUp 805735 nil]
targetOffset: 29@14
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 805735 690 509 0 0 0 1)
lastKeyScanCode: 46
combinedChar: nil
HandMorph>>processEvents
Receiver: a HandMorph(3216)
Arguments and temporary variables:
evt: [270@256 mouseUp 124582 nil]
evtBuf: #(1 124582 270 256 0 0 0 1)
type: 1
hadAny: false
Receiver's instance variables:
bounds: 690@509 corner: 706@525
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 690@509 corner: 706@525
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: [690@509 mouseUp 805735 nil]
targetOffset: 29@14
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 805735 690 509 0 0 0 1)
lastKeyScanCode: 46
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: 976@638
canvas: a FormCanvas on: DisplayScreen(976x638x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> 3PButton(#toggleSelected
1603))(3PButt...etc...
lastStepTime: 805807
lastStepMessage: nil
lastCycleTime: 805754
commandHistory: a CommandHistory
alarms: a Heap()
lastAlarmTime: 805807
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: 976@638
canvas: a FormCanvas on: DisplayScreen(976x638x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> 3PButton(#toggleSelected
1603))(3PButt...etc...
lastStepTime: 805807
lastStepMessage: nil
lastCycleTime: 805754
commandHistory: a CommandHistory
alarms: a Heap()
lastAlarmTime: 805807
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: 976@638
canvas: a FormCanvas on: DisplayScreen(976x638x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> 3PButton(#toggleSelected
1603))(3PButt...etc...
lastStepTime: 805807
lastStepMessage: nil
lastCycleTime: 805754
commandHistory: a CommandHistory
alarms: a Heap()
lastAlarmTime: 805807
WorldState>>doOneCycleFor:
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: 976@638
canvas: a FormCanvas on: DisplayScreen(976x638x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> 3PButton(#toggleSelected
1603))(3PButt...etc...
lastStepTime: 805807
lastStepMessage: nil
lastCycleTime: 805754
commandHistory: a CommandHistory
alarms: a Heap()
lastAlarmTime: 805807
PasteUpMorph>>doOneCycle
Receiver: a PasteUpMorph(1622) [world]
Arguments and temporary variables:
Receiver's instance variables:
bounds: 0@0 corner: 976@638
owner: nil
submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(1204) a
SystemWindow(31...etc...
fullBounds: 0@0 corner: 976@638
color: (Color r: 0.97 g: 0.98 b: 1.0)
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
[] in Project class>>spawnNewProcess
Receiver: Project
Arguments and temporary variables:
Receiver's instance variables:
superclass: Model
methodDict: a MethodDictionary(size 167)
format: 172
instanceVariables: #('world' 'changeSet' 'transcript' 'parentProject'
'previous...etc...
organization: ('*Polymorph-Widgets'
assureTaskbarPresenceMatchesPreference crea...etc...
subclasses: nil
name: #Project
classPool: a Dictionary(#AllProjects->an OrderedCollection(a
Project(Unnamed)) ...etc...
sharedPools: nil
environment: Smalltalk
category: #'System-Support'
traitComposition: {}
localSelectors: nil
[] in BlockClosure>>newProcess
Receiver: [closure] in Project class>>spawnNewProcess
Arguments and temporary variables:
Receiver's instance variables:
outerContext: Project class>>spawnNewProcess
startpc: 53
numArgs: 0
--- The full stack ---
NewInspector(Object)>>doesNotUnderstand: #extent:
SystemWindow(Morph)>>inspectInMorphic:
SystemWindow(Morph)>>inspectAt:event:
[] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
BlockClosure>>ensure:
CursorWithMask(Cursor)>>showWhile:
ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
ToggleMenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
ToggleMenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>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
Aug. 23, 2009
[Pharo-project] VMMakerTool >>DoesNotUnderstand ModalFolderSelector
by jean baptiste arnaud
Hi,
I would like use VMMaker on Pharo.
I resolve all dependency for the VMMaker Package :
-FFI,(ScriptLoader loadFFI.)
-Speech find in "Unstable Squeak" package from squeaksource
-Finally i install VMMaker from squeaksource
VMMaker seems work correctly but not this UI. When load the VMMakerTool, i
have a error does not understand ModalFolderSelector.
--
Arnaud Jean Baptiste
Aug. 23, 2009
[Pharo-project] Offscreen drawing...
by Lawson English
Is there a way to render into an offscreen buffer where the actual host
hardware's address is specified? I realize that at the level of
implementing the hooks for the VM, this must be possible, but is it
[easily] possible to redirect the memory space that Squeak renders to at
runtime, rather than during creation of the VM?
I'm trying to understand how one might use the shared memory space of
Second LIfe's media plugin to be the drawing region of a regular Squeak
Smalltalk workspace/drawing window. Being able to have fully active
Smalltalk-on-a-prim in SL would rock, especially if you could have a
choice of whether to work directly with the in-world rendering or with
the normal Squeak window's rendering.
The plugin can live in a separate process and communicate higher level
events via sockets and share memory for rendering so its not necessary
to have a fully standalone plugin. From the SL side, you could
conceivably have a regular Squeak development environment with the added
ability to use a specified hardware buffer instead/in addition to the
regular Squeak window. Sorta like what seaside sorta does, but without
the overhead of rendering via html.
Lawson
Aug. 23, 2009
Re: [Pharo-project] [BUG]OpenDBXMacOSX(Object)>>error:
by François Tanguy
Thanks Adrian for that.
Mariano : I let you know if I run into problems
Bye
François
Le Aug 22, 2009 à 9:54 PM, Adrian Lienhard a écrit :
> I added an entry to http://www.pharo-project.org/documentation/faq
>
> Cheers,
> Adrian
>
> On Aug 22, 2009, at 20:08 , Mariano Martinez Peck wrote:
>
>> 2009/8/22 François Tanguy <francois.tanguy(a)gmail.com>
>>
>>> Thank you Mariano for your answer.
>>> I think this information deserves to be in "Pharo FAQ".
>>>
>>
>> Thanks François for you comment and suggestion, I really appreciate
>> it.
>> However, I am sorry but I am not completely agree. SqueakDBX has
>> nothing to
>> do with Pharo. SqueakDBX is an external package that loads not only
>> in Pharo
>> but also in Squeak, Cuis or whatever. The problem you had is
>> SqueakDBX
>> related, not Pharo. In addition, if you see our website:
>> http://wiki.squeak.org/squeak/6052 in the FAQ you will see that your
>> problem was already there.
>>
>> In summary, it is not Pharo, but SqueakDBX. And in order to use it,
>> you must
>> read the wiki :)
>>
>> Perhaps what we can do is to add a link in the Pharo FAQ that says
>> "if you
>> want to use SqueakDBX or GlorpDBX read the following link
>> http://wiki.squeak.org/squeak/6052"
>>
>> What do you think?
>>
>> François: let me know if it worked for you or how can I help you
>> with it ;)
>>
>> Best,
>>
>> Mariano
>>
>>
>>> Bye
>>>
>>> François
>>>
>>> Le Aug 21, 2009 à 3:23 PM, Mariano Martinez Peck a écrit :
>>>
>>>
>>>
>>> On Fri, Aug 21, 2009 at 8:16 AM, François Tanguy <
>>> francois.tanguy(a)gmail.com> wrote:
>>>
>>>> Hello,
>>>>
>>>> it may be a noobie question but I tried to execute the GlorpTest
>>>> and
>>>> it failed in one case.
>>>>
>>>> If the DBXDriver is used, the tests failed. (See the stacktrace
>>>> below)
>>>> | tr |
>>>> SqueakDatabaseAccessor DefaultDriver: SqueakDBXDriver.
>>>> tr := TestRunner new.
>>>> ToolBuilder open: tr.
>>>> tr categoryAt: (tr categoryList indexOf: 'GlorpTest') put: true;
>>>> selectAllClasses; runAll.
>>>>
>>>> But the native driver is used, the tests passed.
>>>> | tr |
>>>> SqueakDatabaseAccessor DefaultDriver: NativePostgresDriver.
>>>> tr := TestRunner new.
>>>> ToolBuilder open: tr.
>>>> tr categoryAt: (tr categoryList indexOf: 'GlorpTest') put: true;
>>>> selectAllClasses; runAll.
>>>>
>>>> I thought the DBXDriver could be used to manage postgresql
>>>> database,
>>>> no ?
>>>
>>>
>>> Yes, SqueakDBX supports PostgreSQL but also many others backends.
>>> But in
>>> contrary to the native postgresql driver which is all in smalltalk,
>>> SqueakDBX delegates to an external library written in C called
>>> OpenDBX.
>>>
>>> So, when using SqueakDBX you must install OpenDBX and the client
>>> library of
>>> your database (the error you had is because SqueakDBX doesn't find
>>> OpenDBX
>>> in your system). Unfortunately this solution requires a bit more
>>> time of
>>> configuring than using the native driver but we can use a lot of
>>> databases
>>> and have better performance.
>>>
>>> I suggest you read the link: http://wiki.squeak.org/squeak/6052
>>> And more in deep this link: http://wiki.squeak.org/squeak/6129
>>>
>>> For Linux and Windows there are also binaries, but in the case of
>>> Mac you
>>> must compile.
>>>
>>> Finally there is a blog someone write to use PostgreSQL with
>>> SqueakDBX in
>>> Mac OS:
>>>
>>> http://dreamsofascorpion.blogspot.com/2008/05/using-opendbx-with-squeak.html
>>>
>>> To avoid noise in Pharo mailing list remember there is our own
>>> mailing list
>>> here:
>>> http://wiki.squeak.org/squeak/6052
>>>
>>> If you have more questions, just ask :)
>>>
>>> Best,
>>>
>>> Mariano
>>>
>>>
>>>
>>>>
>>>>
>>>> François
>>>>
>>>> ps : I am using pharo1.0-10418-BETAweb09.08.2 and I changed the
>>>> login
>>>> information in the correct methods (defaultPostgreSQLLocalLogin and
>>>> buildDefaultConnectionArgs).
>>>> 21 August 2009 11:13:22 am
>>>>
>>>> VM: Mac OS - intel - 1058 - Squeak3.8.1 of '28 Aug 2006' [latest
>>>> update: #6747] Squeak VM 4.1.1b2
>>>> Image: Pharo1.0beta [Latest update: #10418]
>>>>
>>>> SecurityManager state:
>>>> Restricted: false
>>>> FileAccess: true
>>>> SocketAccess: true
>>>> Working Dir /Users/paco/Desktop/pharo1.0-10418-BETAweb09.08.2
>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>>> Untrusted Dir /Users/paco/Library/Preferences/Squeak/Internet/My
>>>> Squeak
>>>>
>>>> OpenDBXMacOSX(Object)>>error:
>>>> Receiver: an OpenDBXMacOSX
>>>> Arguments and temporary variables:
>>>> aString: 'Unable to find function address'
>>>> Receiver's instance variables:
>>>> an OpenDBXMacOSX
>>>>
>>>> OpenDBXMacOSX(Object)>>externalCallFailed
>>>> Receiver: an OpenDBXMacOSX
>>>> Arguments and temporary variables:
>>>> errCode: 13
>>>> Receiver's instance variables:
>>>> an OpenDBXMacOSX
>>>>
>>>> OpenDBXMacOSX(OpenDBXUnix)>>apiInitialize:backend:host:port:
>>>> Receiver: an OpenDBXMacOSX
>>>> Arguments and temporary variables:
>>>> handle: a WordArray(0)
>>>> backend: 'pgsql'
>>>> host: '127.0.0.1'
>>>> port: '5432'
>>>> Receiver's instance variables:
>>>> an OpenDBXMacOSX
>>>>
>>>> DBXPostgresPlatform(DBXPlatform)>>createConnection:
>>>> Receiver: a DBXPostgresPlatform
>>>> Arguments and temporary variables:
>>>> aConnection: a DBXConnection
>>>> err: nil
>>>> handleArray: a WordArray(0)
>>>> handle: nil
>>>> Receiver's instance variables:
>>>> a DBXPostgresPlatform
>>>>
>>>> DBXConnection>>connect
>>>> Receiver: a DBXConnection
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> platform: a DBXPostgresPlatform
>>>> settings: a DBXConnectionSettings
>>>> handle: nil
>>>> open: a ValueHolder
>>>> connected: a ValueHolder
>>>> result: nil
>>>>
>>>> SqueakDBXDriver>>connect:
>>>> Receiver: a SqueakDBXDriver
>>>> Arguments and temporary variables:
>>>> aLogin: a Login(a PostgreSQLPlatform,
>>>> 'postgres',
>>>> 'vorevoca',
>>>> '127.0.0.1_glorp'...etc...
>>>> Receiver's instance variables:
>>>> connection: a DBXConnection
>>>> database: nil
>>>>
>>>> [] in SqueakDatabaseAccessor>>loginIfError:
>>>> Receiver: a SqueakDatabaseAccessor
>>>> Arguments and temporary variables:
>>>> <<error during printing>
>>>> Receiver's instance variables:
>>>> connection: nil
>>>> currentLogin: a Login(a PostgreSQLPlatform,
>>>> 'postgres',
>>>> 'vorevoca',
>>>> '127.0.0.1_...etc...
>>>> logging: nil
>>>> reusePreparedStatements: nil
>>>> deniedCommands: nil
>>>> mutex: a Semaphore()
>>>> dependents: nil
>>>> isInTransaction: false
>>>> databaseDriver: a SqueakDBXDriver
>>>>
>>>> BlockClosure>>on:do:
>>>> Receiver: [closure] in SqueakDatabaseAccessor>>loginIfError:
>>>> Arguments and temporary variables:
>>>> exception: Error
>>>> handlerAction: [closure] in
>>>> SqueakDatabaseAccessor(DatabaseAccessor)>>login
>>>> handlerActive: false
>>>> Receiver's instance variables:
>>>> outerContext: SqueakDatabaseAccessor>>loginIfError:
>>>> startpc: 60
>>>> numArgs: 0
>>>>
>>>> SqueakDatabaseAccessor(DatabaseAccessor)>>execute:ifError:
>>>> Receiver: a SqueakDatabaseAccessor
>>>> Arguments and temporary variables:
>>>> aBlock: [closure] in
>>>> SqueakDatabaseAccessor>>loginIfError:
>>>> errorBlock: [closure] in
>>>> SqueakDatabaseAccessor(DatabaseAccessor)>>login
>>>> Receiver's instance variables:
>>>> connection: nil
>>>> currentLogin: a Login(a PostgreSQLPlatform,
>>>> 'postgres',
>>>> 'vorevoca',
>>>> '127.0.0.1_...etc...
>>>> logging: nil
>>>> reusePreparedStatements: nil
>>>> deniedCommands: nil
>>>> mutex: a Semaphore()
>>>> dependents: nil
>>>> isInTransaction: false
>>>> databaseDriver: a SqueakDBXDriver
>>>>
>>>> SqueakDatabaseAccessor>>loginIfError:
>>>> Receiver: a SqueakDatabaseAccessor
>>>> Arguments and temporary variables:
>>>> aBlock: [closure] in
>>>> SqueakDatabaseAccessor(DatabaseAccessor)>>login
>>>> Receiver's instance variables:
>>>> connection: nil
>>>> currentLogin: a Login(a PostgreSQLPlatform,
>>>> 'postgres',
>>>> 'vorevoca',
>>>> '127.0.0.1_...etc...
>>>> logging: nil
>>>> reusePreparedStatements: nil
>>>> deniedCommands: nil
>>>> mutex: a Semaphore()
>>>> dependents: nil
>>>> isInTransaction: false
>>>> databaseDriver: a SqueakDBXDriver
>>>>
>>>> SqueakDatabaseAccessor(DatabaseAccessor)>>login
>>>> Receiver: a SqueakDatabaseAccessor
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> connection: nil
>>>> currentLogin: a Login(a PostgreSQLPlatform,
>>>> 'postgres',
>>>> 'vorevoca',
>>>> '127.0.0.1_...etc...
>>>> logging: nil
>>>> reusePreparedStatements: nil
>>>> deniedCommands: nil
>>>> mutex: a Semaphore()
>>>> dependents: nil
>>>> isInTransaction: false
>>>> databaseDriver: a SqueakDBXDriver
>>>>
>>>> GlorpDatabaseLoginResource>>setUp
>>>> Receiver: GlorpDatabaseLoginResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> name: nil
>>>> description: nil
>>>> accessor: a SqueakDatabaseAccessor
>>>> login: a Login(a PostgreSQLPlatform, 'postgres',
>>>> 'vorevoca',
>>>> '127.0.0.1_glorp')...etc...
>>>>
>>>> GlorpDatabaseLoginResource(TestResource)>>initialize
>>>> Receiver: GlorpDatabaseLoginResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> name: nil
>>>> description: nil
>>>> accessor: a SqueakDatabaseAccessor
>>>> login: a Login(a PostgreSQLPlatform, 'postgres',
>>>> 'vorevoca',
>>>> '127.0.0.1_glorp')...etc...
>>>>
>>>> GlorpDatabaseLoginResource class(Behavior)>>new
>>>> Receiver: GlorpDatabaseLoginResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> superclass: TestResource
>>>> methodDict: a MethodDictionary(#accessor->a
>>>> CompiledMethod (1052)
>>>> #accessor:->a...etc...
>>>> format: 138
>>>> instanceVariables: #('accessor' 'login')
>>>> organization: ('accessing' accessor accessor: login
>>>> login: platform)
>>>> ('initiali...etc...
>>>> subclasses: nil
>>>> name: #GlorpDatabaseLoginResource
>>>> classPool: a Dictionary(#DefaultLogin->a Login(a
>>>> PostgreSQLPlatform, 'postgres'...etc...
>>>> sharedPools: nil
>>>> environment: Smalltalk
>>>> category: #'OpenDBX-Glorp-Core-Test'
>>>> traitComposition: nil
>>>> localSelectors: nil
>>>> current: nil
>>>>
>>>> GlorpDatabaseLoginResource class(TestResource class)>>current
>>>> Receiver: GlorpDatabaseLoginResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> superclass: TestResource
>>>> methodDict: a MethodDictionary(#accessor->a
>>>> CompiledMethod (1052)
>>>> #accessor:->a...etc...
>>>> format: 138
>>>> instanceVariables: #('accessor' 'login')
>>>> organization: ('accessing' accessor accessor: login
>>>> login: platform)
>>>> ('initiali...etc...
>>>> subclasses: nil
>>>> name: #GlorpDatabaseLoginResource
>>>> classPool: a Dictionary(#DefaultLogin->a Login(a
>>>> PostgreSQLPlatform, 'postgres'...etc...
>>>> sharedPools: nil
>>>> environment: Smalltalk
>>>> category: #'OpenDBX-Glorp-Core-Test'
>>>> traitComposition: nil
>>>> localSelectors: nil
>>>> current: nil
>>>>
>>>> GlorpDemoTablePopulatorResource>>setUp
>>>> Receiver: GlorpDemoTablePopulatorResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> name: nil
>>>> description: nil
>>>> login: nil
>>>>
>>>> GlorpDemoTablePopulatorResource(TestResource)>>initialize
>>>> Receiver: GlorpDemoTablePopulatorResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> name: nil
>>>> description: nil
>>>> login: nil
>>>>
>>>> GlorpDemoTablePopulatorResource class(Behavior)>>new
>>>> Receiver: GlorpDemoTablePopulatorResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> superclass: TestResource
>>>> methodDict: a
>>>> MethodDictionary(#populateStuffTable->a
>>>> CompiledMethod (555) #set...etc...
>>>> format: 136
>>>> instanceVariables: #('login')
>>>> organization: ('setup' populateStuffTable setUp)
>>>> ('*glorpTestPostload-override'...etc...
>>>> subclasses: nil
>>>> name: #GlorpDemoTablePopulatorResource
>>>> classPool: a Dictionary(#NeedsSetup->false )
>>>> sharedPools: nil
>>>> environment: Smalltalk
>>>> category: #GlorpTest
>>>> traitComposition: nil
>>>> localSelectors: nil
>>>> current: nil
>>>>
>>>> GlorpDemoTablePopulatorResource class(TestResource class)>>current
>>>> Receiver: GlorpDemoTablePopulatorResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> superclass: TestResource
>>>> methodDict: a
>>>> MethodDictionary(#populateStuffTable->a
>>>> CompiledMethod (555) #set...etc...
>>>> format: 136
>>>> instanceVariables: #('login')
>>>> organization: ('setup' populateStuffTable setUp)
>>>> ('*glorpTestPostload-override'...etc...
>>>> subclasses: nil
>>>> name: #GlorpDemoTablePopulatorResource
>>>> classPool: a Dictionary(#NeedsSetup->false )
>>>> sharedPools: nil
>>>> environment: Smalltalk
>>>> category: #GlorpTest
>>>> traitComposition: nil
>>>> localSelectors: nil
>>>> current: nil
>>>>
>>>> GlorpSessionResource>>glorpTestsSystem
>>>> Receiver: GlorpSessionResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> name: nil
>>>> description: nil
>>>> session: nil
>>>>
>>>> GlorpSessionResource>>setUp
>>>> Receiver: GlorpSessionResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> name: nil
>>>> description: nil
>>>> session: nil
>>>>
>>>> GlorpSessionResource(TestResource)>>initialize
>>>> Receiver: GlorpSessionResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> name: nil
>>>> description: nil
>>>> session: nil
>>>>
>>>> GlorpSessionResource class(Behavior)>>new
>>>> Receiver: GlorpSessionResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> superclass: TestResource
>>>> methodDict: a MethodDictionary(#glorpTestsSystem-
>>>>> a
>>>> CompiledMethod
>>>> (1814) #newS...etc...
>>>> format: 136
>>>> instanceVariables: #('session')
>>>> organization: ('setup' glorpTestsSystem setUp)
>>>> ('accessing' newSession session)...etc...
>>>> subclasses: nil
>>>> name: #GlorpSessionResource
>>>> classPool: nil
>>>> sharedPools: nil
>>>> environment: Smalltalk
>>>> category: #GlorpTest
>>>> traitComposition: nil
>>>> localSelectors: nil
>>>> current: nil
>>>>
>>>> GlorpSessionResource class(TestResource class)>>current
>>>> Receiver: GlorpSessionResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> superclass: TestResource
>>>> methodDict: a MethodDictionary(#glorpTestsSystem-
>>>>> a
>>>> CompiledMethod
>>>> (1814) #newS...etc...
>>>> format: 136
>>>> instanceVariables: #('session')
>>>> organization: ('setup' glorpTestsSystem setUp)
>>>> ('accessing' newSession session)...etc...
>>>> subclasses: nil
>>>> name: #GlorpSessionResource
>>>> classPool: nil
>>>> sharedPools: nil
>>>> environment: Smalltalk
>>>> category: #GlorpTest
>>>> traitComposition: nil
>>>> localSelectors: nil
>>>> current: nil
>>>>
>>>> GlorpSessionResource class(TestResource class)>>isAvailable
>>>> Receiver: GlorpSessionResource
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> superclass: TestResource
>>>> methodDict: a MethodDictionary(#glorpTestsSystem-
>>>>> a
>>>> CompiledMethod
>>>> (1814) #newS...etc...
>>>> format: 136
>>>> instanceVariables: #('session')
>>>> organization: ('setup' glorpTestsSystem setUp)
>>>> ('accessing' newSession session)...etc...
>>>> subclasses: nil
>>>> name: #GlorpSessionResource
>>>> classPool: nil
>>>> sharedPools: nil
>>>> environment: Smalltalk
>>>> category: #GlorpTest
>>>> traitComposition: nil
>>>> localSelectors: nil
>>>> current: nil
>>>>
>>>> [] in TestRunner>>basicSetUpSuite:
>>>> Receiver: a TestRunner
>>>> Arguments and temporary variables:
>>>> <<error during printing>
>>>> Receiver's instance variables:
>>>> categories: #(#'AST-Tests'
>>>> #'AutomaticMethodCategorizer-Tests'
>>>> #'AutomaticMetho...etc...
>>>> categoriesSelected: a Set(#GlorpTest)
>>>> classes:
>>>> {GlorpBreadthFirstTopologicalSortTest .
>>>> GlorpCommandTest .
>>>> GlorpCursor...etc...
>>>> classIndex: 0
>>>> classesSelected: a Set(GlorpSQLPrintingTest
>>>> GlorpDatabaseBasedTest
>>>> GlorpManyToM...etc...
>>>> failedList: #()
>>>> failedSelected: nil
>>>> errorList: #()
>>>> errorSelected: nil
>>>> lastUpdate: 3428305867
>>>> result: 0 run, 0 passes, 0 expected
>>>> failures, 0
>>>> failures, 0 errors,
>>>> 0 unexpecte...etc...
>>>> previousRun: nil
>>>>
>>>> Set>>do:
>>>> Receiver: a Set(GlorpSessionResource
>>>> GlorpDatabaseLoginResource
>>>> GlorpDemoTablePopulatorResource)
>>>> Arguments and temporary variables:
>>>> aBlock: [closure] in
>>>> TestRunner>>basicSetUpSuite:
>>>> index: 2
>>>> each: GlorpSessionResource
>>>> indexLimiT: 5
>>>> Receiver's instance variables:
>>>> tally: 3
>>>> array: {nil . GlorpSessionResource .
>>>> GlorpDatabaseLoginResource .
>>>> GlorpDemoTabl...etc...
>>>>
>>>> TestRunner>>basicSetUpSuite:
>>>> Receiver: a TestRunner
>>>> Arguments and temporary variables:
>>>> aTestSuite: a TestSuite
>>>> Receiver's instance variables:
>>>> categories: #(#'AST-Tests'
>>>> #'AutomaticMethodCategorizer-Tests'
>>>> #'AutomaticMetho...etc...
>>>> categoriesSelected: a Set(#GlorpTest)
>>>> classes:
>>>> {GlorpBreadthFirstTopologicalSortTest .
>>>> GlorpCommandTest .
>>>> GlorpCursor...etc...
>>>> classIndex: 0
>>>> classesSelected: a Set(GlorpSQLPrintingTest
>>>> GlorpDatabaseBasedTest
>>>> GlorpManyToM...etc...
>>>> failedList: #()
>>>> failedSelected: nil
>>>> errorList: #()
>>>> errorSelected: nil
>>>> lastUpdate: 3428305867
>>>> result: 0 run, 0 passes, 0 expected
>>>> failures, 0
>>>> failures, 0 errors,
>>>> 0 unexpecte...etc...
>>>> previousRun: nil
>>>>
>>>> TestRunner>>basicRunSuite:do:
>>>> Receiver: a TestRunner
>>>> Arguments and temporary variables:
>>>> aTestSuite: a TestSuite
>>>> aBlock: [closure] in TestRunner>>runSuite:
>>>> Receiver's instance variables:
>>>> categories: #(#'AST-Tests'
>>>> #'AutomaticMethodCategorizer-Tests'
>>>> #'AutomaticMetho...etc...
>>>> categoriesSelected: a Set(#GlorpTest)
>>>> classes:
>>>> {GlorpBreadthFirstTopologicalSortTest .
>>>> GlorpCommandTest .
>>>> GlorpCursor...etc...
>>>> classIndex: 0
>>>> classesSelected: a Set(GlorpSQLPrintingTest
>>>> GlorpDatabaseBasedTest
>>>> GlorpManyToM...etc...
>>>> failedList: #()
>>>> failedSelected: nil
>>>> errorList: #()
>>>> errorSelected: nil
>>>> lastUpdate: 3428305867
>>>> result: 0 run, 0 passes, 0 expected
>>>> failures, 0
>>>> failures, 0 errors,
>>>> 0 unexpecte...etc...
>>>> previousRun: nil
>>>>
>>>> TestRunner>>runSuite:
>>>> Receiver: a TestRunner
>>>> Arguments and temporary variables:
>>>> aTestSuite: a TestSuite
>>>> Receiver's instance variables:
>>>> categories: #(#'AST-Tests'
>>>> #'AutomaticMethodCategorizer-Tests'
>>>> #'AutomaticMetho...etc...
>>>> categoriesSelected: a Set(#GlorpTest)
>>>> classes:
>>>> {GlorpBreadthFirstTopologicalSortTest .
>>>> GlorpCommandTest .
>>>> GlorpCursor...etc...
>>>> classIndex: 0
>>>> classesSelected: a Set(GlorpSQLPrintingTest
>>>> GlorpDatabaseBasedTest
>>>> GlorpManyToM...etc...
>>>> failedList: #()
>>>> failedSelected: nil
>>>> errorList: #()
>>>> errorSelected: nil
>>>> lastUpdate: 3428305867
>>>> result: 0 run, 0 passes, 0 expected
>>>> failures, 0
>>>> failures, 0 errors,
>>>> 0 unexpecte...etc...
>>>> previousRun: nil
>>>>
>>>> TestRunner>>runAll
>>>> Receiver: a TestRunner
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> categories: #(#'AST-Tests'
>>>> #'AutomaticMethodCategorizer-Tests'
>>>> #'AutomaticMetho...etc...
>>>> categoriesSelected: a Set(#GlorpTest)
>>>> classes:
>>>> {GlorpBreadthFirstTopologicalSortTest .
>>>> GlorpCommandTest .
>>>> GlorpCursor...etc...
>>>> classIndex: 0
>>>> classesSelected: a Set(GlorpSQLPrintingTest
>>>> GlorpDatabaseBasedTest
>>>> GlorpManyToM...etc...
>>>> failedList: #()
>>>> failedSelected: nil
>>>> errorList: #()
>>>> errorSelected: nil
>>>> lastUpdate: 3428305867
>>>> result: 0 run, 0 passes, 0 expected
>>>> failures, 0
>>>> failures, 0 errors,
>>>> 0 unexpecte...etc...
>>>> previousRun: nil
>>>>
>>>> UndefinedObject>>DoIt
>>>> Receiver: nil
>>>> Arguments and temporary variables:
>>>> tr: a TestRunner
>>>> 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 '
>>>> |tr |
>>>> SqueakDatabaseAccessor DefaultDriver: S...etc...
>>>> requestor: a TextMorphForShoutEditor
>>>> class: UndefinedObject
>>>> category: nil
>>>> context: nil
>>>> parser: a Parser
>>>>
>>>> [] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
>>>> Receiver: a TextMorphForShoutEditor
>>>> Arguments and temporary variables:
>>>> <<error during printing>
>>>> Receiver's instance variables:
>>>> model: a SHWorkspace
>>>> paragraph: a MultiNewParagraph
>>>> startBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and rect...etc...
>>>> stopBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and recta...etc...
>>>> beginTypeInBlock: nil
>>>> emphasisHere: an Array(a TextColor code: Color red)
>>>> initialText: a Text for '
>>>> |tr |
>>>> tr := TestRunner new.
>>>> ToolBuilder open: tr.
>>>> tr
>>>> ...etc...
>>>> selectionShowing: false
>>>> otherInterval: (403 to: 402)
>>>> lastParentLocation: nil
>>>> morph: a TextMorphForShout(168)
>>>> oldInterval: (106 to: 105)
>>>> pivotBlock: a CharacterBlock with index 200 and
>>>> character Character
>>>> cr and rect...etc...
>>>> inBackTo: false
>>>>
>>>> BlockClosure>>on:do:
>>>> Receiver: [closure] in
>>>> TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
>>>> Arguments and temporary variables:
>>>> exception: OutOfScopeNotification
>>>> handlerAction: [closure] in
>>>> TextMorphForShoutEditor(ParagraphEditor)>>evaluateS...etc...
>>>> handlerActive: true
>>>> Receiver's instance variables:
>>>> outerContext:
>>>> TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
>>>> startpc: 116
>>>> numArgs: 0
>>>>
>>>> TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
>>>> Receiver: a TextMorphForShoutEditor
>>>> Arguments and temporary variables:
>>>> result: nil
>>>> rcvr: nil
>>>> ctxt: nil
>>>> Receiver's instance variables:
>>>> model: a SHWorkspace
>>>> paragraph: a MultiNewParagraph
>>>> startBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and rect...etc...
>>>> stopBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and recta...etc...
>>>> beginTypeInBlock: nil
>>>> emphasisHere: an Array(a TextColor code: Color red)
>>>> initialText: a Text for '
>>>> |tr |
>>>> tr := TestRunner new.
>>>> ToolBuilder open: tr.
>>>> tr
>>>> ...etc...
>>>> selectionShowing: false
>>>> otherInterval: (403 to: 402)
>>>> lastParentLocation: nil
>>>> morph: a TextMorphForShout(168)
>>>> oldInterval: (106 to: 105)
>>>> pivotBlock: a CharacterBlock with index 200 and
>>>> character Character
>>>> cr and rect...etc...
>>>> inBackTo: false
>>>>
>>>> TextMorphForShoutEditor(ParagraphEditor)>>doIt
>>>> Receiver: a TextMorphForShoutEditor
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> model: a SHWorkspace
>>>> paragraph: a MultiNewParagraph
>>>> startBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and rect...etc...
>>>> stopBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and recta...etc...
>>>> beginTypeInBlock: nil
>>>> emphasisHere: an Array(a TextColor code: Color red)
>>>> initialText: a Text for '
>>>> |tr |
>>>> tr := TestRunner new.
>>>> ToolBuilder open: tr.
>>>> tr
>>>> ...etc...
>>>> selectionShowing: false
>>>> otherInterval: (403 to: 402)
>>>> lastParentLocation: nil
>>>> morph: a TextMorphForShout(168)
>>>> oldInterval: (106 to: 105)
>>>> pivotBlock: a CharacterBlock with index 200 and
>>>> character Character
>>>> cr and rect...etc...
>>>> inBackTo: false
>>>>
>>>> [] in TextMorphForShoutEditor(ParagraphEditor)>>doIt:
>>>> Receiver: a TextMorphForShoutEditor
>>>> Arguments and temporary variables:
>>>> <<error during printing>
>>>> Receiver's instance variables:
>>>> model: a SHWorkspace
>>>> paragraph: a MultiNewParagraph
>>>> startBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and rect...etc...
>>>> stopBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and recta...etc...
>>>> beginTypeInBlock: nil
>>>> emphasisHere: an Array(a TextColor code: Color red)
>>>> initialText: a Text for '
>>>> |tr |
>>>> tr := TestRunner new.
>>>> ToolBuilder open: tr.
>>>> tr
>>>> ...etc...
>>>> selectionShowing: false
>>>> otherInterval: (403 to: 402)
>>>> lastParentLocation: nil
>>>> morph: a TextMorphForShout(168)
>>>> oldInterval: (106 to: 105)
>>>> pivotBlock: a CharacterBlock with index 200 and
>>>> character Character
>>>> cr and rect...etc...
>>>> inBackTo: false
>>>>
>>>> TextMorphForShoutEditor
>>>> (ParagraphEditor)>>terminateAndInitializeAround:
>>>> Receiver: a TextMorphForShoutEditor
>>>> Arguments and temporary variables:
>>>> aBlock: [closure] in
>>>> TextMorphForShoutEditor(ParagraphEditor)>>doIt:
>>>> Receiver's instance variables:
>>>> model: a SHWorkspace
>>>> paragraph: a MultiNewParagraph
>>>> startBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and rect...etc...
>>>> stopBlock: a CharacterBlock with index 201 and
>>>> character Character
>>>> cr and recta...etc...
>>>> beginTypeInBlock: nil
>>>> emphasisHere: an Array(a TextColor code: Color red)
>>>> initialText: a Text for '
>>>> |tr |
>>>> tr := TestRunner new.
>>>> ToolBuilder open: tr.
>>>> tr
>>>> ...etc...
>>>> selectionShowing: false
>>>> otherInterval: (403 to: 402)
>>>> lastParentLocation: nil
>>>> morph: a TextMorphForShout(168)
>>>> oldInterval: (106 to: 105)
>>>> pivotBlock: a CharacterBlock with index 200 and
>>>> character Character
>>>> cr and rect...etc...
>>>> inBackTo: false
>>>>
>>>>
>>>> --- The full stack ---
>>>> OpenDBXMacOSX(Object)>>error:
>>>> OpenDBXMacOSX(Object)>>externalCallFailed
>>>> OpenDBXMacOSX(OpenDBXUnix)>>apiInitialize:backend:host:port:
>>>> DBXPostgresPlatform(DBXPlatform)>>createConnection:
>>>> DBXConnection>>connect
>>>> SqueakDBXDriver>>connect:
>>>> [] in SqueakDatabaseAccessor>>loginIfError:
>>>> BlockClosure>>on:do:
>>>> SqueakDatabaseAccessor(DatabaseAccessor)>>execute:ifError:
>>>> SqueakDatabaseAccessor>>loginIfError:
>>>> SqueakDatabaseAccessor(DatabaseAccessor)>>login
>>>> GlorpDatabaseLoginResource>>setUp
>>>> GlorpDatabaseLoginResource(TestResource)>>initialize
>>>> GlorpDatabaseLoginResource class(Behavior)>>new
>>>> GlorpDatabaseLoginResource class(TestResource class)>>current
>>>> GlorpDemoTablePopulatorResource>>setUp
>>>> GlorpDemoTablePopulatorResource(TestResource)>>initialize
>>>> GlorpDemoTablePopulatorResource class(Behavior)>>new
>>>> GlorpDemoTablePopulatorResource class(TestResource class)>>current
>>>> GlorpSessionResource>>glorpTestsSystem
>>>> GlorpSessionResource>>setUp
>>>> GlorpSessionResource(TestResource)>>initialize
>>>> GlorpSessionResource class(Behavior)>>new
>>>> GlorpSessionResource class(TestResource class)>>current
>>>> GlorpSessionResource class(TestResource class)>>isAvailable
>>>> [] in TestRunner>>basicSetUpSuite:
>>>> Set>>do:
>>>> TestRunner>>basicSetUpSuite:
>>>> TestRunner>>basicRunSuite:do:
>>>> TestRunner>>runSuite:
>>>> TestRunner>>runAll
>>>> UndefinedObject>>DoIt
>>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>>> [] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
>>>> BlockClosure>>on:do:
>>>> TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
>>>> TextMorphForShoutEditor(ParagraphEditor)>>doIt
>>>> [] in TextMorphForShoutEditor(ParagraphEditor)>>doIt:
>>>> TextMorphForShoutEditor
>>>> (ParagraphEditor)>>terminateAndInitializeAround:
>>>> - - - - - - - - - - - - - - -
>>>> - - - - - - - - - - - - - - - - - -
>>>> TextMorphForShoutEditor(ParagraphEditor)>>doIt:
>>>> TextMorphForShoutEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
>>>> TextMorphForShoutEditor(TextMorphEditor)>>dispatchOnKeyEvent:with:
>>>> TextMorphForShoutEditor(ParagraphEditor)>>keystroke:
>>>> TextMorphForShoutEditor(TextMorphEditor)>>keystroke:
>>>> [] in [] in TextMorphForShout(TextMorph)>>keyStroke:
>>>> TextMorphForShout(TextMorph)>>handleInteraction:
>>>> TextMorphForShout(TextMorphForEditView)>>handleInteraction:
>>>> [] in TextMorphForShout(TextMorph)>>keyStroke:
>>>> ECToolSet class>>codeCompletionAround:textMorph:keyStroke:
>>>> DEVToolSet class>>codeCompletionAround:textMorph:keyStroke:
>>>> ToolSet class>>codeCompletionAround:textMorph:keyStroke:
>>>> TextMorphForShout(TextMorph)>>keyStroke:
>>>> TextMorphForShout(TextMorphForEditView)>>keyStroke:
>>>> TextMorphForShout(TextMorph)>>handleKeystroke:
>>>> KeyboardEvent>>sentTo:
>>>> TextMorphForShout(Morph)>>handleEvent:
>>>> TextMorphForShout(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
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> Pharo-project(a)lists.gforge.inria.fr
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project(a)lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project(a)lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 23, 2009
Re: [Pharo-project] Line end convention in MultiByteFileStream
by Schwab,Wilhelm K
That is an interesting idea. I am not opposed to it, but it would not be my first choice because the additional traces require decompression to view them, and because a potentially memory starved system has to compress them to write them to disk. That said, it it makes people happy enough to adopt the change when concatenation would be refused[*], then I'm all for it.
[*] I think I "heard" Stef say "send the code and it's in the core." So, I think the simpler "just keep adding to the file" option will be adopted.
Bill
-----Original Message-----
From: pharo-project-bounces(a)lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of csrabak(a)bol.com.br
Sent: Saturday, August 22, 2009 7:51 PM
To: Pharo-project(a)lists.gforge.inria.fr
Subject: Re: [Pharo-project] Line end convention in MultiByteFileStream
Em 22/08/2009 16:20, Schwab,Wilhelm K <bschwab(a)anest.ufl.edu> escreveu:
>
> I saw that, but one wonders whether we might be alone and should just
> stop whining :) I cannot understand how ignoring errors is a feature,
> but maybe it is to some??? One argument against the idea is that the
> file could grow very large over time, but it should not be too bad,
> and I would certainly want to know if my image is generating huge
> numbers of unhandled execeptions. That is all the more true on
> servers and embedded systems.
> A possible compromise is something I did a while back and need to
> press back into service: a rotating (for lack of a better name) file
> stream. It uses one stream for a set period of time, then opens a new
> file and begins writing to it. It leaves a seriies of files named for
> when they were opened. I did it to avoid having something get hung up
> (the concern was mostly defective USB drivers) and taking out all of
> our data from an experiment vs. just costing us the last ten minutes
> worth. Something even simpler could probably work here.
Bill,
Perhaps we can address both with a 'technology' used in a lot of Linux
distributions: instead of opening a lot of newer files, the (let' call it such way) current file is a regular text file (maybe following the host OS line end conventions [it is a minor concern for me as I intend to develop and test in a dual boot machine]) and the accumulated history is compressed with some of the available methods in the devel image, so we have to take care of only two files, 'normal' (thinking of present) behaviour is almost not changed and the aditional benefits for the situations you mention in addition to be able to see earlier backtraces for all developers.
--
Cesar Rabak
_______________________________________________
Pharo-project mailing list
Pharo-project(a)lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 23, 2009
Re: [Pharo-project] over bloated image workaround
by Carlos Crosetti
Mariano, Ivery value those scripts!
My image is small, but anyway I couldn't resist the challenge and tried so
far,
I got my image shrunk down from 20.7mb to 18.2mb.
This is probably a candidate for extending something I may
call "the Pharo equivalent to VW Runtime Packager" - I am not so familiar to
Pharo to know
if such a feature exist.
Regards, Carlos
-----Mensaje original-----
De: pharo-project-bounces(a)lists.gforge.inria.fr
[mailto:pharo-project-bounces@lists.gforge.inria.fr]En nombre de Mariano
Martinez Peck
Enviado el: Sábado, 22 de Agosto de 2009 05:53 p.m.
Para: Pharo-project(a)lists.gforge.inria.fr
Asunto: Re: [Pharo-project] over bloated image workaround
On Sat, Aug 22, 2009 at 5:42 AM, Stéphane Ducasse
<stephane.ducasse(a)inria.fr> wrote:
We should check that.
Can you open a ticket?
Ok, done: http://code.google.com/p/pharo/issues/detail?id=1083
Stef
On Aug 21, 2009, at 11:25 PM, Mariano Martinez Peck wrote:
> Hi folks: Sometimes, my Pharo images grows a lot. Size like 80MB or
> similar. Marcelo Cortez gave me a couple of changes (fileouts) that
> make my images go back to their original size or similar. For
> example, it was tasted in a 87 MB and after this changes and this
> stuff, it become in 24 MB. The same with another one from 65M to 35M.
>
> If you have a big Pharo image, save a copy and do this tests:
>
> 1) File in all the changes I attach.
> 2) Go to a workspace and evaluate:
>
> OBDPAbstract reinitAllCache.
> LocalSends allInstances first initialize.
> EventManager resetMap.
> Smalltalk garbageCollect.
>
> Did this make your image too much smaller?
>
> When I evaluate SystemNavigation default obsoleteBehavio size I
> get a a number of 3 digits.
>
> Perhaps it is a matter with the OB. I guess it generates dependences
> while you are developing a class and it creates on the fly an
> obsolteClassXXX when there is something that doesn't exist. Then
> they are processes and they are never garbage collected.
>
> When SmalltalkImage tries to fix the obsoletes delegates to the
> literal frames of the compiled methods so that to search references
> to the obsoletes. But references were not gone because they weren't
> garbage collected. The same method finishes with error if the
> obsoletes > 0.
>
> Does anyone has a comment for this?
>
> I tried to do my best to write in English from what Marcelo told me
> and from what I can understand from the changesets.
>
> Best,
>
> Mariano _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
Pharo-project(a)lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 23, 2009
Re: [Pharo-project] Line end convention in MultiByteFileStream
by csrabak@bol.com.br
Em 22/08/2009 16:20, Schwab,Wilhelm K <bschwab(a)anest.ufl.edu> escreveu:
>
> I saw that, but one wonders whether we might be alone and should
> just stop whining :) I cannot understand how ignoring errors is a
> feature, but maybe it is to some??? One argument against the idea
> is that the file could grow very large over time, but it should not
> be too bad, and I would certainly want to know if my image is
> generating huge numbers of unhandled execeptions. That is all the
> more true on servers and embedded systems.
> A possible compromise is something I did a while back and need to
> press back into service: a rotating (for lack of a better name) file
> stream. It uses one stream for a set period of time, then opens a
> new file and begins writing to it. It leaves a seriies of files
> named for when they were opened. I did it to avoid having something
> get hung up (the concern was mostly defective USB drivers) and
> taking out all of our data from an experiment vs. just costing us
> the last ten minutes worth. Something even simpler could probably
> work here.
Bill,
Perhaps we can address both with a 'technology' used in a lot of Linux
distributions: instead of opening a lot of newer files, the (let' call
it such way) current file is a regular text file (maybe following the
host OS line end conventions [it is a minor concern for me as I intend
to develop and test in a dual boot machine]) and the accumulated
history is compressed with some of the available methods in the devel
image, so we have to take care of only two files, 'normal' (thinking
of present) behaviour is almost not changed and the aditional benefits
for the situations you mention in addition to be able to see earlier
backtraces for all developers.
--
Cesar Rabak
Aug. 23, 2009
Re: [Pharo-project] Line end convention in MultiByteFileStream
by Schwab,Wilhelm K
Fair enough.
-----Original Message-----
From: pharo-project-bounces(a)lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Stéphane Ducasse
Sent: Saturday, August 22, 2009 3:53 PM
To: Pharo-project(a)lists.gforge.inria.fr
Subject: Re: [Pharo-project] Line end convention in MultiByteFileStream
send code :)
Stef
On Aug 22, 2009, at 9:20 PM, Schwab,Wilhelm K wrote:
> I saw that, but one wonders whether we might be alone and should
> just stop whining :) I cannot understand how ignoring errors is a
> feature, but maybe it is to some??? One argument against the idea is
> that the file could grow very large over time, but it should not be
> too bad, and I would certainly want to know if my image is generating
> huge numbers of unhandled execeptions. That is all the more true on
> servers and embedded systems.
>
> A possible compromise is something I did a while back and need to
> press back into service: a rotating (for lack of a better name) file
> stream. It uses one stream for a set period of time, then opens a new
> file and begins writing to it. It leaves a seriies of files named for
> when they were opened. I did it to avoid having something get hung up
> (the concern was mostly defective USB drivers) and taking out all of
> our data from an experiment vs. just costing us the last ten minutes
> worth. Something even simpler could probably work here.
>
> Bill
>
>
>
> From: pharo-project-bounces(a)lists.gforge.inria.fr
> [mailto:pharo-project-bounces@lists.gforge.inria.fr
> ] On Behalf Of csrabak(a)bol.com.br
> Sent: Saturday, August 22, 2009 12:53 PM
> To: Pharo-project(a)lists.gforge.inria.fr
> Subject: Re: [Pharo-project] Line end convention in
> MultiByteFileStream
>
> In another thread I asked to count one vote plus for this.
>
>
> Em 22/08/2009 13:56, Schwab,Wilhelm K < bschwab(a)anest.ufl.edu >
> escreveu:
>
>
> Something else that I would very much like to see done to the debug
> log is to append new entries vs. overwriting them. A lot of useful
> information is destroyed that way. What do others think?
>
> Bill
>
>
>
> -----Original Message-----
> From: pharo-project-bounces(a)lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr
> ] On Behalf Of Damien Cassou
> Sent: Saturday, August 22, 2009 11:35 AM
> To: Pharo Development
> Subject: Re: [Pharo-project] Line end convention in
> MultiByteFileStream
>
> About PharoDebug.log: http://code.google.com/p/pharo/issues/detail?id=1082
>
> --
> Damien Cassou
> http://damiencassou.seasidehosting.st
>
> "Lambdas are relegated to relative obscurity until Java makes them
> popular by not having them." James Iry
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
Pharo-project(a)lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 22, 2009
[Pharo-project] [ANN] Smalltalks 2009 - Third Smalltalk Conference of Argentina
by Andres Valloud
Argentina's third Smalltalk conference, Smalltalks 2009, will be held
from November 19th through November 21rd at the Facultad de Ciencias
Exactas y Naturales (FCEyN), Universidad de Buenos Aires (UBA).
All those connected with Smalltalk, be it faculty, students,
researchers, developers or entrepreneurs, are invited to participate,
free of cost, as presenters and members of the audience. The
organization committee will announce the registration website shortly.
The conference's goal is to gather both the Argentine and International
Smalltalk community to get connected sharing our work and experience
with regards to Smalltalk or related topics. Smalltalks 2009
presentations will be divided between the "Industry and Development" and
"Research and Education" categories. In addition, the event will host a
Smalltalk programming contest. As in other editions, well known
personalities from the international community will attend the conference.
The "Research and Education" category is the best match for research and
education work done with Smalltalk in universities and public or private
entities. The "Industry and Development" category is suitable for
presentations related to Smalltalk software developed by companies or
individuals, both public and private.
A list of suggested presentation topics, not exclusive, is below:
* Development tools.
* Development with prototypes.
* Model driven development.
* Agile practices (XP, TDD, etc).
* Web application development.
* Metamodeling / metaprogramming.
* New frameworks or models.
* Materials for education.
* Embedded systems and robotics.
* SOA and web services.
* Experience reports, both development and research.
* Commercial systems.
* Automation and best testing practices.
* Interoperability with other technologies.
* Best design and architecture practices.
Interested presenters should keep in mind the following deadline schedule.
1. You must present a summary of the proposed presentation no later
than Monday, October 19th, 2009. The summary must fit on a single page,
and must include a description, objective, and category of the work to
be shown. The submission procedure will be announced shortly.
2. The conference's program committee will select the event's
presentations from the proposals submitted according to the above
procedure by Monday, October 26th. The proposals including dynamic
examples as opposed to just static presentations will be given priority.
3. The conference schedule will be published in the conference's
website on Wednesday, October 28th.
4. The conference's works and presentations will be published in the
conference's website after the conference.
Those interested in the coding contest can become familiarized with it
at the smalltalks-2009-coding-contest Google group:
smalltalks-2009-coding-contest(a)googlegroups.com
The contest's goal is to have a good time solving a problem in
Smalltalk, and win a prize while at it. We are working hard to ensure
everyone can participate, and we will show examples and prototypes that
can be improved by the participants.
For directions to FCEyN, you can go to the computer science department's
web site:
http://dc.uba.ar
Feel free to share this invitation with those who might be interested.
If you have any questions, send us an email at
fundacion (dot) smalltalk (at) gmail (dot) com
See you at the conference!
Smalltalks 2009 Organization Committee.
Aug. 22, 2009
Re: [Pharo-project] Recursion - should there be a limit?
by Lukas Renggli
>> Would it be simple to add an optional limit on the stack depth?
Yes, because the stack is a linked list of objects. Counting them is expensive.
>> Would you do it, or would it be asking for trouble? Â Is there a less
>> invasive way to aid in debugging this scenario?
CPUWatcher does something like this, but it also eats valuable CPU cycles.
Cheers,
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
Aug. 22, 2009