Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
December 2009
- 96 participants
- 2069 messages
[Pharo-project] Morpic Input class broken?
by Guido Stepken
Hi!
When i open up Classbrowser, Method finder ..... type in e.g. "as" ...
then mark "as" with mouse and then type the Backspace button on my
keyboard ... i get an Error ... This phenomenon appeared first in 1.1
alpha, now even in 1.0 (newest version, all updates installed)
By the way ... that completion window, that's popping up ... why must
that be removable across the whole screen?
tnx, keep up the good work!
regards, Guido
Dec. 10, 2009
Re: [Pharo-project] Preference Browser and new System setting browser signal exception while opening the 'debug'
by Alain Plantec
Hi Bart,
Strange, all is ok here with a freshly updated 11083.
Maybe you've loaded an old Kernel package or filein something with
an old UserInterruptHandler class version.
Alain
Dec. 10, 2009
[Pharo-project] Preference Browser and new System setting browser signal exception while opening the 'debug'
by Bart Gauquie
Dear all,
If I'm using the Preference Browser (the old) or the System Setting Browser
(the new) and want to click the debug settings, both throw the same error:
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: UserInterruptHandler class>>cmdDotEnabled
10 December 2009 3:50:46 pm
VM: Win32 - IX86 - NT - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
Image: PharoCore1.1ALPHA [Latest update: #11083]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir
D:\Bart\Programming\Smalltalk\Pharo\Images\pharo1.1-11073-alphadev09.12.1
UserInterruptHandler class(Object)>>doesNotUnderstand: #cmdDotEnabled
Receiver: UserInterruptHandler
Arguments and temporary variables:
aMessage: cmdDotEnabled
exception: MessageNotUnderstood: UserInterruptHandler class>>cmdDotEnabled
resumeValue: nil
Receiver's instance variables:
superclass: InputEventHandler
methodDict: a
MethodDictionary(#handleEvent:->(UserInterruptHandler>>#handleEve...etc...
format: 134
instanceVariables: #('interruptKey')
organization: ('events' handleEvent:)
('initialize-release' setInterruptKeyValu...etc...
subclasses: nil
name: #UserInterruptHandler
classPool: nil
sharedPools: an OrderedCollection(EventSensorConstants)
environment: Smalltalk
category: #'Kernel-Processes'
traitComposition: {}
localSelectors: nil
SettingDeclaration>>realValue
Receiver: a SettingDeclaration
Arguments and temporary variables:
Receiver's instance variables:
precondition: [closure] in SettingDeclaration(PragmaSetting)>>precondition
target: UserInterruptHandler
targetSelector: nil
name: #cmdDotEnabled
label: 'Enable cmd-dot interrupt key'
description: 'If true, it allows the user to stop currently running process
by ...etc...
order: nil
icon: nil
ordering: nil
dialog: nil
allowedInStyle: nil
getSelector: nil
setSelector: nil
type: nil
default: nil
ghostHelp: nil
SettingDeclaration>>type
Receiver: a SettingDeclaration
Arguments and temporary variables:
Receiver's instance variables:
precondition: [closure] in SettingDeclaration(PragmaSetting)>>precondition
target: UserInterruptHandler
targetSelector: nil
name: #cmdDotEnabled
label: 'Enable cmd-dot interrupt key'
description: 'If true, it allows the user to stop currently running process
by ...etc...
order: nil
icon: nil
ordering: nil
dialog: nil
allowedInStyle: nil
getSelector: nil
setSelector: nil
type: nil
default: nil
ghostHelp: nil
SettingDeclaration>>defaultIcon
Receiver: a SettingDeclaration
Arguments and temporary variables:
Receiver's instance variables:
precondition: [closure] in SettingDeclaration(PragmaSetting)>>precondition
target: UserInterruptHandler
targetSelector: nil
name: #cmdDotEnabled
label: 'Enable cmd-dot interrupt key'
description: 'If true, it allows the user to stop currently running process
by ...etc...
order: nil
icon: nil
ordering: nil
dialog: nil
allowedInStyle: nil
getSelector: nil
setSelector: nil
type: nil
default: nil
ghostHelp: nil
SettingDeclaration(PragmaSetting)>>icon
Receiver: a SettingDeclaration
Arguments and temporary variables:
Receiver's instance variables:
precondition: [closure] in SettingDeclaration(PragmaSetting)>>precondition
target: UserInterruptHandler
targetSelector: nil
name: #cmdDotEnabled
label: 'Enable cmd-dot interrupt key'
description: 'If true, it allows the user to stop currently running process
by ...etc...
order: nil
icon: nil
ordering: nil
dialog: nil
allowedInStyle: nil
getSelector: nil
setSelector: nil
type: nil
default: nil
ghostHelp: nil
SettingTreeNode>>icon
Receiver: a SettingTreeNode
Arguments and temporary variables:
d: a SettingDeclaration
Receiver's instance variables:
item: a SettingDeclaration
model: a SettingTreeHolder
parentName: #debugging
pragma: <systemsettings>
contents: nil
MorphTreeNodeMorph>>initWithContents:prior:forList:indentLevel:
Receiver: a MorphTreeNodeMorph(3008)
Arguments and temporary variables:
anObject: a SettingTreeNode
priorMorph: nil
hostList: a MorphTreeMorph(2492)
newLevel: 1
Receiver's instance variables:
bounds: 0@0 corner: 50@40
owner: nil
submorphs: #()
fullBounds: nil
color: Color transparent
extension: a MorphExtension (3089)
parent: nil
index: nil
indentLevel: 1
isExpanded: false
complexContents: a SettingTreeNode
firstChild: nil
container: a MorphTreeMorph(2492)
nextSibling: nil
icon: nil
rowMorph: nil
controls: nil
spacers: nil
[] in MorphTreeMorph>>addMorphsAfter:fromCollection:allowSorting:
Receiver: a MorphTreeMorph(2492)
Arguments and temporary variables:
parentMorph: a SettingTreeNode
morphList: a MorphTreeNodeMorph(809)
priorMorph: an OrderedCollection()
item: #(nil)
Receiver's instance variables:
bounds: 642@426 corner: 1432@845
owner: a StandardWindow(2409)
submorphs: an Array(a MorphTreeResizerMorph(2932) a Morph(3150) a
MorphTreeTran...etc...
fullBounds: 642@426 corner: 1432@845
color: (Color r: 0.91 g: 0.905 b: 0.905)
extension: a MorphExtension (1933) [locked] [eventHandler = an EventHandler
re...etc...
borderWidth: 1
borderColor: (Color r: 0.833 g: 0.833 b: 0.833)
model: a SystemSettingBrowser
slotName: nil
open: false
scrollBar: a ScrollBar(1046)
scroller: a MorphTreeTransformMorph(3458)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #menu:shifted:
getMenuTitleSelector: nil
hasFocus: true
hScrollBar: a ScrollBar(1158)
getListSelector: #roots
setSelectionSelector: #selection:
keystrokeActionSelector: #keyStroke:from:
autoDeselect: nil
columns: an OrderedCollection(a MorphTreeColumn a MorphTreeColumn)
sortingSelector: nil
potentialDropMorph: nil
lineColor: nil
hCellInset: 4
vCellInset: 6
columnResizers: an OrderedCollection(a MorphTreeResizerMorph(2932))
withHLines: false
preferedPaneColor: (Color r: 0.91 g: 0.905 b: 0.905)
indentGap: 20
expandedToggleImage: an ImageMorph(2307)
notExpandedToggleImage: an ImageMorph(1287)
resizerWidth: 4
gapAfterIcon: 4
gapAfterToggle: 5
hasToggleAtRoot: true
scrollDeltaHeight: 20
getSelectionSelector: #selection
topHeader: a Morph(3150)
topHeaderBackground: Color transparent
unboundLastColumn: true
columnDropUnabled: nil
iconReservedExtent: 16@16
columnColors: #(nil nil)
rowColors: {(Color r: 0.941 g: 0.941 b: 0.941). nil}
allowsMultipleSelection: nil
selectedMorphList: an OrderedCollection()
lastSelectedMorph: nil
doubleClickSelector: #doubleClick
OrderedCollection>>do:
Receiver: an OrderedCollection(a SettingTreeNode a SettingTreeNode a
SettingTreeNode a SettingTreeNo...etc...
Arguments and temporary variables:
aBlock: [closure] in
MorphTreeMorph>>addMorphsAfter:fromCollection:allowSorting...etc...
index: 3
Receiver's instance variables:
array: an Array(nil nil a SettingTreeNode a SettingTreeNode a
SettingTreeNode a...etc...
firstIndex: 3
lastIndex: 9
MorphTreeMorph>>addMorphsAfter:fromCollection:allowSorting:
Receiver: a MorphTreeMorph(2492)
Arguments and temporary variables:
parentMorph: a MorphTreeNodeMorph(809)
aCollection: an OrderedCollection(a SettingTreeNode a SettingTreeNode a
Setting...etc...
sortBoolean: true
morphList: an OrderedCollection()
newCollection: an OrderedCollection(a SettingTreeNode a SettingTreeNode a
Setti...etc...
priorMorph: #(nil)
Receiver's instance variables:
bounds: 642@426 corner: 1432@845
owner: a StandardWindow(2409)
submorphs: an Array(a MorphTreeResizerMorph(2932) a Morph(3150) a
MorphTreeTran...etc...
fullBounds: 642@426 corner: 1432@845
color: (Color r: 0.91 g: 0.905 b: 0.905)
extension: a MorphExtension (1933) [locked] [eventHandler = an EventHandler
re...etc...
borderWidth: 1
borderColor: (Color r: 0.833 g: 0.833 b: 0.833)
model: a SystemSettingBrowser
slotName: nil
open: false
scrollBar: a ScrollBar(1046)
scroller: a MorphTreeTransformMorph(3458)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #menu:shifted:
getMenuTitleSelector: nil
hasFocus: true
hScrollBar: a ScrollBar(1158)
getListSelector: #roots
setSelectionSelector: #selection:
keystrokeActionSelector: #keyStroke:from:
autoDeselect: nil
columns: an OrderedCollection(a MorphTreeColumn a MorphTreeColumn)
sortingSelector: nil
potentialDropMorph: nil
lineColor: nil
hCellInset: 4
vCellInset: 6
columnResizers: an OrderedCollection(a MorphTreeResizerMorph(2932))
withHLines: false
preferedPaneColor: (Color r: 0.91 g: 0.905 b: 0.905)
indentGap: 20
expandedToggleImage: an ImageMorph(2307)
notExpandedToggleImage: an ImageMorph(1287)
resizerWidth: 4
gapAfterIcon: 4
gapAfterToggle: 5
hasToggleAtRoot: true
scrollDeltaHeight: 20
getSelectionSelector: #selection
topHeader: a Morph(3150)
topHeaderBackground: Color transparent
unboundLastColumn: true
columnDropUnabled: nil
iconReservedExtent: 16@16
columnColors: #(nil nil)
rowColors: {(Color r: 0.941 g: 0.941 b: 0.941). nil}
allowsMultipleSelection: nil
selectedMorphList: an OrderedCollection()
lastSelectedMorph: nil
doubleClickSelector: #doubleClick
MorphTreeNodeMorph>>toggleExpandedState
Receiver: a MorphTreeNodeMorph(809)
Arguments and temporary variables:
newChildren: nil
toDelete: an OrderedCollection()
c: an OrderedCollection(a SettingTreeNode a SettingTreeNode a
SettingTreeNode a...etc...
Receiver's instance variables:
bounds: 0@104 corner: 785@128
owner: a MorphTreeTransformMorph(3458)
submorphs: an Array(a Morph(2725) a Morph(1967))
fullBounds: -3@104 corner: 785@128
color: Color transparent
extension: a MorphExtension (2580)
parent: nil
index: 5
indentLevel: 0
isExpanded: true
complexContents: a SettingTreeNode
firstChild: nil
container: a MorphTreeMorph(2492)
nextSibling: a MorphTreeNodeMorph(2832)
icon: Form(16x16x32)
rowMorph: a Morph(1967)
controls: an OrderedCollection(a StringMorph(554)'Debugging' a Morph(1417))
spacers: an OrderedCollection(a Morph(2725) a Morph(3715))
MorphTreeMorph>>toggleExpandedState:event:
Receiver: a MorphTreeMorph(2492)
Arguments and temporary variables:
aMorph: a MorphTreeNodeMorph(809)
event: [651@543 mouseDown red 1369922 nil]
oldState: nil
Receiver's instance variables:
bounds: 642@426 corner: 1432@845
owner: a StandardWindow(2409)
submorphs: an Array(a MorphTreeResizerMorph(2932) a Morph(3150) a
MorphTreeTran...etc...
fullBounds: 642@426 corner: 1432@845
color: (Color r: 0.91 g: 0.905 b: 0.905)
extension: a MorphExtension (1933) [locked] [eventHandler = an EventHandler
re...etc...
borderWidth: 1
borderColor: (Color r: 0.833 g: 0.833 b: 0.833)
model: a SystemSettingBrowser
slotName: nil
open: false
scrollBar: a ScrollBar(1046)
scroller: a MorphTreeTransformMorph(3458)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #menu:shifted:
getMenuTitleSelector: nil
hasFocus: true
hScrollBar: a ScrollBar(1158)
getListSelector: #roots
setSelectionSelector: #selection:
keystrokeActionSelector: #keyStroke:from:
autoDeselect: nil
columns: an OrderedCollection(a MorphTreeColumn a MorphTreeColumn)
sortingSelector: nil
potentialDropMorph: nil
lineColor: nil
hCellInset: 4
vCellInset: 6
columnResizers: an OrderedCollection(a MorphTreeResizerMorph(2932))
withHLines: false
preferedPaneColor: (Color r: 0.91 g: 0.905 b: 0.905)
indentGap: 20
expandedToggleImage: an ImageMorph(2307)
notExpandedToggleImage: an ImageMorph(1287)
resizerWidth: 4
gapAfterIcon: 4
gapAfterToggle: 5
hasToggleAtRoot: true
scrollDeltaHeight: 20
getSelectionSelector: #selection
topHeader: a Morph(3150)
topHeaderBackground: Color transparent
unboundLastColumn: true
columnDropUnabled: nil
iconReservedExtent: 16@16
columnColors: #(nil nil)
rowColors: {(Color r: 0.941 g: 0.941 b: 0.941). nil}
allowsMultipleSelection: nil
selectedMorphList: an OrderedCollection()
lastSelectedMorph: nil
doubleClickSelector: #doubleClick
MorphTreeMorph>>mouseDown:
Receiver: a MorphTreeMorph(2492)
Arguments and temporary variables:
evt: [651@543 mouseDown red 1369922 nil]
aMorph: a MorphTreeNodeMorph(809)
selectors: nil
Receiver's instance variables:
bounds: 642@426 corner: 1432@845
owner: a StandardWindow(2409)
submorphs: an Array(a MorphTreeResizerMorph(2932) a Morph(3150) a
MorphTreeTran...etc...
fullBounds: 642@426 corner: 1432@845
color: (Color r: 0.91 g: 0.905 b: 0.905)
extension: a MorphExtension (1933) [locked] [eventHandler = an EventHandler
re...etc...
borderWidth: 1
borderColor: (Color r: 0.833 g: 0.833 b: 0.833)
model: a SystemSettingBrowser
slotName: nil
open: false
scrollBar: a ScrollBar(1046)
scroller: a MorphTreeTransformMorph(3458)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #menu:shifted:
getMenuTitleSelector: nil
hasFocus: true
hScrollBar: a ScrollBar(1158)
getListSelector: #roots
setSelectionSelector: #selection:
keystrokeActionSelector: #keyStroke:from:
autoDeselect: nil
columns: an OrderedCollection(a MorphTreeColumn a MorphTreeColumn)
sortingSelector: nil
potentialDropMorph: nil
lineColor: nil
hCellInset: 4
vCellInset: 6
columnResizers: an OrderedCollection(a MorphTreeResizerMorph(2932))
withHLines: false
preferedPaneColor: (Color r: 0.91 g: 0.905 b: 0.905)
indentGap: 20
expandedToggleImage: an ImageMorph(2307)
notExpandedToggleImage: an ImageMorph(1287)
resizerWidth: 4
gapAfterIcon: 4
gapAfterToggle: 5
hasToggleAtRoot: true
scrollDeltaHeight: 20
getSelectionSelector: #selection
topHeader: a Morph(3150)
topHeaderBackground: Color transparent
unboundLastColumn: true
columnDropUnabled: nil
iconReservedExtent: 16@16
columnColors: #(nil nil)
rowColors: {(Color r: 0.941 g: 0.941 b: 0.941). nil}
allowsMultipleSelection: nil
selectedMorphList: an OrderedCollection()
lastSelectedMorph: nil
doubleClickSelector: #doubleClick
MorphTreeMorph(Morph)>>handleMouseDown:
Receiver: a MorphTreeMorph(2492)
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
Receiver's instance variables:
bounds: 642@426 corner: 1432@845
owner: a StandardWindow(2409)
submorphs: an Array(a MorphTreeResizerMorph(2932) a Morph(3150) a
MorphTreeTran...etc...
fullBounds: 642@426 corner: 1432@845
color: (Color r: 0.91 g: 0.905 b: 0.905)
extension: a MorphExtension (1933) [locked] [eventHandler = an EventHandler
re...etc...
borderWidth: 1
borderColor: (Color r: 0.833 g: 0.833 b: 0.833)
model: a SystemSettingBrowser
slotName: nil
open: false
scrollBar: a ScrollBar(1046)
scroller: a MorphTreeTransformMorph(3458)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #menu:shifted:
getMenuTitleSelector: nil
hasFocus: true
hScrollBar: a ScrollBar(1158)
getListSelector: #roots
setSelectionSelector: #selection:
keystrokeActionSelector: #keyStroke:from:
autoDeselect: nil
columns: an OrderedCollection(a MorphTreeColumn a MorphTreeColumn)
sortingSelector: nil
potentialDropMorph: nil
lineColor: nil
hCellInset: 4
vCellInset: 6
columnResizers: an OrderedCollection(a MorphTreeResizerMorph(2932))
withHLines: false
preferedPaneColor: (Color r: 0.91 g: 0.905 b: 0.905)
indentGap: 20
expandedToggleImage: an ImageMorph(2307)
notExpandedToggleImage: an ImageMorph(1287)
resizerWidth: 4
gapAfterIcon: 4
gapAfterToggle: 5
hasToggleAtRoot: true
scrollDeltaHeight: 20
getSelectionSelector: #selection
topHeader: a Morph(3150)
topHeaderBackground: Color transparent
unboundLastColumn: true
columnDropUnabled: nil
iconReservedExtent: 16@16
columnColors: #(nil nil)
rowColors: {(Color r: 0.941 g: 0.941 b: 0.941). nil}
allowsMultipleSelection: nil
selectedMorphList: an OrderedCollection()
lastSelectedMorph: nil
doubleClickSelector: #doubleClick
MouseButtonEvent>>sentTo:
Receiver: [651@543 mouseDown red 1369922 nil]
Arguments and temporary variables:
anObject: a MorphTreeMorph(2492)
Receiver's instance variables:
timeStamp: 1369922
source: a HandMorph(3216)
windowIndex: nil
type: #mouseDown
buttons: 4
position: 651@543
handler: a MorphTreeMorph(2492)
wasHandled: true
whichButton: 4
MorphTreeMorph(Morph)>>handleEvent:
Receiver: a MorphTreeMorph(2492)
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
Receiver's instance variables:
bounds: 642@426 corner: 1432@845
owner: a StandardWindow(2409)
submorphs: an Array(a MorphTreeResizerMorph(2932) a Morph(3150) a
MorphTreeTran...etc...
fullBounds: 642@426 corner: 1432@845
color: (Color r: 0.91 g: 0.905 b: 0.905)
extension: a MorphExtension (1933) [locked] [eventHandler = an EventHandler
re...etc...
borderWidth: 1
borderColor: (Color r: 0.833 g: 0.833 b: 0.833)
model: a SystemSettingBrowser
slotName: nil
open: false
scrollBar: a ScrollBar(1046)
scroller: a MorphTreeTransformMorph(3458)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #menu:shifted:
getMenuTitleSelector: nil
hasFocus: true
hScrollBar: a ScrollBar(1158)
getListSelector: #roots
setSelectionSelector: #selection:
keystrokeActionSelector: #keyStroke:from:
autoDeselect: nil
columns: an OrderedCollection(a MorphTreeColumn a MorphTreeColumn)
sortingSelector: nil
potentialDropMorph: nil
lineColor: nil
hCellInset: 4
vCellInset: 6
columnResizers: an OrderedCollection(a MorphTreeResizerMorph(2932))
withHLines: false
preferedPaneColor: (Color r: 0.91 g: 0.905 b: 0.905)
indentGap: 20
expandedToggleImage: an ImageMorph(2307)
notExpandedToggleImage: an ImageMorph(1287)
resizerWidth: 4
gapAfterIcon: 4
gapAfterToggle: 5
hasToggleAtRoot: true
scrollDeltaHeight: 20
getSelectionSelector: #selection
topHeader: a Morph(3150)
topHeaderBackground: Color transparent
unboundLastColumn: true
columnDropUnabled: nil
iconReservedExtent: 16@16
columnColors: #(nil nil)
rowColors: {(Color r: 0.941 g: 0.941 b: 0.941). nil}
allowsMultipleSelection: nil
selectedMorphList: an OrderedCollection()
lastSelectedMorph: nil
doubleClickSelector: #doubleClick
MorphicEventDispatcher>>dispatchMouseDown:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
aMorph: a MorphTreeMorph(2492)
globalPt: 651@543
localEvt: [651@543 mouseDown red 1369922 nil]
index: 4
child: a MorphTreeTransformMorph(3458)
morphs: an Array(a MorphTreeResizerMorph(2932) a Morph(3150) a
MorphTreeTransfo...etc...
handler: a MorphTreeMorph(2492)
inside: false
lastHandler: a PasteUpMorph(1622) [world]
Receiver's instance variables:
lastType: #mouseDown
lastDispatch: #dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
aMorph: a MorphTreeMorph(2492)
Receiver's instance variables:
lastType: #mouseDown
lastDispatch: #dispatchMouseDown:with:
MorphTreeMorph(Morph)>>processEvent:using:
Receiver: a MorphTreeMorph(2492)
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
defaultDispatcher: a MorphicEventDispatcher
Receiver's instance variables:
bounds: 642@426 corner: 1432@845
owner: a StandardWindow(2409)
submorphs: an Array(a MorphTreeResizerMorph(2932) a Morph(3150) a
MorphTreeTran...etc...
fullBounds: 642@426 corner: 1432@845
color: (Color r: 0.91 g: 0.905 b: 0.905)
extension: a MorphExtension (1933) [locked] [eventHandler = an EventHandler
re...etc...
borderWidth: 1
borderColor: (Color r: 0.833 g: 0.833 b: 0.833)
model: a SystemSettingBrowser
slotName: nil
open: false
scrollBar: a ScrollBar(1046)
scroller: a MorphTreeTransformMorph(3458)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #menu:shifted:
getMenuTitleSelector: nil
hasFocus: true
hScrollBar: a ScrollBar(1158)
getListSelector: #roots
setSelectionSelector: #selection:
keystrokeActionSelector: #keyStroke:from:
autoDeselect: nil
columns: an OrderedCollection(a MorphTreeColumn a MorphTreeColumn)
sortingSelector: nil
potentialDropMorph: nil
lineColor: nil
hCellInset: 4
vCellInset: 6
columnResizers: an OrderedCollection(a MorphTreeResizerMorph(2932))
withHLines: false
preferedPaneColor: (Color r: 0.91 g: 0.905 b: 0.905)
indentGap: 20
expandedToggleImage: an ImageMorph(2307)
notExpandedToggleImage: an ImageMorph(1287)
resizerWidth: 4
gapAfterIcon: 4
gapAfterToggle: 5
hasToggleAtRoot: true
scrollDeltaHeight: 20
getSelectionSelector: #selection
topHeader: a Morph(3150)
topHeaderBackground: Color transparent
unboundLastColumn: true
columnDropUnabled: nil
iconReservedExtent: 16@16
columnColors: #(nil nil)
rowColors: {(Color r: 0.941 g: 0.941 b: 0.941). nil}
allowsMultipleSelection: nil
selectedMorphList: an OrderedCollection()
lastSelectedMorph: nil
doubleClickSelector: #doubleClick
MorphicEventDispatcher>>dispatchMouseDown:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
aMorph: a StandardWindow(2409)
globalPt: 651@543
localEvt: [651@543 mouseDown red 1369922 nil]
index: 11
child: a MorphTreeMorph(2492)
morphs: an Array(a WindowEdgeGripMorph(698) a WindowEdgeGripMorph(548) a
Window...etc...
handler: nil
inside: nil
lastHandler: a PasteUpMorph(1622) [world]
Receiver's instance variables:
lastType: #mouseDown
lastDispatch: #dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
aMorph: a StandardWindow(2409)
Receiver's instance variables:
lastType: #mouseDown
lastDispatch: #dispatchMouseDown:with:
StandardWindow(Morph)>>processEvent:using:
Receiver: a StandardWindow(2409)
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
defaultDispatcher: a MorphicEventDispatcher
Receiver's instance variables:
bounds: 637@352 corner: 1437@952
owner: a PasteUpMorph(1622) [world]
submorphs: an Array(a WindowEdgeGripMorph(698) a WindowEdgeGripMorph(548) a
Win...etc...
fullBounds: nil
color: (Color r: 0.816 g: 0.812 b: 0.812)
extension: a MorphExtension (200) [other: (hasDropShadow -> true)
(shadowOffse...etc...
borderWidth: 1
borderColor: Color lightGray
model: a SystemSettingBrowser
slotName: nil
open: false
labelString: 'System setting browser'
stripes: an Array(a RectangleMorph(81) a RectangleMorph(3334))
label: a LabelMorph(3350)'System setting browser'
closeBox: a MultistateButtonMorph(3600)
collapseBox: a MultistateButtonMorph(1918)
activeOnlyOnTop: true
paneMorphs: an Array(a PluggableTextEditorMorph(1503) a
PluggableTextEditorMorp...etc...
paneRects: nil
collapsedFrame: nil
fullFrame: 637@352 corner: 1437@952
isCollapsed: false
menuBox: an IconicButton(2409)
mustNotClose: false
labelWidgetAllowance: 98
updatablePanes: #()
allowReframeHandles: true
labelArea: an AlignmentMorph(1002)
expandBox: a MultistateButtonMorph(2851)
MorphicEventDispatcher>>dispatchMouseDown:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
aMorph: a PasteUpMorph(1622) [world]
globalPt: 651@543
localEvt: [651@543 mouseDown red 1369922 nil]
index: 2
child: a StandardWindow(2409)
morphs: an Array(a TaskbarMorph(3095) a StandardWindow(2409) a
PreferenceBrowse...etc...
handler: a PasteUpMorph(1622) [world]
inside: nil
lastHandler: nil
Receiver's instance variables:
lastType: #mouseDown
lastDispatch: #dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
aMorph: a PasteUpMorph(1622) [world]
Receiver's instance variables:
lastType: #mouseDown
lastDispatch: #dispatchMouseDown:with:
PasteUpMorph(Morph)>>processEvent:using:
Receiver: a PasteUpMorph(1622) [world]
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
defaultDispatcher: a MorphicEventDispatcher
Receiver's instance variables:
bounds: 0@0 corner: 1920@1150
owner: nil
submorphs: an Array(a TaskbarMorph(3095) a PreDebugWindow(236) a
StandardWindow...etc...
fullBounds: nil
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)
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
PasteUpMorph>>processEvent:using:
Receiver: a PasteUpMorph(1622) [world]
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
defaultDispatcher: a MorphicEventDispatcher
priorWorld: a PasteUpMorph(1622) [world]
result: nil
Receiver's instance variables:
bounds: 0@0 corner: 1920@1150
owner: nil
submorphs: an Array(a TaskbarMorph(3095) a PreDebugWindow(236) a
StandardWindow...etc...
fullBounds: nil
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)
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
PasteUpMorph(Morph)>>processEvent:
Receiver: a PasteUpMorph(1622) [world]
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
Receiver's instance variables:
bounds: 0@0 corner: 1920@1150
owner: nil
submorphs: an Array(a TaskbarMorph(3095) a PreDebugWindow(236) a
StandardWindow...etc...
fullBounds: nil
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)
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>>sendEvent:focus:clear:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
focusHolder: nil
aBlock: [closure] in HandMorph>>sendMouseEvent:
result: nil
Receiver's instance variables:
bounds: 651@543 corner: 667@559
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 651@543 corner: 667@559
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: a MorphTreeMorph(2492)
keyboardFocus: a PluggableButtonMorph(289)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [651@543 mouseDown red 1369922 nil]
targetOffset: 9@117
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 1369922 651 543 4 0 0 1)
lastKeyScanCode: 18
combinedChar: nil
HandMorph>>sendMouseEvent:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
Receiver's instance variables:
bounds: 651@543 corner: 667@559
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 651@543 corner: 667@559
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: a MorphTreeMorph(2492)
keyboardFocus: a PluggableButtonMorph(289)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [651@543 mouseDown red 1369922 nil]
targetOffset: 9@117
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 1369922 651 543 4 0 0 1)
lastKeyScanCode: 18
combinedChar: nil
HandMorph>>handleEvent:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
anEvent: [651@543 mouseDown red 1369922 nil]
evt: [651@543 mouseDown red 1369922 nil]
ofs: nil
Receiver's instance variables:
bounds: 651@543 corner: 667@559
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 651@543 corner: 667@559
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: a MorphTreeMorph(2492)
keyboardFocus: a PluggableButtonMorph(289)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [651@543 mouseDown red 1369922 nil]
targetOffset: 9@117
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 1369922 651 543 4 0 0 1)
lastKeyScanCode: 18
combinedChar: nil
HandMorph>>processEvents
Receiver: a HandMorph(3216)
Arguments and temporary variables:
evt: [651@543 mouseDown red 1369922 nil]
evtBuf: #(1 1369922 651 543 4 0 0 1)
type: 1
hadAny: false
Receiver's instance variables:
bounds: 651@543 corner: 667@559
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 651@543 corner: 667@559
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: a MorphTreeMorph(2492)
keyboardFocus: a PluggableButtonMorph(289)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [651@543 mouseDown red 1369922 nil]
targetOffset: 9@117
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 1369922 651 543 4 0 0 1)
lastKeyScanCode: 18
combinedChar: nil
[] in WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
h: a HandMorph(3216)
Receiver's instance variables:
hands: an Array(a HandMorph(3216))
viewBox: 0@0 corner: 1920@1150
canvas: a FormCanvas on: DisplayScreen(1920x1150x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> an EditableDropListMorph(1020))(an
Edi...etc...
lastStepTime: 1369916
lastStepMessage: nil
lastCycleTime: 1369956
commandHistory: a CommandHistory
alarms: a Heap()
lastAlarmTime: 1369916
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: 1920@1150
canvas: a FormCanvas on: DisplayScreen(1920x1150x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> an EditableDropListMorph(1020))(an
Edi...etc...
lastStepTime: 1369916
lastStepMessage: nil
lastCycleTime: 1369956
commandHistory: a CommandHistory
alarms: a Heap()
lastAlarmTime: 1369916
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: 1920@1150
canvas: a FormCanvas on: DisplayScreen(1920x1150x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> an EditableDropListMorph(1020))(an
Edi...etc...
lastStepTime: 1369916
lastStepMessage: nil
lastCycleTime: 1369956
commandHistory: a CommandHistory
alarms: a Heap()
lastAlarmTime: 1369916
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: 1920@1150
canvas: a FormCanvas on: DisplayScreen(1920x1150x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> an EditableDropListMorph(1020))(an
Edi...etc...
lastStepTime: 1369916
lastStepMessage: nil
lastCycleTime: 1369956
commandHistory: a CommandHistory
alarms: a Heap()
lastAlarmTime: 1369916
PasteUpMorph>>doOneCycle
Receiver: a PasteUpMorph(1622) [world]
Arguments and temporary variables:
Receiver's instance variables:
bounds: 0@0 corner: 1920@1150
owner: nil
submorphs: an Array(a TaskbarMorph(3095) a PreDebugWindow(236) a
StandardWindow...etc...
fullBounds: nil
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)
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(#assureMainDockingBarPresenceMatchesPreference->...etc...
format: 170
instanceVariables: #('world' 'changeSet' 'transcript' 'parentProject'
'previous...etc...
organization: ('*Polymorph-Widgets' createTaskbarIfNecessary
moveCollapsedWindo...etc...
subclasses: nil
name: #Project
classPool: a Dictionary(#AllProjects->an OrderedCollection(a Project)
#CurrentP...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 ---
UserInterruptHandler class(Object)>>doesNotUnderstand: #cmdDotEnabled
SettingDeclaration>>realValue
SettingDeclaration>>type
SettingDeclaration>>defaultIcon
SettingDeclaration(PragmaSetting)>>icon
SettingTreeNode>>icon
MorphTreeNodeMorph>>initWithContents:prior:forList:indentLevel:
[] in MorphTreeMorph>>addMorphsAfter:fromCollection:allowSorting:
OrderedCollection>>do:
MorphTreeMorph>>addMorphsAfter:fromCollection:allowSorting:
MorphTreeNodeMorph>>toggleExpandedState
MorphTreeMorph>>toggleExpandedState:event:
MorphTreeMorph>>mouseDown:
MorphTreeMorph(Morph)>>handleMouseDown:
MouseButtonEvent>>sentTo:
MorphTreeMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
MorphTreeMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
StandardWindow(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
PasteUpMorph(Morph)>>processEvent:using:
PasteUpMorph>>processEvent:using:
PasteUpMorph(Morph)>>processEvent:
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
------------------------------------------------------------
Kind Regards,
Bart
--
imagination is more important than knowledge - Albert Einstein
Logic will get you from A to B. Imagination will take you everywhere -
Albert Einstein
Learn from yesterday, live for today, hope for tomorrow. The important thing
is not to stop questioning. - Albert Einstein
The true sign of intelligence is not knowledge but imagination. - Albert
Einstein
Gravitation is not responsible for people falling in love. - Albert Einstein
Dec. 10, 2009
Re: [Pharo-project] roelTyper doesn't always return assignements
by Cyrille Delaunay
Ok, thank you very much :)
2009/12/10 Frederic Pluquet <fpluquet(a)ulb.ac.be>
> Oups... I answered too quickly ! It is not a bug :) !
>
> As explain in this article<http://decomp.ulb.ac.be:9090/FrepSite/Papers/Fast%20Type%20Reconstruction%2…>,
> we link the variables (temporary variables, instance variables and returned
> values of methods) during the extraction of types. The links permit to
> associate some varaibles between them. For example in
>
> *OrderedCollection>>grow
> "Become larger. Typically, a subclass has to override this if the
> subclass
> adds instance variables."
> | newArray |
> newArray := Array new: self size + self growSize.
> newArray replaceFrom: 1 to: array size with: array startingAt: 1.
> array := newArray
> *
> RoelTyper links the temporary variable #newArray to the instance variable
> #array (because #newArray is assigned to #array).
>
> When you ask the extractedType by:
>
>
> * TypeCollector typeInstvar: #array ofClass: OrderedCollection.
>
> *
> the extractedType for #array contains the types assignements found for
> #array. And in the code, there are no one (no direct assignment of an object
> created by a message defined in the "instance creation" protocol of the
> class on which the message is sent (see the table of heuristics at the
> beginning of the page 4th of the paper)). But other linked extractedTypes
> has types assignements (as #newArray in OrderedCollection>>grow). So to
> retrieve this information in the extractedType of #array you must flatten
> the links (read the section 7 of the paper if you want more information),
> so:
>
> * (TypeCollector typeInstvar: #array ofClass: OrderedCollection)
> flattenLinks.
> *
> We don't flatten the links automatically because once flattened, the links
> are deleted from linked extractedTypes. We think it is important to keep
> this information available by default.
>
> The links are automatically flattened when you ask to calculate the
> possible types:
>
> *
> (TypeCollector typeInstvar: #array ofClass: OrderedCollection) types.
> *
>
> Fréd
> ----
> Frédéric Pluquet
> Université Libre de Bruxelles (ULB)
> Assistant
> http://www.ulb.ac.be/di/fpluquet
>
>
> 2009/12/10 fpluquet <fpluquet(a)ulb.ac.be>
>
> Hello Cyrille,
>>
>> First of all, thanks for trying to use RoelTyper! It is always interesting
>> to have feedback !
>>
>> There are two things.
>> Firstly, you found a bug in RoelTyper :) RoelTyper should find some
>> assignments for #array in OrderedCollection (in OrderedCollection>>grow for
>> example). I must fix that.
>> Secondly, RoelTyper found the right type for #array: Array! When you
>> execute:
>>
>> * TypeCollector typeInstvar: #array ofClass: OrderedCollection.*
>>
>> it returns an ExtractedType (containing Assignments (normally :)) and
>> Messages sends). To merge information and find the possible types for this
>> extractedType you must send the message #types on it.
>>
>> *(TypeCollector typeInstvar: #array ofClass: OrderedCollection) types.*
>>
>> giving: Array
>>
>> Fréd
>> ----
>> Frédéric Pluquet
>> Université Libre de Bruxelles (ULB)
>> Assistant
>> http://www.ulb.ac.be/di/fpluquet
>>
>>
>> 2009/12/10 Cyrille Delaunay <cy.delaunay(a)gmail.com>
>>
>>>
>>>
>>> Hi,
>>>
>>> I'm trying to use RoelTyper in Pharo. A question I ask myself is: 'Is it
>>> normal that roelTyper doesn't always return some assignements' ?
>>> For example, when I evaluate:
>>> TypeCollector typeInstvar: #array ofClass: OrderedCollection .
>>> the assignements returned is an empty collection. I would expect that
>>> even roelTyper doesn't retrieve the exact type, it would always return a
>>> collection of 'candidate' types.
>>> Am I using it in a wrong way?
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>
Dec. 10, 2009
Re: [Pharo-project] roelTyper doesn't always return assignements
by Frederic Pluquet
Oups... I answered too quickly ! It is not a bug :) !
As explain in this
article<http://decomp.ulb.ac.be:9090/FrepSite/Papers/Fast%20Type%20Reconstruction%2…>,
we link the variables (temporary variables, instance variables and returned
values of methods) during the extraction of types. The links permit to
associate some varaibles between them. For example in
*OrderedCollection>>grow
"Become larger. Typically, a subclass has to override this if the
subclass
adds instance variables."
| newArray |
newArray := Array new: self size + self growSize.
newArray replaceFrom: 1 to: array size with: array startingAt: 1.
array := newArray
*
RoelTyper links the temporary variable #newArray to the instance variable
#array (because #newArray is assigned to #array).
When you ask the extractedType by:
* TypeCollector typeInstvar: #array ofClass: OrderedCollection.
*the extractedType for #array contains the types assignements found for
#array. And in the code, there are no one (no direct assignment of an object
created by a message defined in the "instance creation" protocol of the
class on which the message is sent (see the table of heuristics at the
beginning of the page 4th of the paper)). But other linked extractedTypes
has types assignements (as #newArray in OrderedCollection>>grow). So to
retrieve this information in the extractedType of #array you must flatten
the links (read the section 7 of the paper if you want more information),
so:
* (TypeCollector typeInstvar: #array ofClass: OrderedCollection)
flattenLinks.
*
We don't flatten the links automatically because once flattened, the links
are deleted from linked extractedTypes. We think it is important to keep
this information available by default.
The links are automatically flattened when you ask to calculate the possible
types:
*
(TypeCollector typeInstvar: #array ofClass: OrderedCollection) types.
*
Fréd
----
Frédéric Pluquet
Université Libre de Bruxelles (ULB)
Assistant
http://www.ulb.ac.be/di/fpluquet
2009/12/10 fpluquet <fpluquet(a)ulb.ac.be>
> Hello Cyrille,
>
> First of all, thanks for trying to use RoelTyper! It is always interesting
> to have feedback !
>
> There are two things.
> Firstly, you found a bug in RoelTyper :) RoelTyper should find some
> assignments for #array in OrderedCollection (in OrderedCollection>>grow for
> example). I must fix that.
> Secondly, RoelTyper found the right type for #array: Array! When you
> execute:
>
> * TypeCollector typeInstvar: #array ofClass: OrderedCollection.*
>
> it returns an ExtractedType (containing Assignments (normally :)) and
> Messages sends). To merge information and find the possible types for this
> extractedType you must send the message #types on it.
>
> *(TypeCollector typeInstvar: #array ofClass: OrderedCollection) types.*
>
> giving: Array
>
> Fréd
> ----
> Frédéric Pluquet
> Université Libre de Bruxelles (ULB)
> Assistant
> http://www.ulb.ac.be/di/fpluquet
>
>
> 2009/12/10 Cyrille Delaunay <cy.delaunay(a)gmail.com>
>
>>
>>
>> Hi,
>>
>> I'm trying to use RoelTyper in Pharo. A question I ask myself is: 'Is it
>> normal that roelTyper doesn't always return some assignements' ?
>> For example, when I evaluate:
>> TypeCollector typeInstvar: #array ofClass: OrderedCollection .
>> the assignements returned is an empty collection. I would expect that even
>> roelTyper doesn't retrieve the exact type, it would always return a
>> collection of 'candidate' types.
>> Am I using it in a wrong way?
>>
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
Dec. 10, 2009
Re: [Pharo-project] Problems with updates 1.0 & 1.1 on XP ...
by laurent laffont
Hi,
I've also tested on XP Pro SP3, with windows installers. No errors for both
rc1 and alpha.. 1.1 alpha took 20mn to update to #11083.
What is you configuration ?
Laurent
Dec. 10, 2009
Re: [Pharo-project] Problems with updates 1.0 & 1.1 on XP ...
by Bart Gauquie
Hi,
I tested the updating on Windows Vista 64 bit. And used the 1.1 alpha Image.
It gave some errors concerning 'nil is not a class' and this was needed to
load all the updated classes. I proceeded, and everything seems ok here.
I'm now running PharoCore1.1ALPHA, Latest update: #11083
It took however 15 - 20 minutes in total.
Kind regards,
Bart
On Thu, Dec 10, 2009 at 1:48 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr
> wrote:
> Can you tell us more your setup?
> We are several on mac and got no problem.
> Now for Windows we need more information.
>
> Stef
> On Dec 10, 2009, at 12:56 AM, Guido Stepken wrote:
>
> > Hi folks!
> >
> > I installed recent Pharo 1.0 and downloaded also the 1.1 alpha Image.
> >
> > Updating both fails finally. 1.1 stops updating at a certain point, 1.0
> > updates, but classbrowser finally doesn't work.
> >
> > Any ideas?
> >
> > tnx, Guido
> >
> > _______________________________________________
> > 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
>
--
imagination is more important than knowledge - Albert Einstein
Logic will get you from A to B. Imagination will take you everywhere -
Albert Einstein
Learn from yesterday, live for today, hope for tomorrow. The important thing
is not to stop questioning. - Albert Einstein
The true sign of intelligence is not knowledge but imagination. - Albert
Einstein
Gravitation is not responsible for people falling in love. - Albert Einstein
Dec. 10, 2009
Re: [Pharo-project] roelTyper doesn't always return assignements
by Frederic Pluquet
Hello Cyrille,
First of all, thanks for trying to use RoelTyper! It is always interesting
to have feedback !
There are two things.
Firstly, you found a bug in RoelTyper :) RoelTyper should find some
assignments for #array in OrderedCollection (in OrderedCollection>>grow for
example). I must fix that.
Secondly, RoelTyper found the right type for #array: Array! When you
execute:
* TypeCollector typeInstvar: #array ofClass: OrderedCollection.*
it returns an ExtractedType (containing Assignments (normally :)) and
Messages sends). To merge information and find the possible types for this
extractedType you must send the message #types on it.
*(TypeCollector typeInstvar: #array ofClass: OrderedCollection) types.*
giving: Array
Fréd
----
Frédéric Pluquet
Université Libre de Bruxelles (ULB)
Assistant
http://www.ulb.ac.be/di/fpluquet
2009/12/10 Cyrille Delaunay <cy.delaunay(a)gmail.com>
>
>
> Hi,
>
> I'm trying to use RoelTyper in Pharo. A question I ask myself is: 'Is it
> normal that roelTyper doesn't always return some assignements' ?
> For example, when I evaluate:
> TypeCollector typeInstvar: #array ofClass: OrderedCollection .
> the assignements returned is an empty collection. I would expect that even
> roelTyper doesn't retrieve the exact type, it would always return a
> collection of 'candidate' types.
> Am I using it in a wrong way?
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 10, 2009
Re: [Pharo-project] Problems with updates 1.0 & 1.1 on XP ...
by Stéphane Ducasse
Can you tell us more your setup?
We are several on mac and got no problem.
Now for Windows we need more information.
Stef
On Dec 10, 2009, at 12:56 AM, Guido Stepken wrote:
> Hi folks!
>
> I installed recent Pharo 1.0 and downloaded also the 1.1 alpha Image.
>
> Updating both fails finally. 1.1 stops updating at a certain point, 1.0
> updates, but classbrowser finally doesn't work.
>
> Any ideas?
>
> tnx, Guido
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Dec. 10, 2009