[Pharo-project] [squeak-dev] CompiledMethod>>#hash broken on CogVM r2559, Win7, Squeak 4.3

Eliot Miranda eliot.miranda at gmail.com
Mon Jul 23 17:07:34 EDT 2012


On Mon, Jul 23, 2012 at 1:44 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

>
>
> On Mon, Jul 23, 2012 at 1:35 PM, Mariano Martinez Peck <
> marianopeck at gmail.com> wrote:
>
>>
>>
>> On Mon, Jul 23, 2012 at 10:22 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:
>>
>>>
>>>
>>> On Mon, Jul 23, 2012 at 1:02 PM, Mariano Martinez Peck <
>>> marianopeck at gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Mon, Jul 23, 2012 at 9:43 PM, Mariano Martinez Peck <
>>>> marianopeck at gmail.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Mon, Jul 23, 2012 at 8:38 PM, Eliot Miranda <
>>>>> eliot.miranda at gmail.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Jul 23, 2012 at 11:34 AM, Mariano Martinez Peck <
>>>>>> marianopeck at gmail.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jul 23, 2012 at 8:08 PM, Eliot Miranda <
>>>>>>> eliot.miranda at gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi Marcel,
>>>>>>>>
>>>>>>>>     that's because the old hash method is broken.  The Cog VM
>>>>>>>> finally adds a correct bounds check that prevents byte access to the
>>>>>>>> non-byte parts (literals) of a CompiledMethod.  Accessing the literals of a
>>>>>>>> method via byte access gives access to the addresses of objects.  This is
>>>>>>>> broken since the GC is a moving garbage collector and so addresses can
>>>>>>>> change.  Hence a hash derived from such bytes is not stable.  See
>>>>>>>> Kernel-eem.692 which provides the attached hash method.
>>>>>>>>
>>>>>>>>
>>>>>>> Hi Eliot. I remember seeing this discussion in the Pharo mailing
>>>>>>> list also. So...I guess we should commit that also in Pharo, right?
>>>>>>>
>>>>>>
>>>>>> Yes.  Also the bug fixes in Kernel-eem.700 & Kernel-eem.703.
>>>>>>
>>>>>>
>>>>>
>>>>> Regarding Kernel-eem.700, I don't really understand much the code, so
>>>>> I will trust you. Now, regarding Kernel-eem.703 it seems it was already
>>>>> fixed in Pharo. You added the
>>>>>
>>>>> CompiledMethod >> postCopy
>>>>> | penultimateLiteral |
>>>>> (penultimateLiteral := self penultimateLiteral) isMethodProperties
>>>>> ifTrue:
>>>>>  [self penultimateLiteral: (penultimateLiteral copy
>>>>> setMethod: self;
>>>>>  yourself).
>>>>>  self pragmas do:
>>>>> [:p| p setMethod: self]]
>>>>>
>>>>>
>>>> btw, aren't the those two lines wrong?
>>>> shouldn't they be:
>>>>
>>>> *copy* pragmas do:
>>>> [:p| p setMethod: *copy*]].
>>>>
>>>> ?
>>>>
>>>
>>> No.  postCopy is sent to the copy.
>>>
>>> Object>>copy
>>> "Answer another instance just like the receiver. Subclasses typically
>>> override postCopy; they typically do not override shallowCopy."
>>>
>>> ^self shallowCopy postCopy
>>>
>>>
>>
>> Sorry, I wanted to mean in copyWithTrailerBytes: trailer
>>
>>
>> copyWithTrailerBytes: trailer
>> "Testing:
>> (CompiledMethod compiledMethodAt: #copyWithTrailerBytes:)
>>  tempNamesPut: 'copy end '
>> "
>> | copy end start penultimateLiteral |
>>  start := self initialPC.
>> end := self endPC.
>> copy := trailer createMethod: end - start + 1 class: self class header:
>> self header.
>>  1 to: self numLiterals do: [:i | copy literalAt: i put: (self
>> literalAt: i)].
>> (penultimateLiteral := self penultimateLiteral) isMethodProperties
>> ifTrue: [
>>  copy penultimateLiteral: (penultimateLiteral copy
>> setMethod: copy;
>>  yourself).
>> * self pragmas do:*
>> * [:p| p setMethod: self]*
>>  ].
>> start to: end do: [:i | copy at: i put: (self at: i)].
>>  ^copy
>>
>
> It looks ot me like redunant code that worked around an earlier bug.  I've
> removed it.  I've written some tests which I'll commit soon.
>

see KernelTests-eem.228 & Kernel-eem.706




>
>>
>>
>>>
>>>
>>>>
>>>>
>>>>
>>>>> But we already have:
>>>>>
>>>>> CompiledMethod >> postCopy
>>>>>
>>>>> 1 to: self literals size do: [:index |
>>>>>  | literal |
>>>>> literal := self literalAt: index.
>>>>>
>>>>> literal class == AdditionalMethodState ifTrue: [
>>>>>  literal := literal copy.
>>>>> self literalAt: index put: literal.
>>>>> self fixAdditionalMethodStateMethodReference: literal]].
>>>>>  So....I don't really understand why we iterate over all literals if
>>>>> we just fix the pragmas...so I think your part of the "(penultimateLiteral
>>>>> := self penultimateLiteral) isMethodProperties ifTrue:"  is better.
>>>>>
>>>>> Now, you only do #setMethod for the pragma, but our code:
>>>>>
>>>>> fixAdditionalMethodStateMethodReference: anAdditionalMethodState
>>>>>
>>>>> anAdditionalMethodState method: self.
>>>>>  anAdditionalMethodState pragmas do: [:each | each instVarAt: 1 put:
>>>>> self].
>>>>>
>>>>>
>>>>> And again, I don't know why we se instVarAt: 1 put:   rather than
>>>>> #setMethod:
>>>>>
>>>>> So, all in all, I think your code looks better. Am I missing something?
>>>>>
>>>>> Thanks!
>>>>>
>>>>>
>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> On Sun, Jul 22, 2012 at 7:10 AM, Marcel Taeumel <
>>>>>>>> marcel.taeumel at student.hpi.uni-potsdam.de> wrote:
>>>>>>>>
>>>>>>>>> Hi!
>>>>>>>>>
>>>>>>>>> It is not possible to compute the hash value of a CompiledMethod
>>>>>>>>> instance
>>>>>>>>> with the CogVM r2559 on a Windows 7 machine using a Squeak 4.3
>>>>>>>>> image.
>>>>>>>>>
>>>>>>>>> Should it be possible despite of all enhancements in the Cog VM?
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>> Marcel
>>>>>>>>>
>>>>>>>>> 22 July 2012 4:06:54.988 pm
>>>>>>>>>
>>>>>>>>> VM: Win32 - Smalltalk
>>>>>>>>> Image: Squeak4.3 [latest update: #11860]
>>>>>>>>>
>>>>>>>>> SecurityManager state:
>>>>>>>>> Restricted: false
>>>>>>>>> FileAccess: true
>>>>>>>>> SocketAccess: true
>>>>>>>>> Working Dir C:\Tools\vivide_dev
>>>>>>>>> Trusted Dir C:\Tools\vivide_dev\Marcel
>>>>>>>>> Untrusted Dir C:\Users\Marcel\Documents\My Squeak
>>>>>>>>>
>>>>>>>>> CompiledMethod(Object)>>error:
>>>>>>>>>         Receiver: (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 aString:        'subscript is out of bounds: 1'
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>> (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>
>>>>>>>>> CompiledMethod(Object)>>errorSubscriptBounds:
>>>>>>>>>         Receiver: (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 index:  1
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>> (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>
>>>>>>>>> CompiledMethod(Object)>>basicAt:
>>>>>>>>>         Receiver: (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 index:  1
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>> (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>
>>>>>>>>> CompiledMethod class(ByteArray class)>>hashBytes:startingWith:
>>>>>>>>>         Receiver: CompiledMethod
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 aByteArray:     (Morph>>#drawOn: "a
>>>>>>>>> CompiledMethod(337)")
>>>>>>>>>                 speciesHash:    244619647
>>>>>>>>>                 byteArraySize:  43
>>>>>>>>>                 hash:   244619647
>>>>>>>>>                 low:    nil
>>>>>>>>>                 pos:    1
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 superclass:     ByteArray
>>>>>>>>>                 methodDict:     a MethodDictionary(size 190)
>>>>>>>>>                 format:         3586
>>>>>>>>>                 instanceVariables:      nil
>>>>>>>>>                 organization:   ('accessing' clearFlag
>>>>>>>>> defaultSelector dragLabel endPC flag
>>>>>>>>> flush...etc...
>>>>>>>>>                 subclasses:     nil
>>>>>>>>>                 name:   #CompiledMethod
>>>>>>>>>                 classPool:      a Dictionary(#LargeFrame->56
>>>>>>>>> #SmallFrame->16 )
>>>>>>>>>                 sharedPools:    nil
>>>>>>>>>                 environment:    Smalltalk globals "a
>>>>>>>>> SystemDictionary with lots of globals"
>>>>>>>>>                 category:       #'Kernel-Methods'
>>>>>>>>>
>>>>>>>>> CompiledMethod(ByteArray)>>hash
>>>>>>>>>         Receiver: (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>> (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>>         Receiver: nil
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>> nil
>>>>>>>>>
>>>>>>>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>>>>>>>>         Receiver: a Compiler
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 textOrStream:   a ReadWriteStream
>>>>>>>>> '(Morph>>#drawOn:) hash'
>>>>>>>>>                 aContext:       nil
>>>>>>>>>                 receiver:       nil
>>>>>>>>>                 aRequestor:     a SmalltalkEditor
>>>>>>>>>                 failBlock:      [closure] in [] in
>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAnd...etc...
>>>>>>>>>                 logFlag:        true
>>>>>>>>>                 methodNode:     DoIt
>>>>>>>>>         ^ (Morph >> #drawOn:) hash
>>>>>>>>>                 method:         (UndefinedObject>>#DoIt "a
>>>>>>>>> CompiledMethod(1506)")
>>>>>>>>>                 value:  nil
>>>>>>>>>                 toLog:  nil
>>>>>>>>>                 itsSelection:   nil
>>>>>>>>>                 itsSelectionString:     nil
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 sourceStream:   a ReadWriteStream
>>>>>>>>> '(Morph>>#drawOn:) hash'
>>>>>>>>>                 requestor:      a SmalltalkEditor
>>>>>>>>>                 class:  UndefinedObject
>>>>>>>>>                 category:       nil
>>>>>>>>>                 context:        nil
>>>>>>>>>                 parser:         a Parser
>>>>>>>>>
>>>>>>>>> [] in SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>         Receiver: a SmalltalkEditor
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 morph:  a TextMorphForEditView(2114)
>>>>>>>>>                 selectionShowing:       false
>>>>>>>>>                 model:  a Workspace
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 markBlock:      a CharacterBlock with index 1 and
>>>>>>>>> character $( and rectangle
>>>>>>>>> 0 at 0 cor...etc...
>>>>>>>>>                 pointBlock:     a CharacterBlock with index 23 and
>>>>>>>>> rectangle 154 at 0 corner:
>>>>>>>>> 154 at 17
>>>>>>>>>  ...etc...
>>>>>>>>>                 beginTypeInIndex:       nil
>>>>>>>>>                 emphasisHere:   {a TextFontChange font: 1}
>>>>>>>>>                 lastParenLocation:      nil
>>>>>>>>>                 otherInterval:  (1 to: 22)
>>>>>>>>>                 oldInterval:    (1 to: 22)
>>>>>>>>>                 typeAhead:      a WriteStream ''
>>>>>>>>>                 styler:         nil
>>>>>>>>>
>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>>         Receiver: [closure] in
>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 exception:      OutOfScopeNotification
>>>>>>>>>                 handlerAction:  [closure] in
>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo...etc...
>>>>>>>>>                 handlerActive:  true
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 outerContext:
>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>                 startpc:        97
>>>>>>>>>                 numArgs:        0
>>>>>>>>>
>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>         Receiver: a SmalltalkEditor
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 aBlock:         [closure] in
>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelection
>>>>>>>>>                 result:         nil
>>>>>>>>>                 rcvr:   nil
>>>>>>>>>                 ctxt:   nil
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 morph:  a TextMorphForEditView(2114)
>>>>>>>>>                 selectionShowing:       false
>>>>>>>>>                 model:  a Workspace
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 markBlock:      a CharacterBlock with index 1 and
>>>>>>>>> character $( and rectangle
>>>>>>>>> 0 at 0 cor...etc...
>>>>>>>>>                 pointBlock:     a CharacterBlock with index 23 and
>>>>>>>>> rectangle 154 at 0 corner:
>>>>>>>>> 154 at 17
>>>>>>>>>  ...etc...
>>>>>>>>>                 beginTypeInIndex:       nil
>>>>>>>>>                 emphasisHere:   {a TextFontChange font: 1}
>>>>>>>>>                 lastParenLocation:      nil
>>>>>>>>>                 otherInterval:  (1 to: 22)
>>>>>>>>>                 oldInterval:    (1 to: 22)
>>>>>>>>>                 typeAhead:      a WriteStream ''
>>>>>>>>>                 styler:         nil
>>>>>>>>>
>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelection
>>>>>>>>>         Receiver: a SmalltalkEditor
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 morph:  a TextMorphForEditView(2114)
>>>>>>>>>                 selectionShowing:       false
>>>>>>>>>                 model:  a Workspace
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 markBlock:      a CharacterBlock with index 1 and
>>>>>>>>> character $( and rectangle
>>>>>>>>> 0 at 0 cor...etc...
>>>>>>>>>                 pointBlock:     a CharacterBlock with index 23 and
>>>>>>>>> rectangle 154 at 0 corner:
>>>>>>>>> 154 at 17
>>>>>>>>>  ...etc...
>>>>>>>>>                 beginTypeInIndex:       nil
>>>>>>>>>                 emphasisHere:   {a TextFontChange font: 1}
>>>>>>>>>                 lastParenLocation:      nil
>>>>>>>>>                 otherInterval:  (1 to: 22)
>>>>>>>>>                 oldInterval:    (1 to: 22)
>>>>>>>>>                 typeAhead:      a WriteStream ''
>>>>>>>>>                 styler:         nil
>>>>>>>>>
>>>>>>>>> SmalltalkEditor(TextEditor)>>doIt
>>>>>>>>>         Receiver: a SmalltalkEditor
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 morph:  a TextMorphForEditView(2114)
>>>>>>>>>                 selectionShowing:       false
>>>>>>>>>                 model:  a Workspace
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 markBlock:      a CharacterBlock with index 1 and
>>>>>>>>> character $( and rectangle
>>>>>>>>> 0 at 0 cor...etc...
>>>>>>>>>                 pointBlock:     a CharacterBlock with index 23 and
>>>>>>>>> rectangle 154 at 0 corner:
>>>>>>>>> 154 at 17
>>>>>>>>>  ...etc...
>>>>>>>>>                 beginTypeInIndex:       nil
>>>>>>>>>                 emphasisHere:   {a TextFontChange font: 1}
>>>>>>>>>                 lastParenLocation:      nil
>>>>>>>>>                 otherInterval:  (1 to: 22)
>>>>>>>>>                 oldInterval:    (1 to: 22)
>>>>>>>>>                 typeAhead:      a WriteStream ''
>>>>>>>>>                 styler:         nil
>>>>>>>>>
>>>>>>>>> SmalltalkEditor(TextEditor)>>doIt:
>>>>>>>>>         Receiver: a SmalltalkEditor
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 aKeyboardEvent:         [keystroke '<Cmd-d>']
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 morph:  a TextMorphForEditView(2114)
>>>>>>>>>                 selectionShowing:       false
>>>>>>>>>                 model:  a Workspace
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 markBlock:      a CharacterBlock with index 1 and
>>>>>>>>> character $( and rectangle
>>>>>>>>> 0 at 0 cor...etc...
>>>>>>>>>                 pointBlock:     a CharacterBlock with index 23 and
>>>>>>>>> rectangle 154 at 0 corner:
>>>>>>>>> 154 at 17
>>>>>>>>>  ...etc...
>>>>>>>>>                 beginTypeInIndex:       nil
>>>>>>>>>                 emphasisHere:   {a TextFontChange font: 1}
>>>>>>>>>                 lastParenLocation:      nil
>>>>>>>>>                 otherInterval:  (1 to: 22)
>>>>>>>>>                 oldInterval:    (1 to: 22)
>>>>>>>>>                 typeAhead:      a WriteStream ''
>>>>>>>>>                 styler:         nil
>>>>>>>>>
>>>>>>>>> SmalltalkEditor(TextEditor)>>dispatchOnKeyboardEvent:
>>>>>>>>>         Receiver: a SmalltalkEditor
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 aKeyboardEvent:         [keystroke '<Cmd-d>']
>>>>>>>>>                 honorCommandKeys:       true
>>>>>>>>>                 openers:        nil
>>>>>>>>>                 closers:        nil
>>>>>>>>>                 result:         nil
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 morph:  a TextMorphForEditView(2114)
>>>>>>>>>                 selectionShowing:       false
>>>>>>>>>                 model:  a Workspace
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 markBlock:      a CharacterBlock with index 1 and
>>>>>>>>> character $( and rectangle
>>>>>>>>> 0 at 0 cor...etc...
>>>>>>>>>                 pointBlock:     a CharacterBlock with index 23 and
>>>>>>>>> rectangle 154 at 0 corner:
>>>>>>>>> 154 at 17
>>>>>>>>>  ...etc...
>>>>>>>>>                 beginTypeInIndex:       nil
>>>>>>>>>                 emphasisHere:   {a TextFontChange font: 1}
>>>>>>>>>                 lastParenLocation:      nil
>>>>>>>>>                 otherInterval:  (1 to: 22)
>>>>>>>>>                 oldInterval:    (1 to: 22)
>>>>>>>>>                 typeAhead:      a WriteStream ''
>>>>>>>>>                 styler:         nil
>>>>>>>>>
>>>>>>>>> SmalltalkEditor(TextEditor)>>keyStroke:
>>>>>>>>>         Receiver: a SmalltalkEditor
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 anEvent:        [keystroke '<Cmd-d>']
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 morph:  a TextMorphForEditView(2114)
>>>>>>>>>                 selectionShowing:       false
>>>>>>>>>                 model:  a Workspace
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 markBlock:      a CharacterBlock with index 1 and
>>>>>>>>> character $( and rectangle
>>>>>>>>> 0 at 0 cor...etc...
>>>>>>>>>                 pointBlock:     a CharacterBlock with index 23 and
>>>>>>>>> rectangle 154 at 0 corner:
>>>>>>>>> 154 at 17
>>>>>>>>>  ...etc...
>>>>>>>>>                 beginTypeInIndex:       nil
>>>>>>>>>                 emphasisHere:   {a TextFontChange font: 1}
>>>>>>>>>                 lastParenLocation:      nil
>>>>>>>>>                 otherInterval:  (1 to: 22)
>>>>>>>>>                 oldInterval:    (1 to: 22)
>>>>>>>>>                 typeAhead:      a WriteStream ''
>>>>>>>>>                 styler:         nil
>>>>>>>>>
>>>>>>>>> [] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>>         Receiver: a TextMorphForEditView(2114)
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 bounds:         0 at 0 corner: 416 at 19
>>>>>>>>>                 owner:  a TransformMorph(1978)
>>>>>>>>>                 submorphs:      #()
>>>>>>>>>                 fullBounds:     0 at 0 corner: 416 at 19
>>>>>>>>>                 color:  Color black
>>>>>>>>>                 extension:      a MorphExtension (2184) [other:
>>>>>>>>>  (signalConnections -> a
>>>>>>>>> Dictionary(...etc...
>>>>>>>>>                 borderWidth:    0
>>>>>>>>>                 borderColor:    Color black
>>>>>>>>>                 textStyle:      a TextStyle Bitmap Envy Code R 10
>>>>>>>>> regular
>>>>>>>>>                 text:   a Text for '(Morph>>#drawOn:) hash'
>>>>>>>>>                 wrapFlag:       true
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 editor:         a SmalltalkEditor
>>>>>>>>>                 container:      nil
>>>>>>>>>                 predecessor:    nil
>>>>>>>>>                 successor:      nil
>>>>>>>>>                 backgroundColor:        nil
>>>>>>>>>                 margins:        nil
>>>>>>>>>                 editHistory:    nil
>>>>>>>>>                 editView:       a PluggableTextMorphPlus(3348)
>>>>>>>>>                 acceptOnCR:     false
>>>>>>>>>
>>>>>>>>> TextMorphForEditView(TextMorph)>>handleInteraction:fromEvent:
>>>>>>>>>         Receiver: a TextMorphForEditView(2114)
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 interactionBlock:       [closure] in [] in
>>>>>>>>> TextMorphForEditView(TextMorph)>>keyStroke...etc...
>>>>>>>>>                 evt:    [keystroke '<Cmd-d>']
>>>>>>>>>                 oldEditor:      a SmalltalkEditor
>>>>>>>>>                 oldParagraph:   a MultiNewParagraph
>>>>>>>>>                 oldText:        a Text for '(Morph>>#drawOn:) hash'
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 bounds:         0 at 0 corner: 416 at 19
>>>>>>>>>                 owner:  a TransformMorph(1978)
>>>>>>>>>                 submorphs:      #()
>>>>>>>>>                 fullBounds:     0 at 0 corner: 416 at 19
>>>>>>>>>                 color:  Color black
>>>>>>>>>                 extension:      a MorphExtension (2184) [other:
>>>>>>>>>  (signalConnections -> a
>>>>>>>>> Dictionary(...etc...
>>>>>>>>>                 borderWidth:    0
>>>>>>>>>                 borderColor:    Color black
>>>>>>>>>                 textStyle:      a TextStyle Bitmap Envy Code R 10
>>>>>>>>> regular
>>>>>>>>>                 text:   a Text for '(Morph>>#drawOn:) hash'
>>>>>>>>>                 wrapFlag:       true
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 editor:         a SmalltalkEditor
>>>>>>>>>                 container:      nil
>>>>>>>>>                 predecessor:    nil
>>>>>>>>>                 successor:      nil
>>>>>>>>>                 backgroundColor:        nil
>>>>>>>>>                 margins:        nil
>>>>>>>>>                 editHistory:    nil
>>>>>>>>>                 editView:       a PluggableTextMorphPlus(3348)
>>>>>>>>>                 acceptOnCR:     false
>>>>>>>>>
>>>>>>>>> TextMorphForEditView>>handleInteraction:fromEvent:
>>>>>>>>>         Receiver: a TextMorphForEditView(2114)
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 interActionBlock:       [closure] in [] in
>>>>>>>>> TextMorphForEditView(TextMorph)>>keyStroke...etc...
>>>>>>>>>                 evt:    [keystroke '<Cmd-d>']
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 bounds:         0 at 0 corner: 416 at 19
>>>>>>>>>                 owner:  a TransformMorph(1978)
>>>>>>>>>                 submorphs:      #()
>>>>>>>>>                 fullBounds:     0 at 0 corner: 416 at 19
>>>>>>>>>                 color:  Color black
>>>>>>>>>                 extension:      a MorphExtension (2184) [other:
>>>>>>>>>  (signalConnections -> a
>>>>>>>>> Dictionary(...etc...
>>>>>>>>>                 borderWidth:    0
>>>>>>>>>                 borderColor:    Color black
>>>>>>>>>                 textStyle:      a TextStyle Bitmap Envy Code R 10
>>>>>>>>> regular
>>>>>>>>>                 text:   a Text for '(Morph>>#drawOn:) hash'
>>>>>>>>>                 wrapFlag:       true
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 editor:         a SmalltalkEditor
>>>>>>>>>                 container:      nil
>>>>>>>>>                 predecessor:    nil
>>>>>>>>>                 successor:      nil
>>>>>>>>>                 backgroundColor:        nil
>>>>>>>>>                 margins:        nil
>>>>>>>>>                 editHistory:    nil
>>>>>>>>>                 editView:       a PluggableTextMorphPlus(3348)
>>>>>>>>>                 acceptOnCR:     false
>>>>>>>>>
>>>>>>>>> [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>>         Receiver: a TextMorphForEditView(2114)
>>>>>>>>>         Arguments and temporary variables:
>>>>>>>>>                 evt:    [keystroke '<Cmd-d>']
>>>>>>>>>                 action:         nil
>>>>>>>>>         Receiver's instance variables:
>>>>>>>>>                 bounds:         0 at 0 corner: 416 at 19
>>>>>>>>>                 owner:  a TransformMorph(1978)
>>>>>>>>>                 submorphs:      #()
>>>>>>>>>                 fullBounds:     0 at 0 corner: 416 at 19
>>>>>>>>>                 color:  Color black
>>>>>>>>>                 extension:      a MorphExtension (2184) [other:
>>>>>>>>>  (signalConnections -> a
>>>>>>>>> Dictionary(...etc...
>>>>>>>>>                 borderWidth:    0
>>>>>>>>>                 borderColor:    Color black
>>>>>>>>>                 textStyle:      a TextStyle Bitmap Envy Code R 10
>>>>>>>>> regular
>>>>>>>>>                 text:   a Text for '(Morph>>#drawOn:) hash'
>>>>>>>>>                 wrapFlag:       true
>>>>>>>>>                 paragraph:      a MultiNewParagraph
>>>>>>>>>                 editor:         a SmalltalkEditor
>>>>>>>>>                 container:      nil
>>>>>>>>>                 predecessor:    nil
>>>>>>>>>                 successor:      nil
>>>>>>>>>                 backgroundColor:        nil
>>>>>>>>>                 margins:        nil
>>>>>>>>>                 editHistory:    nil
>>>>>>>>>                 editView:       a PluggableTextMorphPlus(3348)
>>>>>>>>>                 acceptOnCR:     false
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --- The full stack ---
>>>>>>>>> CompiledMethod(Object)>>error:
>>>>>>>>> CompiledMethod(Object)>>errorSubscriptBounds:
>>>>>>>>> CompiledMethod(Object)>>basicAt:
>>>>>>>>> CompiledMethod class(ByteArray class)>>hashBytes:startingWith:
>>>>>>>>> CompiledMethod(ByteArray)>>hash
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>>>>>>>> [] in SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelection
>>>>>>>>> SmalltalkEditor(TextEditor)>>doIt
>>>>>>>>> SmalltalkEditor(TextEditor)>>doIt:
>>>>>>>>> SmalltalkEditor(TextEditor)>>dispatchOnKeyboardEvent:
>>>>>>>>> SmalltalkEditor(TextEditor)>>keyStroke:
>>>>>>>>> [] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>> TextMorphForEditView(TextMorph)>>handleInteraction:fromEvent:
>>>>>>>>> TextMorphForEditView>>handleInteraction:fromEvent:
>>>>>>>>> [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>>>>>>>> ECToolSet 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:
>>>>>>>>> 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
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://forum.world.st/CompiledMethod-hash-broken-on-CogVM-r2559-Win7-Squeak-4-3-tp4641061.html
>>>>>>>>> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> best,
>>>>>>>> Eliot
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Mariano
>>>>>>> http://marianopeck.wordpress.com
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> best,
>>>>>> Eliot
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Mariano
>>>>> http://marianopeck.wordpress.com
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Mariano
>>>> http://marianopeck.wordpress.com
>>>>
>>>>
>>>
>>>
>>> --
>>> best,
>>> Eliot
>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>
>
> --
> best,
> Eliot
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20120723/80e1add6/attachment-0001.html>


More information about the Pharo-dev mailing list