OmniBrowser optimizations

0 views
Skip to first unread message

David Röthlisberger

unread,
Apr 21, 2009, 8:56:21 AM4/21/09
to OB
Hi,

Alex and me did some optimizations for the OmniBrowser framework.
We focused on optimizing the updating of browser windows upon code changes
(recompilation, recategorization, removing, doIts, etc.). Such browser updates are
now an order of magnitude faster than before.
For details, have a look at class OBBenchmarks in OB-Enhancements.

To update you OmniBrowser installation, load the latest version of all installed
OB-packages (typically OmniBrowser, OB-Standard, OB-Morphic, and OB-Enhancements)
from http://source.wiresong.ca/ob.
In Pharo, you can also execute 'ScriptLoader loadOBAlpha'.

If you find any problems after this update, please let us know.

Cheers,
Alex and David

Hernán Morales Durand

unread,
Apr 21, 2009, 3:57:15 PM4/21/09
to omnibro...@googlegroups.com
Hello David,
Whenever I try to debug anything, another (pre)debugger windows
brings up with message : "Unable to debug a running process". Maybe an
issue with OTPreDebugNode>>debug: ?
Below is the stack from this new debugger window, not from the context
of the original exception.

21 April 2009 4:49:10 pm

VM: Win32 - a SmalltalkImage
Image: Pharo0.1 [Latest update: #10292]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true

OTDebugger class>>process:context:errorWasInUIProcess:
Receiver: OTDebugger
Arguments and temporary variables:
aProcess: a Process in OTToolset
class>>debug:context:label:contents:fullView:
aContext: OBEnhancementFan(OBFan)>>autoSelection
aBool: true
processNode: nil
contextNode: nil
Receiver''s instance variables:
superclass: OBBrowser
methodDict: a MethodDictionary(#cmdBrowse->a CompiledMethod (1152)
#cmdDebug->a...etc...
format: 136
instanceVariables: nil
organization: (''commands'' cmdBrowse cmdDebug cmdInspector)
(''updating'' debugger...etc...
subclasses: nil
name: #OTDebugger
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #''OB-Tools-Debugger''
traitComposition: nil
localSelectors: nil

OTDebugger class>>process:context:label:errorWasInUIProcess:
Receiver: OTDebugger
Arguments and temporary variables:
aProcess: a Process in OTToolset
class>>debug:context:label:contents:fullView:
aContext: OBEnhancementFan(OBFan)>>autoSelection
aString: ''MessageNotUnderstood: OBMetaNode>>fan:''
aBool: true
debugger: nil
Receiver''s instance variables:
superclass: OBBrowser
methodDict: a MethodDictionary(#cmdBrowse->a CompiledMethod (1152)
#cmdDebug->a...etc...
format: 136
instanceVariables: nil
organization: (''commands'' cmdBrowse cmdDebug cmdInspector)
(''updating'' debugger...etc...
subclasses: nil
name: #OTDebugger
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #''OB-Tools-Debugger''
traitComposition: nil
localSelectors: nil

OTDebugger class>>openProcess:context:label:errorWasInUIProcess:
Receiver: OTDebugger
Arguments and temporary variables:
aProcess: a Process in OTToolset
class>>debug:context:label:contents:fullView:
aContext: OBEnhancementFan(OBFan)>>autoSelection
aString: ''MessageNotUnderstood: OBMetaNode>>fan:''
aBool: true
Receiver''s instance variables:
superclass: OBBrowser
methodDict: a MethodDictionary(#cmdBrowse->a CompiledMethod (1152)
#cmdDebug->a...etc...
format: 136
instanceVariables: nil
organization: (''commands'' cmdBrowse cmdDebug cmdInspector)
(''updating'' debugger...etc...
subclasses: nil
name: #OTDebugger
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #''OB-Tools-Debugger''
traitComposition: nil
localSelectors: nil

[] in OTPreDebugNode>>debug:
Receiver: an OTPreDebugNode
Arguments and temporary variables:
aRequestor: an OTPreDebugPanel
proc: a Process in OTToolset class>>debug:context:label:contents:fullView:
Receiver''s instance variables:
metaNode: Predebug

navigation: nil
errorWasInUI: true
process: nil
context: OBMetaNode(Object)>>doesNotUnderstand: #fan:
label: ''MessageNotUnderstood: OBMetaNode>>fan:''
contents: ''OBMetaNode(Object)>>doesNotUnderstand: #fan:
OBEnhancementFan(OBFan)...etc...
debugOnMouseClick: true


--- The full stack ---
OTDebugger class>>process:context:errorWasInUIProcess:
OTDebugger class>>process:context:label:errorWasInUIProcess:
OTDebugger class>>openProcess:context:label:errorWasInUIProcess:
[] in OTPreDebugNode>>debug:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WorldState>>runStepMethodsIn:
PasteUpMorph>>runStepMethods
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess
'

2009/4/21 David Röthlisberger <squ...@webcitas.ch>:
Error# Unable to debug a running process..png
Reply all
Reply to author
Forward
0 new messages