Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
July 2012
- 77 participants
- 1070 messages
Re: [Pharo-project] [squeak-dev] CompiledMethod>>#hash broken on CogVM r2559, Win7, Squeak 4.3
by Eliot Miranda
On Tue, Jul 24, 2012 at 1:43 AM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
>
>
> On Mon, Jul 23, 2012 at 11:07 PM, Eliot Miranda <eliot.miranda(a)gmail.com>wrote:
>
>> On Mon, Jul 23, 2012 at 1:44 PM, Eliot Miranda <eliot.miranda(a)gmail.com>wrote:
>>
>>>
>>>
>>> On Mon, Jul 23, 2012 at 1:35 PM, Mariano Martinez Peck <
>>> marianopeck(a)gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Mon, Jul 23, 2012 at 10:22 PM, Eliot Miranda <
>>>> eliot.miranda(a)gmail.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Mon, Jul 23, 2012 at 1:02 PM, Mariano Martinez Peck <
>>>>> marianopeck(a)gmail.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Jul 23, 2012 at 9:43 PM, Mariano Martinez Peck <
>>>>>> marianopeck(a)gmail.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jul 23, 2012 at 8:38 PM, Eliot Miranda <
>>>>>>> eliot.miranda(a)gmail.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Jul 23, 2012 at 11:34 AM, Mariano Martinez Peck <
>>>>>>>> marianopeck(a)gmail.com> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Jul 23, 2012 at 8:08 PM, Eliot Miranda <
>>>>>>>>> eliot.miranda(a)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
>>
>>
> Thanks Eliot. I took a look. Regarding the tests, 2 things. First, I have
> added 2 additional asserts (you can add them if you want):
>
> self assert: copy penultimateLiteral method == copy.
> self assert: method penultimateLiteral method == method.
>
> Then, I think there is a problem with the #equivalentTo:
>
Quite so. equivalentTo: was assuming RB parse trees. I've made it work
with either. Find attached (and Kernel-eem.708/KernelTests-eem.228)
>
> self deny: (method equivalentTo: copy). "equivalentTo: decompiles; since
> temps differ, equivalentTo: should be false."
>
> Actually, if you debug that, the #equivalentTo: answers false because of
> the last statement (self decompile = aCompiledMethod decompile) but it is
> NOT because the decompiled is different, but because the MethodNode does
> not implements #= and hence relies on #== which answers false. In fact, if
> you change the #equivalentTo: to:
> (self decompileString = aCompiledMethod decompileString) it answers true.
> This is because, I don't know why, both decompiled look equal to mee (the
> temps seems not taken into account).
>
> For Pharo, I just avoid the assert for #equivalentTo: since you already
> assert for #= and because we do not have #equivalentTo: in the image.
> More details here: http://code.google.com/p/pharo/issues/detail?id=6441
>
> Thanks!
>
>
>
>>
>>
>>
>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> 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(a)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@0 cor...etc...
>>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>>> 154@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@0 cor...etc...
>>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>>> 154@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@0 cor...etc...
>>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>>> 154@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@0 cor...etc...
>>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>>> 154@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@0 cor...etc...
>>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>>> 154@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@0 cor...etc...
>>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>>> 154@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@0 cor...etc...
>>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>>> 154@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@0 corner: 416@19
>>>>>>>>>>> owner: a TransformMorph(1978)
>>>>>>>>>>> submorphs: #()
>>>>>>>>>>> fullBounds: 0@0 corner: 416@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@0 corner: 416@19
>>>>>>>>>>> owner: a TransformMorph(1978)
>>>>>>>>>>> submorphs: #()
>>>>>>>>>>> fullBounds: 0@0 corner: 416@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@0 corner: 416@19
>>>>>>>>>>> owner: a TransformMorph(1978)
>>>>>>>>>>> submorphs: #()
>>>>>>>>>>> fullBounds: 0@0 corner: 416@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@0 corner: 416@19
>>>>>>>>>>> owner: a TransformMorph(1978)
>>>>>>>>>>> submorphs: #()
>>>>>>>>>>> fullBounds: 0@0 corner: 416@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…
>>>>>>>>>>> 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
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
--
best,
Eliot
July 24, 2012
Re: [Pharo-project] dirty package
by Yanni Chiu
On 24/07/12 4:21 PM, Sean P. DeNigris wrote:
>
> I updated the plugin, which didn't seem to help, so I rolled it back
> to rule out other problems. I guess I'll update it again... n.b. URL Trigger
> works on my personal server, running Jenkins ver.1.472, with URL Trigger v.
> 0.23.
Looking at the configuration of Pharo-2.0 build, under the "Build
Triggers" section there are two URL triggers.
(1) Build when a URL's content changes
Hudson will check the URL you specify and download its content. If the
content changes, Hudson will launch a build.
(2) [URLTrigger] - Poll with a URL
Configure Jenkins to poll URLs.
For each URL, you can check the last modification date and/or the contents.
The [URLTrigger] plugin is selected, but under "Inspect URL content",
there doesn't seem to be anything configured. Should it have something?
Also, maybe the other URL trigger works? So the plugin [URLTrigger] is
no longer needed.
July 24, 2012
Re: [Pharo-project] fuelized test failures
by Mariano Martinez Peck
On Tue, Jul 24, 2012 at 10:09 PM, Sean P. DeNigris <sean(a)clipperadams.com>wrote:
>
> Mariano Martinez Peck wrote
> >
> > we only have the .fuel of the last build?
>
> Why don't we zip any fuel files for failing tests in the artifact.
I don't know much about Jenkins, but if that allows me to have the .fuel
files for each version, then please go ahead :)
Now...besides zipping all together, I would also like to have the
individual .fuel files.
CAmi/marcus anyone can take a look to this?
This way,
> anyone can download and reconstruct the system. Also, the workspace is only
> available when we are logged in.
>
>
+1
> Cheers,
> Sean
>
>
>
> --
> View this message in context:
> http://forum.world.st/fuelized-test-failures-tp4640954p4641360.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
>
--
Mariano
http://marianopeck.wordpress.com
July 24, 2012
Re: [Pharo-project] dirty package
by Sean P. DeNigris
Sean P. DeNigris wrote
>
> I guess I'll update it again...
>
Looks like the plugin is back at the latest version already. Can/should we
update to latest Jenkins?
--
View this message in context: http://forum.world.st/dirty-package-tp4641144p4641362.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
July 24, 2012
Re: [Pharo-project] dirty package
by Sean P. DeNigris
Marcus Denker-4 wrote
>
> this is fixed in 20232... we really need to get jenkins again to
> automatically update.
>
I tried a bunch of things and can't get it to work. It's hard to tell what's
going on without command line access. If I don't put a frequency for the URL
trigger to poll the update list, the trigger claims to check, but seems to
always report that there were no changes. If I put a frequency e.g. "*/5 * *
* *", it doesn't seem to poll at all. Intermittently, it complains about a
502 error. I thought it might have something to do with the proxy, but
christophe said there should be unrestricted access from Jenkins to the
forge. I updated the plugin, which didn't seem to help, so I rolled it back
to rule out other problems. I guess I'll update it again... n.b. URL Trigger
works on my personal server, running Jenkins ver.1.472, with URL Trigger v.
0.23.
--
View this message in context: http://forum.world.st/dirty-package-tp4641144p4641361.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
July 24, 2012
Re: [Pharo-project] fuelized test failures
by Sean P. DeNigris
Mariano Martinez Peck wrote
>
> we only have the .fuel of the last build?
Why don't we zip any fuel files for failing tests in the artifact. This way,
anyone can download and reconstruct the system. Also, the workspace is only
available when we are logged in.
Cheers,
Sean
--
View this message in context: http://forum.world.st/fuelized-test-failures-tp4640954p4641360.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
July 24, 2012
Re: [Pharo-project] fuelized test failures
by Mariano Martinez Peck
THere is something I don't understand. If I see:
https://ci.lille.inria.fr/pharo/view/Pharo%202.0/job/pharo-2.0-tests/Archit…
it seems it is independent of a particular build. What does it mean? that
we only have the .fuel of the last build? if this is the case, then it is
not very helpful at all.
Thanks!
On Tue, Jul 24, 2012 at 7:57 PM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
>
>
> On Tue, Jul 24, 2012 at 4:35 PM, Camillo Bruni <camillobruni(a)gmail.com>wrote:
>
>>
>> On 2012-07-24, at 16:29, Mariano Martinez Peck wrote:
>>
>> > On Fri, Jul 20, 2012 at 6:09 PM, Camillo Bruni <camillobruni(a)gmail.com
>> >wrote:
>> >
>> >> From now on all the test-failures are serialized on the build server.
>> >>
>> >> This allows us to quickly find the cause of a failing test:
>> >> - download the .fuel file for the failing test
>> >> - materialize the .fuel in the image and debug the code
>> >> | aContext |
>> >> aContext := FLMaterializer materializeFromFileNamed:
>> >> 'PharoDebug.fuel'.
>> >> Debugger openContext: aContext label: 'This is the new
>> debugger!'
>> >> contents: nil
>> >>
>> >>
>> >
>> > does it really work for you?? I am trying to materialize, for example,
>> >
>> https://ci.lille.inria.fr/pharo/view/Pharo%202.0/job/pharo-2.0-tests/ws/Arc…
>> >
>> > and I get:
>> >
>> > FLClassNotFound: Materialization error. Class named #HDTestReport not
>> found
>> >
>> > That happens because during serialization the graph somehow reached the
>> > class HDTestReport (probably a sender at some point in the stack). But
>> now,
>> > when materializing, such class is not present. So...is there in the
>> > workspace an image with the jenkins stuff?
>> > Anyway, the idea was to include this directly in Pharo, wasn't it?
>>
>> I suggest you use the image in the same directory, cause we install
>> some Hudson tools (which IMO should be included by default).
>
>
> +1 I remember there was an issue for that...I tried to find it but I
> fail.
> Do you remember?
>
>
>> I don't
>> really like that we have to load stuff for running the test, meaning
>> that this might affect the outcome of the results...
>>
>> So for now either take the following image:
>>
>> https://ci.lille.inria.fr/pharo/view/Pharo%202.0/job/pharo-2.0-tests/Archit…
>>
>>
> ok, thanks!
>
>
>> or manually install the hudson tools:
>> "Load Hudson Build Tools"
>> Gofer new
>> url: 'http://ss3.gemstone.com/ss/CISupport';
>> package: 'HudsonBuildTools20';
>> load.
>>
>> then everything should work I think.
>>
>>
> yes, it works. And it is really cool :)
>
> Thanks!
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
--
Mariano
http://marianopeck.wordpress.com
July 24, 2012
Re: [Pharo-project] TextMorph: how to change its bounds/extent?
by S Krish
set autoAccept: true and in the view connected to the TextMorph for the
#accept: method used on the view let it change bounds as required.. /
calculated..
On Tue, Jul 24, 2012 at 6:04 PM, Gareth Cox <gareth.cox(a)pro-mis.com> wrote:
> Hi All
>
> The default behaviour of a TextMorph is for it to grow down as you enter
> text.
> How can I change that behaviour so that the TextMorph grows both up AND
> down as I enter text?
>
> Kind Regards
> Dusty
>
July 24, 2012
Re: [Pharo-project] fuelized test failures
by Mariano Martinez Peck
On Tue, Jul 24, 2012 at 4:35 PM, Camillo Bruni <camillobruni(a)gmail.com>wrote:
>
> On 2012-07-24, at 16:29, Mariano Martinez Peck wrote:
>
> > On Fri, Jul 20, 2012 at 6:09 PM, Camillo Bruni <camillobruni(a)gmail.com
> >wrote:
> >
> >> From now on all the test-failures are serialized on the build server.
> >>
> >> This allows us to quickly find the cause of a failing test:
> >> - download the .fuel file for the failing test
> >> - materialize the .fuel in the image and debug the code
> >> | aContext |
> >> aContext := FLMaterializer materializeFromFileNamed:
> >> 'PharoDebug.fuel'.
> >> Debugger openContext: aContext label: 'This is the new
> debugger!'
> >> contents: nil
> >>
> >>
> >
> > does it really work for you?? I am trying to materialize, for example,
> >
> https://ci.lille.inria.fr/pharo/view/Pharo%202.0/job/pharo-2.0-tests/ws/Arc…
> >
> > and I get:
> >
> > FLClassNotFound: Materialization error. Class named #HDTestReport not
> found
> >
> > That happens because during serialization the graph somehow reached the
> > class HDTestReport (probably a sender at some point in the stack). But
> now,
> > when materializing, such class is not present. So...is there in the
> > workspace an image with the jenkins stuff?
> > Anyway, the idea was to include this directly in Pharo, wasn't it?
>
> I suggest you use the image in the same directory, cause we install
> some Hudson tools (which IMO should be included by default).
+1 I remember there was an issue for that...I tried to find it but I fail.
Do you remember?
> I don't
> really like that we have to load stuff for running the test, meaning
> that this might affect the outcome of the results...
>
> So for now either take the following image:
>
> https://ci.lille.inria.fr/pharo/view/Pharo%202.0/job/pharo-2.0-tests/Archit…
>
>
ok, thanks!
> or manually install the hudson tools:
> "Load Hudson Build Tools"
> Gofer new
> url: 'http://ss3.gemstone.com/ss/CISupport';
> package: 'HudsonBuildTools20';
> load.
>
> then everything should work I think.
>
>
yes, it works. And it is really cool :)
Thanks!
--
Mariano
http://marianopeck.wordpress.com
July 24, 2012
Re: [Pharo-project] Strange behavior of Metacello in Pharo 2.0
by Camillo Bruni
There is indeed something fishy with RPackage :)
Somehow I could reproduce it by running certain tests for a couple of times.
But that is far from being specific, for now I just now how to fight the symptoms
by reinitializing RPackage...
On 2012-07-24, at 18:13, Dale Henrichs wrote:
> The "no package found" errors appear to be a reincarnation of Issue 6336[1], I reopened that bug earlier this morning. The retry with alternate repository failed may be a side effect of the "no package found" errors...
>
> I loaded Metacello 1.0-beta.31 just fine this morning, but got the Issue 6336 problems when I tried to upgrade to a later version of Metacello ...
>
> Dale
>
> [1] http://code.google.com/p/pharo/issues/detail?id=6336
>
> ----- Original Message -----
> | From: "Alexandre Bergel" <alexandre.bergel(a)me.com>
> | To: Pharo-project(a)lists.gforge.inria.fr
> | Sent: Tuesday, July 24, 2012 7:50:13 AM
> | Subject: Re: [Pharo-project] Strange behavior of Metacello in Pharo 2.0
> |
> | The problem is easy to reproduce. Just download a last image and
> | evaluate "ConfigurationOfPharo20 project". It gives an error:
> | 'retry with alternate repository failed: ''Error: No package found
> | for selector version13: in class
> | MetacelloSymbolicVersionExample2Config'''
> |
> | I've attached the pharodebug.
> |
> | http://code.google.com/p/pharo/issues/detail?id=6446
> |
> | Cheers,
> | Alexandre
> |
> |
> |
> |
> |
> |
> | On Jul 23, 2012, at 12:29 PM, Dale Henrichs wrote:
> |
> | > Alexandre,
> | >
> | > Is "utterly fail" a technical term:)?
> | >
> | > Do you get a walkback? Do you get an error message?
> | >
> | > Mariano just posted a message on the Metacello list about changing
> | > the protocol on MCCacheDictionary that causes a MNU for
> | > #uniqueIntance during the bootstrapping process ... I think that
> | > for at least the short term, #uniqueInstace will be restored ...
> | >
> | > Dale
> | >
> | > ----- Original Message -----
> | > | From: "Alexandre Bergel" <alexandre.bergel(a)me.com>
> | > | To: "An open mailing list to discuss any topics related to an
> | > | open-source Smalltalk"
> | > | <Pharo-project(a)lists.gforge.inria.fr>
> | > | Sent: Sunday, July 22, 2012 6:35:16 PM
> | > | Subject: [Pharo-project] Strange behavior of Metacello in Pharo
> | > | 2.0
> | > |
> | > | Hi!
> | > |
> | > | I've just downloaded a configuration using monticello browser. In
> | > | a
> | > | workspace I am doing:
> | > | -=-=-=-=-=-=-=-=-=
> | > | ConfigurationOfVersionner project
> | > | -=-=-=-=-=-=-=-=-=
> | > |
> | > | and apparently Pharo tries to get something from
> | > | http://www.squeaksource/MetacelloRepository , which utterly fail.
> | > |
> | > |
> | > | I am using the last Pharo from the forge.
> | > | Is there something obvious I am missing? Am I the only one to
> | > | experience this?
> | > |
> | > | Cheers,
> | > | Alexandre
> | > | --
> | > | _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> | > | Alexandre Bergel http://www.bergel.eu
> | > | ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> | > |
> | > |
> | > |
> | > |
> | > |
> | >
> |
> | --
> | _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> | Alexandre Bergel http://www.bergel.eu
> | ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> |
> |
> |
> |
>
July 24, 2012