I'm developing code which generates a method content, compiles it and adds it to an existing class.�
I compile the message using #compile: message:
for instance:
MorphicReplayDemoTest compile: '
testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 651@559 to: 643@579.
'.
This works fine. However if the contents of the method is too long; for instance:�
if the�self addMMEFrom: 1054@512 to: 1037@504. is repeated around 250 times; I get following error (see stack below)
The strange thing is that if I manually add that method using the editor and paste it, it works just fine. I even tested up to 5000 lines of code; its slow, but its working.
Any ideas how to solve this?
Thanks,
Bart
I'm using Pharo 1.0 rc update: 10502; using Ubuntu 9.10, using vm pharo-vm-0.15.2f-linux.
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "<" is nil
20 December 2009 8:17:14 pm
VM: unix - i686 - linux-gnu - Pharo0.1 of 16 May 2008 [latest update: #10074]
Image: PharoCore1.0rc1 [Latest update: #10502]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground Image
Trusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground Image/secure
Untrusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground Image/My Squeak
UndefinedObject(Object)>>doesNotUnderstand: #<
Receiver: nil
Arguments and temporary variables:
aMessage: < 0
exception: MessageNotUnderstood: receiver of "<" is nil
resumeValue: nil
Receiver's instance variables:
nil
EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral:
Receiver: {an EncoderForV3PlusClosures}
Arguments and temporary variables:
literalIndex: nil
Receiver's instance variables:
comment: nil
pc: nil
scopeTable: a Dictionary('false'->{false} 'nil'->{nil} 'recording'->{recording}...etc...
nTemps: 0
supered: false
requestor: nil
class: MorphicReplayDemoTest
selector: #testMethod
literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979. 482. ...etc...
selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//} #<->{<} #...etc...
litIndSet: a Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
litSet: a LiteralDictionary(size 402)
sourceRanges: a Dictionary(size 853)
globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to: 5778). ...etc...
addedSelectorAndMethodClassLiterals: false
stream: {an EncoderForV3PlusClosures}
position: 0
rootNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEF...etc...
blockExtentsToLocals: nil
EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments:
Receiver: {an EncoderForV3PlusClosures}
Arguments and temporary variables:
genSelector: #genPushLiteral:
args: #(nil)
Receiver's instance variables:
comment: nil
pc: nil
scopeTable: a Dictionary('false'->{false} 'nil'->{nil} 'recording'->{recording}...etc...
nTemps: 0
supered: false
requestor: nil
class: MorphicReplayDemoTest
selector: #testMethod
literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979. 482. ...etc...
selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//} #<->{<} #...etc...
litIndSet: a Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
litSet: a LiteralDictionary(size 402)
sourceRanges: a Dictionary(size 853)
globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to: 5778). ...etc...
addedSelectorAndMethodClassLiterals: false
stream: {an EncoderForV3PlusClosures}
position: 0
rootNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEF...etc...
blockExtentsToLocals: nil
EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral:
Receiver: {an EncoderForV3PlusClosures}
Arguments and temporary variables:
literalIndex: nil
Receiver's instance variables:
comment: nil
pc: nil
scopeTable: a Dictionary('false'->{false} 'nil'->{nil} 'recording'->{recording}...etc...
nTemps: 0
supered: false
requestor: nil
class: MorphicReplayDemoTest
selector: #testMethod
literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979. 482. ...etc...
selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//} #<->{<} #...etc...
litIndSet: a Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
litSet: a LiteralDictionary(size 402)
sourceRanges: a Dictionary(size 853)
globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to: 5778). ...etc...
addedSelectorAndMethodClassLiterals: false
stream: {an EncoderForV3PlusClosures}
position: 0
rootNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEF...etc...
blockExtentsToLocals: nil
LiteralNode>>sizeCodeForValue:
Receiver: {397}
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
Receiver's instance variables:
comment: nil
pc: nil
key: 397
code: -3
index: nil
[] in MessageNode>>sizeCodeForValue:
Receiver: {1092 @ 397}
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
comment: nil
pc: nil
receiver: {1092}
selector: {@}
precedence: 2
special: 0
arguments: #({397})
sizes: #(nil)
equalNode: nil
caseErrorNode: nil
Array(SequenceableCollection)>>collect:
Receiver: #({397})
Arguments and temporary variables:
aBlock: [closure] in MessageNode>>sizeCodeForValue:
newCollection: #(nil)
index: 1
indexLimiT: 1
Receiver's instance variables:
#({397})
MessageNode>>sizeCodeForValue:
Receiver: {1092 @ 397}
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
comment: nil
pc: nil
receiver: {1092}
selector: {@}
precedence: 2
special: 0
arguments: #({397})
sizes: #(nil)
equalNode: nil
caseErrorNode: nil
[] in MessageNode>>sizeCodeForValue:
Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
comment: nil
pc: nil
receiver: {self}
selector: {addMMEFrom:to:}
precedence: 3
special: 0
arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
sizes: #(nil nil)
equalNode: nil
caseErrorNode: nil
OrderedCollection>>collect:
Receiver: an OrderedCollection({1140 @ 387} {1092 @ 397})
Arguments and temporary variables:
aBlock: [closure] in MessageNode>>sizeCodeForValue:
newCollection: an OrderedCollection(7)
index: 4
Receiver's instance variables:
array: an Array(nil nil {1140 @ 387} {1092 @ 397} nil nil nil nil nil nil)
firstIndex: 3
lastIndex: 4
MessageNode>>sizeCodeForValue:
Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
comment: nil
pc: nil
receiver: {self}
selector: {addMMEFrom:to:}
precedence: 3
special: 0
arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
sizes: #(nil nil)
equalNode: nil
caseErrorNode: nil
MessageNode(ParseNode)>>sizeCodeForEffect:
Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
Receiver's instance variables:
comment: nil
pc: nil
receiver: {self}
selector: {addMMEFrom:to:}
precedence: 3
special: 0
arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
sizes: #(nil nil)
equalNode: nil
caseErrorNode: nil
MessageNode>>sizeCodeForEffect:
Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
Receiver's instance variables:
comment: nil
pc: nil
receiver: {self}
selector: {addMMEFrom:to:}
precedence: 3
special: 0
arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
sizes: #(nil nil)
equalNode: nil
caseErrorNode: nil
BlockNode>>sizeCodeExceptLast:
Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEFrom: 1037 @ 504 to: 979 @ 482.
...etc...
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
codeSize: 2564
i: 169
statement: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
iLimiT: 287
Receiver's instance variables:
comment: nil
pc: nil
arguments: #()
statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @ 504} {...etc...
returns: true
nArgsNode: nil
size: nil
remoteCopyNode: nil
temporaries: an OrderedCollection()
optimized: false
actualScopeIfOptimized: nil
blockExtent: (0 to: 2)
remoteTempNode: nil
copiedValues: nil
closureCreationNode: nil
startOfLastStatement: 11519
BlockNode>>sizeCodeForEvaluatedValue:
Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEFrom: 1037 @ 504 to: 979 @ 482.
...etc...
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
Receiver's instance variables:
comment: nil
pc: nil
arguments: #()
statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @ 504} {...etc...
returns: true
nArgsNode: nil
size: nil
remoteCopyNode: nil
temporaries: an OrderedCollection()
optimized: false
actualScopeIfOptimized: nil
blockExtent: (0 to: 2)
remoteTempNode: nil
copiedValues: nil
closureCreationNode: nil
startOfLastStatement: 11519
BytecodeAgnosticMethodNode>>generate:
Receiver: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEFrom: 1037 @ 504 to: 9...etc...
Arguments and temporary variables:
trailer: #(0 0 0 0)
primErrNode: nil
blkSize: nil
nLits: nil
literals: nil
stack: nil
method: nil
locals: nil
lit: nil
Receiver's instance variables:
comment: nil
pc: nil
selectorOrFalse: #testMethod
precedence: 1
arguments: #()
block: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEFrom: 1037 @ 5...etc...
primitive: 0
encoder: {an EncoderForV3PlusClosures}
temporaries: #()
properties: an AdditionalMethodState
sourceText: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFr...etc...
locationCounter: 3
localsPool: an IdentitySet()
CompiledMethodWithNode class>>generateMethodFromNode:trailer:
Receiver: CompiledMethodWithNode
Arguments and temporary variables:
aMethodNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addM...etc...
bytes: #(0 0 0 0)
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#method->a CompiledMethod(650: CompiledMethodWit...etc...
format: 134
instanceVariables: #('node' 'method')
organization: ('accessing' method node selector)
('private' method: node:)
subclasses: nil
name: #CompiledMethodWithNode
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'Compiler-Support'
traitComposition: nil
localSelectors: nil
MorphicReplayDemoTest class(Behavior)>>compile:classified:notifying:trailer:ifFail:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
code: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
category: #'as yet unclassified'
requestor: nil
bytes: #(0 0 0 0)
failBlock: [closure] in MorphicReplayDemoTest class(ClassDescription)>>compile:...etc...
methodNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMM...etc...
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:logSource:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
text: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
category: #'as yet unclassified'
changeStamp: 'BartGauquie 12/20/2009 20:17'
requestor: nil
logSource: true
methodAndNode: nil
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
text: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
category: #'as yet unclassified'
changeStamp: 'BartGauquie 12/20/2009 20:17'
requestor: nil
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:notifying:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
text: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
category: #'as yet unclassified'
requestor: nil
stamp: 'BartGauquie 12/20/2009 20:17'
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:notifying:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
code: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
requestor: nil
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(Behavior)>>compile:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
code: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
ByteString>>DoIt
Receiver: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 1037@504 to: 979@48...etc...
Arguments and temporary variables:
Receiver's instance variables:
'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 1037@504 to: 979@48...etc...
Compiler>>evaluate:in:to:notifying:ifFail:logged:
Receiver: a Compiler
Arguments and temporary variables:
textOrStream: a ReadWriteStream 'MorphicReplayDemoTest
compile: self.'
aContext: nil
receiver: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom...etc...
aRequestor: a TextMorphEditor
failBlock: [closure] in [] in TextMorphEditor(ParagraphEditor)>>evaluateSelecti...etc...
logFlag: true
methodNode: DoIt
^ MorphicReplayDemoTest compile: self
method: a CompiledMethod(2378: ByteString>>DoIt)
value: nil
toLog: nil
itsSelection: nil
itsSelectionString: nil
Receiver's instance variables:
sourceStream: a ReadWriteStream 'MorphicReplayDemoTest
compile: self.'
requestor: a TextMorphEditor
class: ByteString
category: nil
context: nil
parser: a Parser
[] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
Receiver: a TextMorphEditor
Arguments and temporary variables:
rcvr: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
ctxt: nil
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
BlockClosure>>on:do:
Receiver: [closure] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
Arguments and temporary variables:
exception: OutOfScopeNotification
handlerAction: [closure] in TextMorphEditor(ParagraphEditor)>>evaluateSelection...etc...
handlerActive: true
Receiver's instance variables:
outerContext: TextMorphEditor(ParagraphEditor)>>evaluateSelection
startpc: 116
numArgs: 0
TextMorphEditor(ParagraphEditor)>>evaluateSelection
Receiver: a TextMorphEditor
Arguments and temporary variables:
result: nil
rcvr: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
ctxt: nil
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>doIt
Receiver: a TextMorphEditor
Arguments and temporary variables:
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
[] in TextMorphEditor(ParagraphEditor)>>doIt:
Receiver: a TextMorphEditor
Arguments and temporary variables:
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround:
Receiver: a TextMorphEditor
Arguments and temporary variables:
aBlock: [closure] in TextMorphEditor(ParagraphEditor)>>doIt:
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>doIt:
Receiver: a TextMorphEditor
Arguments and temporary variables:
characterStream: a WriteStream ''
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
Receiver: a TextMorphEditor
Arguments and temporary variables:
keyEvent: [keystroke '<Cmd-d>']
typeAheadStream: a WriteStream ''
honorCommandKeys: true
keyValue: 100
keyChar: $d
char: $d
action: #doIt:
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor>>dispatchOnKeyEvent:with:
Receiver: a TextMorphEditor
Arguments and temporary variables:
keyEvent: [keystroke '<Cmd-d>']
typeAheadStream: a WriteStream ''
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>keystroke:
Receiver: a TextMorphEditor
Arguments and temporary variables:
keyEvent: [keystroke '<Cmd-d>']
typeAhead: a WriteStream ''
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor>>keystroke:
Receiver: a TextMorphEditor
Arguments and temporary variables:
keyEvent: [keystroke '<Cmd-d>']
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
[] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
Receiver: a TextMorphForEditView(3730)
Arguments and temporary variables:
evt: [keystroke '<Cmd-d>']
Receiver's instance variables:
bounds: 0@0 corner: 358@34
owner: a TransformMorph(942)
submorphs: #()
fullBounds: 0@0 corner: 358@34
color: Color black
extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
borderWidth: 0
borderColor: Color black
textStyle: a TextStyle Bitmap DejaVu Sans 9
text: a Text for 'MorphicReplayDemoTest
compile: self.'
wrapFlag: true
paragraph: a MultiNewParagraph
editor: a TextMorphEditor
container: nil
predecessor: nil
successor: nil
backgroundColor: nil
margins: nil
editHistory: a TextMorphCommandHistory
editView: a PluggableTextMorphPlus(2866)
acceptOnCR: false
TextMorphForEditView(TextMorph)>>handleInteraction:
Receiver: a TextMorphForEditView(3730)
Arguments and temporary variables:
interactionBlock: [closure] in [] in TextMorphForEditView(TextMorph)>>keyStroke...etc...
oldEditor: a TextMorphEditor
oldParagraph: a MultiNewParagraph
oldText: a Text for 'MorphicReplayDemoTest
compile: self.'
Receiver's instance variables:
bounds: 0@0 corner: 358@34
owner: a TransformMorph(942)
submorphs: #()
fullBounds: 0@0 corner: 358@34
color: Color black
extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
borderWidth: 0
borderColor: Color black
textStyle: a TextStyle Bitmap DejaVu Sans 9
text: a Text for 'MorphicReplayDemoTest
compile: self.'
wrapFlag: true
paragraph: a MultiNewParagraph
editor: a TextMorphEditor
container: nil
predecessor: nil
successor: nil
backgroundColor: nil
margins: nil
editHistory: a TextMorphCommandHistory
editView: a PluggableTextMorphPlus(2866)
acceptOnCR: false
TextMorphForEditView>>handleInteraction:
Receiver: a TextMorphForEditView(3730)
Arguments and temporary variables:
interActionBlock: [closure] in [] in TextMorphForEditView(TextMorph)>>keyStroke...etc...
Receiver's instance variables:
bounds: 0@0 corner: 358@34
owner: a TransformMorph(942)
submorphs: #()
fullBounds: 0@0 corner: 358@34
color: Color black
extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
borderWidth: 0
borderColor: Color black
textStyle: a TextStyle Bitmap DejaVu Sans 9
text: a Text for 'MorphicReplayDemoTest
compile: self.'
wrapFlag: true
paragraph: a MultiNewParagraph
editor: a TextMorphEditor
container: nil
predecessor: nil
successor: nil
backgroundColor: nil
margins: nil
editHistory: a TextMorphCommandHistory
editView: a PluggableTextMorphPlus(2866)
acceptOnCR: false
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #<
EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral:
EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments:
EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral:
LiteralNode>>sizeCodeForValue:
[] in MessageNode>>sizeCodeForValue:
Array(SequenceableCollection)>>collect:
MessageNode>>sizeCodeForValue:
[] in MessageNode>>sizeCodeForValue:
OrderedCollection>>collect:
MessageNode>>sizeCodeForValue:
MessageNode(ParseNode)>>sizeCodeForEffect:
MessageNode>>sizeCodeForEffect:
BlockNode>>sizeCodeExceptLast:
BlockNode>>sizeCodeForEvaluatedValue:
BytecodeAgnosticMethodNode>>generate:
CompiledMethodWithNode class>>generateMethodFromNode:trailer:
MorphicReplayDemoTest class(Behavior)>>compile:classified:notifying:trailer:ifFail:
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:logSource:
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:notifying:
MorphicReplayDemoTest class(ClassDescription)>>compile:notifying:
MorphicReplayDemoTest class(Behavior)>>compile:
ByteString>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
[] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
BlockClosure>>on:do:
TextMorphEditor(ParagraphEditor)>>evaluateSelection
TextMorphEditor(ParagraphEditor)>>doIt
[] in TextMorphEditor(ParagraphEditor)>>doIt:
TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround:
TextMorphEditor(ParagraphEditor)>>doIt:
TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
TextMorphEditor>>dispatchOnKeyEvent:with:
TextMorphEditor(ParagraphEditor)>>keystroke:
TextMorphEditor>>keystroke:
[] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView(TextMorph)>>handleInteraction:
TextMorphForEditView>>handleInteraction:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
[] in TextMorphForEditView(TextMorph)>>keyStroke:
ECToolSet class>>codeCompletionAround:textMorph:keyStroke:
DEVToolSet class>>codeCompletionAround:textMorph:keyStroke:
ToolSet class>>codeCompletionAround:textMorph:keyStroke:
TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView>>keyStroke:
TextMorphForEditView(TextMorph)>>handleKeystroke:
KeyboardEvent>>sentTo:
TextMorphForEditView(Morph)>>handleEvent:
TextMorphForEditView(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
-----------------------------------------------------------