Hi Bart, can you package this up as a reproducible case, something like Object compile: (Stream stringContents: [:s| s nextPutAll: 'testMethod'. 256 timesRepeat: ...]) ? TIA 2009/12/20 Bart Gauquie <bart.gauquie@gmail.com>
Dear all,
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@0cor...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@0cor...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@0cor...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@0cor...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@0cor...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@0cor...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@0cor...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@0cor...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@0cor...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@0cor...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 -----------------------------------------------------------
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project