A standard Cog r.2714. As far as I understand a PharoVM is just a Cog
with a few extra plugins?

frank

On 30 May 2013 21:43, Guillermo Polito <[email protected]> wrote:
> BTW, I was using PharoVM, not Eliot's Cog... What are you using?
>
>
> On Thu, May 30, 2013 at 10:41 PM, Frank Shearar <[email protected]>
> wrote:
>>
>> On 30 May 2013 21:39, Frank Shearar <[email protected]> wrote:
>> > On 30 May 2013 16:43, Guillermo Polito <[email protected]>
>> > wrote:
>> >> Yes, this is a problem with Cog and Method wrappers it seems. Camille
>> >> found
>> >> not so long ago that when installing a method wrapper with instance
>> >> variables, the VM just crashes. I think this should be the case.
>> >>
>> >> Anyway, I was just playing a bit because I want to use method wrappers
>> >> for
>> >> some experiments.
>> >> So, the following looks like working when using wrappers with no inst
>> >> vars.
>> >>
>> >> method := MyA>>#a.
>> >> [
>> >> MyA methodDictionary at: #a put: MyWrapper new.
>> >> anA := MyA new.
>> >> res := anA a.
>> >> ] ensure: [
>> >> MyA methodDictionary at: #a put: method.
>> >> method flushCache.
>> >> ].
>> >> res
>> >>
>> >> Doing the same with a wrapper with inst vars just crashes the vm.
>> >> However,
>> >> if flushing the method cache after installing the method in the method
>> >> dictionary, makes it work...
>> >>
>> >> method := MyA>>#a.
>> >> [
>> >> MyA methodDictionary at: #a put: MyWrapperWithInstVar new.
>> >> method flushCache.
>> >> anA := MyA new.
>> >> res := anA a.
>> >> ] ensure: [
>> >> MyA methodDictionary at: #a put: method.
>> >> method flushCache.
>> >> ].
>> >> res
>> >>
>> >> So it looks like a problem in the JIT cache not cleared :).
>> >>
>> >> Now, I was looking at the TestCoverage class, to see how to make it
>> >> work,
>> >> but not results yet :P.
>> >
>> > You might be onto something there. The only difference between
>> > Squeak's and Pharo's TestCoverage is #flushCache.
>> >
>> > Pharo's says
>> >
>> > flushCache
>> >     self reference selector flushCache
>> >
>> > and Squeak's says
>> >
>> > flushCache
>> >
>> > (A no-op.)
>>
>> Of course, that's not the _whole_ story: making Squeak's flushCache
>> match that of Pharo's doesn't make Cog crash.
>>
>> > frank
>> >
>> >> Guille
>> >>
>> >>
>> >> On Sun, May 26, 2013 at 6:48 PM, Frank Shearar
>> >> <[email protected]>
>> >> wrote:
>> >>>
>> >>> Hi,
>> >>>
>> >>> I wanted to see FileSystem's coverage, so I
>> >>> * downloaded 3.0 via curl http://get.pharo.org/30+vm | bash,
>> >>> * fired up the image,
>> >>> * opened the TestRunner,
>> >>> * highlighted the three FileSystem packages,
>> >>> * "select all"ed,
>> >>> * pressed "Run Coverage"
>> >>>
>> >>> and the VM crashed with a segfault. I tried with a few other packages,
>> >>> and every time I tried to run coverage the VM died with the same
>> >>> message:
>> >>>
>> >>> Segmentation fault Sun May 26 15:46:45 2013
>> >>>
>> >>>
>> >>> pharo VM version: 3.9-7 #1 Wed Mar 13 18:22:44 CET 2013 gcc 4.4.3
>> >>> Built from: NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.18
>> >>> uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
>> >>> With: NBCogit NativeBoost-CogPlugin-EstebanLorenzano.18 uuid:
>> >>> a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
>> >>> Revision: git://gitorious.org/cogvm/blessed.git Commit:
>> >>> 412abef33cbed05cf1d75329e451d71c0c6aa5a7 Date: 2013-03-13 17:48:50
>> >>> +0100 By: Esteban Lorenzano <[email protected]> Jenkins build #14535
>> >>> Build host: Linux linux-ubuntu-10 2.6.32-38-server #83-Ubuntu SMP Wed
>> >>> Jan 4 11:26:59 UTC 2012 x86_64 GNU/Linux
>> >>> plugin path: /home/frank/Downloads/pharo-3.0/pharo-vm/ [default:
>> >>> /home/frank/Downloads/pharo-3.0/pharo-vm/]
>> >>>
>> >>>
>> >>> C stack backtrace:
>> >>> pharo-vm/pharo[0x80a0c0c]
>> >>> pharo-vm/pharo[0x80a0f28]
>> >>> [0x408410]
>> >>> [0x77744f1e]
>> >>> [0x777447c8]
>> >>> [0x7819010f]
>> >>> [0x777454f9]
>> >>> [0x777447c8]
>> >>> [0x7818e112]
>> >>> [0x777fc687]
>> >>> [0x777456ea]
>> >>> [0x77744668]
>> >>>
>> >>>
>> >>> Smalltalk stack dump:
>> >>> 0xbfc98e4c I [] in InteractiveResolverTest(TestCase)>runCase
>> >>> 0x78f0bfc8: a(n) InteractiveResolverTest
>> >>> 0xbfc98e6c M BlockClosure>ensure: 0x78fa4c34: a(n) BlockClosure
>> >>> 0xbfc98e90 I InteractiveResolverTest(TestCase)>runCase 0x78f0bfc8:
>> >>> a(n) InteractiveResolverTest
>> >>> 0xbfc98eb4 I [] in TestResult>runCase: 0x78f0bdcc: a(n) TestResult
>> >>> 0xbfc98ed0 M BlockClosure>on:do: 0x78fa4a30: a(n) BlockClosure
>> >>> 0xbfc98ef8 I TestResult>runCase: 0x78f0bdcc: a(n) TestResult
>> >>> 0xbfc98f1c I InteractiveResolverTest(TestCase)>run: 0x78f0bfc8: a(n)
>> >>> InteractiveResolverTest
>> >>> 0xbfc98f3c M [] in TestSuite>run: 0x78f0bfb0: a(n) TestSuite
>> >>> 0xbfc98f5c M OrderedCollection>do: 0x78f0bfdc: a(n) OrderedCollection
>> >>> 0xbfc9fdf0 I [] in TestSuite>run: 0x78f0bfb0: a(n) TestSuite
>> >>> 0xbfc9fe10 M BlockClosure>ensure: 0x78fa48e4: a(n) BlockClosure
>> >>> 0xbfc9fe34 I TestSuite>run: 0x78f0bfb0: a(n) TestSuite
>> >>> 0xbfc9fe58 I [] in TestRunner>runSuite: 0x78e405bc: a(n) TestRunner
>> >>> 0xbfc9fe80 I BlockClosure>cull:cull: 0x78f9c050: a(n) BlockClosure
>> >>> 0xbfc9feb0 I [] in TestRunner>executeSuite:as: 0x78e405bc: a(n)
>> >>> TestRunner
>> >>> 0xbfc9fed0 M BlockClosure>ensure: 0x78f9c420: a(n) BlockClosure
>> >>> 0xbfc9fef4 I TestRunner>executeSuite:as: 0x78e405bc: a(n) TestRunner
>> >>> 0xbfc9ff1c I TestRunner>runSuite: 0x78e405bc: a(n) TestRunner
>> >>> 0xbfc9ff3c M [] in TestRunner>collectCoverageFor: 0x78e405bc: a(n)
>> >>> TestRunner
>> >>> 0xbfc9ff5c M BlockClosure>ensure: 0x78f9bfcc: a(n) BlockClosure
>> >>> 0xbfc97e54 M [] in TestRunner>collectCoverageFor: 0x78e405bc: a(n)
>> >>> TestRunner
>> >>> 0xbfc97e74 M BlockClosure>ensure: 0x78f0dd7c: a(n) BlockClosure
>> >>> 0xbfc97ea8 I BlockClosure>valueUnpreemptively 0x78f0dd7c: a(n)
>> >>> BlockClosure
>> >>> 0xbfc97ed4 I TestRunner>collectCoverageFor: 0x78e405bc: a(n)
>> >>> TestRunner
>> >>> 0xbfc97ef8 M TestRunner>runCoverage 0x78e405bc: a(n) TestRunner
>> >>> 0xbfc97f18 I PluggableButtonMorph>performAction: 0x78e6c24c: a(n)
>> >>> PluggableButtonMorph
>> >>> 0xbfc97f38 M [] in PluggableButtonMorph>mouseUp: 0x78e6c24c: a(n)
>> >>> PluggableButtonMorph
>> >>> 0xbfc97f5c M Array(SequenceableCollection)>do: 0x78ed9f14: a(n) Array
>> >>> 0xbfc93e08 M PluggableButtonMorph>mouseUp: 0x78e6c24c: a(n)
>> >>> PluggableButtonMorph
>> >>> 0xbfc93e28 M PluggableButtonMorph(Morph)>handleMouseUp: 0x78e6c24c:
>> >>> a(n) PluggableButtonMorph
>> >>> 0xbfc93e44 M MouseButtonEvent>sentTo: 0x78ed9eec: a(n)
>> >>> MouseButtonEvent
>> >>> 0xbfc93e60 M PluggableButtonMorph(Morph)>handleEvent: 0x78e6c24c: a(n)
>> >>> PluggableButtonMorph
>> >>> 0xbfc93e7c M PluggableButtonMorph(Morph)>handleFocusEvent: 0x78e6c24c:
>> >>> a(n) PluggableButtonMorph
>> >>> 0xbfc93ea4 M [] in HandMorph>sendFocusEvent:to:clear: 0x77b1c270: a(n)
>> >>> HandMorph
>> >>> 0xbfc93ec0 M [] in PasteUpMorph>becomeActiveDuring: 0x7796b824: a(n)
>> >>> PasteUpMorph
>> >>> 0xbfc93edc M BlockClosure>on:do: 0x78ed9e5c: a(n) BlockClosure
>> >>> 0xbfc93f08 M PasteUpMorph>becomeActiveDuring: 0x7796b824: a(n)
>> >>> PasteUpMorph
>> >>> 0xbfc93f2c M HandMorph>sendFocusEvent:to:clear: 0x77b1c270: a(n)
>> >>> HandMorph
>> >>> 0xbfc93f54 M HandMorph>sendEvent:focus:clear: 0x77b1c270: a(n)
>> >>> HandMorph
>> >>> 0xbfc92e44 M HandMorph>sendMouseEvent: 0x77b1c270: a(n) HandMorph
>> >>> 0xbfc92e68 M HandMorph>handleEvent: 0x77b1c270: a(n) HandMorph
>> >>> 0xbfc92e94 M HandMorph>processEvents 0x77b1c270: a(n) HandMorph
>> >>> 0xbfc92eac M [] in WorldState>doOneCycleNowFor: 0x7797ab44: a(n)
>> >>> WorldState
>> >>> 0xbfc92ed0 M Array(SequenceableCollection)>do: 0x77846894: a(n) Array
>> >>> 0xbfc92eec M WorldState>handsDo: 0x7797ab44: a(n) WorldState
>> >>> 0xbfc92f08 M WorldState>doOneCycleNowFor: 0x7797ab44: a(n) WorldState
>> >>> 0xbfc92f24 M WorldState>doOneCycleFor: 0x7797ab44: a(n) WorldState
>> >>> 0xbfc92f40 M PasteUpMorph>doOneCycle 0x7796b824: a(n) PasteUpMorph
>> >>> 0xbfc92f60 I [] in MorphicUIManager>? 0x7797ebd4: a(n)
>> >>> MorphicUIManager
>> >>> 0x77c9891c s [] in BlockClosure>?
>> >>>
>> >>> Most recent primitives
>> >>> class
>> >>> class
>> >>> class
>> >>> class
>> >>> class
>> >>> class
>> >>> class
>> >>>
>> >>
>>
>

Reply via email to