Is 'self halt.' in BlockContext taboo?
Kouji takahashi
tako at aquilax.co.jp
Thu Jun 10 06:43:57 UTC 2004
Hi, Is this a known problem? Am I doing wrong?
What can I do for the community?
'halt' in BlockContext behaves strangely Squeak3.7beta [latest update: #5948] on MacOSX10.3.4.
VM is Squeak3.7.3Beta4.app and just downloaded image.
Open workspace in new Morphic project and printIt( or evaluate) next code give different results.
[ self halt. 1] value
No response(GUI still responds, but unstable. No Debugger appeared. No result printed.) .
GUI freeze(without debugLog. 0.0% CPU usage. cmnd-. has no effect).
Debugger open as I expected (when proceed, print 1 as result).
===== SqueakDebug.log
Halt
10 June 2004 10:26:11 am
VM: Mac OS - a SmalltalkImage
Image: Squeak3.7beta [latest update: #5948]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir PBG4:Squeak3.7b-5948 Folder
Trusted Dir PBG4:Squeak3.7b-5948 Folder
Untrusted Dir foobar:tooBar:forSqueak:bogus
UndefinedObject(Object)>>halt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
[] in UndefinedObject>>DoIt {[:a :b | self halt. sum := a + b. sum]}
Arguments and temporary variables:
a: 1
b: 2
sum: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
a: 1
b: 2
sum: nil
Receiver's instance variables:
nil
Compiler>>evaluate:in:to:notifying:ifFail:logged:
Receiver: a Compiler
Arguments and temporary variables:
textOrStream: a ReadWriteStream '[ :a :b | |sum| self halt. sum _ a + b. sum] v...etc...
aContext: nil
receiver: nil
aRequestor: a TextMorphEditor
failBlock: [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection {[FakeClas...etc...
logFlag: true
methodNode: DoIt
^ [:a :b |
| sum |
self halt.
sum := a + b.
sum]
valu...etc...
method: a CompiledMethod (754)
value: nil
selector: #DoIt
Receiver's instance variables:
sourceStream: a ReadWriteStream '[ :a :b | |sum| self halt. sum _ a + b. sum] v...etc...
requestor: a TextMorphEditor
class: UndefinedObject
context: nil
parserClass: Parser
cacheDoItNode: true
--- The full stack ---
UndefinedObject(Object)>>halt
[] in UndefinedObject>>DoIt {[:a :b | self halt. sum := a + b. sum]}
UndefinedObject>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[] in TextMorphEditor(ParagraphEditor)>>evaluateSelection {[rcvr class evaluatorClass new evaluate: self selectionAsStream in: ctxt...]}
BlockContext>>on:do:
TextMorphEditor(ParagraphEditor)>>evaluateSelection
TextMorphEditor(ParagraphEditor)>>printIt
[] in TextMorphEditor(ParagraphEditor)>>printIt: {[self printIt]}
TextMorphEditor(Controller)>>terminateAndInitializeAround:
TextMorphEditor(ParagraphEditor)>>printIt:
TextMorphEditor(ParagraphEditor)>>dispatchOnCharacter:with:
TextMorphEditor>>dispatchOnCharacter:with:
TextMorphEditor(ParagraphEditor)>>readKeyboard
TextMorphEditor>>readKeyboard
[] in TextMorphForEditView(TextMorph)>>keyStroke: {[editor readKeyboard]}
TextMorphForEditView(TextMorph)>>handleInteraction:fromEvent:
TextMorphForEditView>>handleInteraction:fromEvent:
TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView>>keyStroke:
TextMorphForEditView(TextMorph)>>handleKeystroke:
KeyboardEvent>>sentTo:
TextMorphForEditView(Morph)>>handleEvent:
TextMorphForEditView(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self. ActiveEvent := anEvent. result := focusHolder han...]}
[] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
BlockContext>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendKeyboardEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h processEvents. capturingGesture := capturingGest...]}
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]}
[] in BlockContext>>newProcess {[self value. Processor terminateActive]}
-------------------------------
^. .^ Kouji Takahashi <tako at aquilax.co.jp>
='= Tel +81-3-3986-4834 Fax +81-3-5992-0792
More information about the Squeak-dev
mailing list
|