First try - BOOM! (Re: [Vm-dev] Re: [squeak-dev] Teleplace Cog VMs are now available)

stephane ducasse stephane.ducasse at gmail.com
Mon Jun 21 20:08:48 UTC 2010


thanks for educating me :)


On Jun 21, 2010, at 9:34 PM, Eliot Miranda wrote:

> 
> 
> On Mon, Jun 21, 2010 at 12:27 PM, stephane ducasse <stephane.ducasse at gmail.com> wrote:
> 
> > There are a few other things also.  Please file-in NecessaryImageChangesForCogToWork.1.cs from the image directory in the tarball or upgrade to the latest in trunk (i.e. Andreas added the changes from NecessaryImageChangesForCogToWork.1.cs to trunk over the weekend).
> 
> eliot
> do you know whether these changes can be integrated and the images will work on the different Cog and nonCog
> 
> These are "carefully crafted" to be backward-compatible.  They will /not/ break an image for older VMs.  There are three sets of changes:
> 
> 1. remove primitives in LargePositiveInteger.  These will make images slightly slower for certain benchmarks but won't break anything.
> 2. add special primitives for Float>>basicAt: at: basicAt:put: & at:put: that call super if they fail.  They will fail on older VMs, hence these will make images slightly slower for certain benchmarks but won't break anything.
> 3. a new version of recreateSpecialObjectsArray that does not recreate the Character table.  This will have no effect except for Cog, where it allows the VM to inline Character table access in the at: primitive.
> 
> 
> 
> Stef
> 
> >
> >
> > Cheers,
> > Henry
> >
> > On Jun 21, 2010, at 1:39 51PM, Göran Krampe wrote:
> >
> > > Howdy!
> > >
> > > First: Super fun and cool! I am of course *very* happy to see Cog released.
> > >
> > > Now, over to some "testing"...
> > >
> > > SIDENOTE: First btw I ran pystone.py with regular Python 2.6.5 on my Lucid Lynx, then in the latest "regular" VM from Squeakvm.org. Result:
> > >
> > > Python: 36k pystones
> > > Squeak: 45k pystones
> > >
> > > So... the good ole VM is still a tad faster than CPython in that bench. :)
> > >
> > > Now, I wanted to try it out with Cogit. Trouble begins! :)
> > >
> > > I am using the tar ball on a Lucid laptop.
> > >
> > > 1. vm-sound-NAS does not compile! Lots of compile errors, probably due to a new upstream NAS. So try to get rid of that plugin... is harder than I thought! I finally ended up hacking the configure script to "fail" on the compile check by trying to compile rubbish. ;)
> > >
> > > 2. For some odd reason this will still create duplicate lines about NAS in disabledPlugins.c, just manually remove one of them, fine. Tada! Got a VM binary.
> > >
> > > 3. Fire it up on a *vanilla* Squeak4.1.1.image. BOOM, segfault. This is a "full debug VM" per instructions in HowToBuild. Anyway, see all info below, and tell me if there is more you want. :)
> > >
> > > Btw, is there some nice existing script to run to "collect data about the box" that does uname etc?
> > >
> > > regards, Göran
> > > ------------------
> > > gokr at yoda:~/squeak$ cat /proc/cpuinfo
> > > processor     : 0
> > > vendor_id     : GenuineIntel
> > > cpu family    : 6
> > > model         : 14
> > > model name    : Genuine Intel(R) CPU           U2500  @ 1.20GHz
> > > stepping      : 8
> > > cpu MHz               : 800.000
> > > cache size    : 2048 KB
> > > physical id   : 0
> > > siblings      : 2
> > > core id               : 0
> > > cpu cores     : 2
> > > apicid                : 0
> > > initial apicid        : 0
> > > fdiv_bug      : no
> > > hlt_bug               : no
> > > f00f_bug      : no
> > > coma_bug      : no
> > > fpu           : yes
> > > fpu_exception : yes
> > > cpuid level   : 10
> > > wp            : yes
> > > flags         : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts aperfmperf pni monitor vmx est tm2 xtpr pdcm
> > > bogomips      : 2393.82
> > > clflush size  : 64
> > > cache_alignment       : 64
> > > address sizes : 32 bits physical, 32 bits virtual
> > > power management:
> > >
> > > gokr at yoda:~/squeak$ gcc --version
> > > gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
> > > Copyright (C) 2009 Free Software Foundation, Inc.
> > > This is free software; see the source for copying conditions.  There is NO
> > > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> > >
> > > gokr at yoda:~/squeak$ uname -a
> > > Linux yoda 2.6.32-22-generic-pae #36-Ubuntu SMP Thu Jun 3 23:14:23 UTC 2010 i686 GNU/Linux
> > >
> > > gokr at yoda:~/squeak$ squeak -version
> > > 3.9-7 #1 Mon Jun 21 13:20:28 CEST 2010 gcc 4.4.3
> > > Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.11]
> > > Linux yoda 2.6.32-22-generic-pae #36-Ubuntu SMP Thu Jun 3 23:14:23 UTC 2010 i686 GNU/Linux
> > > plugin path: /usr/local/lib/squeak/3.9-7/ [default: /usr/local/lib/squeak/3.9-7/]
> > >
> > > gokr at yoda:~/squeak$ squeak Squeak4.1.1.image
> > >
> > > ((rcvr & 1)) || (addressCouldBeObj(rcvr)) 11334
> > >
> > > Segmentation fault
> > >
> > >
> > >
> > > Smalltalk stack dump:
> > > 0xbfc87e08 M GradientFillStyle>scaledAlphaMix:of:with: 2018669100: a(n) GradientFillStyle
> > > 0xbfc87e5c M [] in GradientFillStyle>computePixelRampOfSize: 2018669100: a(n) GradientFillStyle
> > > 0xbfc87e7c M SortedCollection(OrderedCollection)>do: 2018669424: a(n) SortedCollection
> > > 0xbfc87eb4 I GradientFillStyle>computePixelRampOfSize: 2018669100: a(n) GradientFillStyle
> > > 0xbfc87ed8 I [] in GradientFillStyle class>initPixelRampCache 2007164144: a(n) GradientFillStyle class
> > > 0xbfc87f10 I LRUCache>at: 2012963616: a(n) LRUCache
> > > 0xbfc87f2c M GradientFillStyle>pixelRamp 2018529312: a(n) GradientFillStyle
> > > 0xbfc87f4c M BalloonEngine>registerFill: 2018659444: a(n) BalloonEngine
> > > 0xbfc87f74 M BalloonEngine>registerFills: 2018659444: a(n) BalloonEngine
> > > 0xbfc87f90 M BalloonEngine>registerFill:and: 2018659444: a(n) BalloonEngine
> > > 0xbfc87fb4 M BalloonEngine>drawRectangle:fill:borderWidth:borderColor:transform: 2018659444: a(n) BalloonEngine
> > > 0xbfc87fe8 M BalloonCanvas>drawRectangle:color:borderWidth:borderColor: 2018659252: a(n) BalloonCanvas
> > > 0xbfc88010 M BalloonCanvas>fillRectangle:fillStyle: 2018659252: a(n) BalloonCanvas
> > > 0xbfc88030 M FormCanvas>balloonFillRectangle:fillStyle: 2018611404: a(n) FormCanvas
> > > 0xbfc88054 M FormCanvas>fillRectangle:fillStyle: 2018611404: a(n) FormCanvas
> > > 0xbfc88074 M FormCanvas(Canvas)>fillRectangle:fillStyle:borderStyle: 2018611404: a(n) FormCanvas
> > > 0xbfc88098 M SystemWindow(Morph)>drawOn: 2014426088: a(n) SystemWindow
> > > 0xbfc880b4 M FormCanvas(Canvas)>draw: 2018611404: a(n) FormCanvas
> > > 0xbfc880d0 M FormCanvas(Canvas)>drawMorph: 2018611404: a(n) FormCanvas
> > > 0xbfc880f0 M [] in SystemWindow(Morph)>fullDrawOn: 2014426088: a(n) SystemWindow
> > > 0xbfc8810c M CornerRounder class>roundCornersOf:on:in:displayBlock:borderWidth:corners: 2007442196: a(n) CornerRounder class
> > > 0xbfc8813c M FormCanvas>roundCornersOf:in:during: 2018611404: a(n) FormCanvas
> > > 0xbfc88160 M FormCanvas(Canvas)>roundCornersOf:during: 2018611404: a(n) FormCanvas
> > > 0xbfc88180 M SystemWindow(Morph)>fullDrawOn: 2014426088: a(n) SystemWindow
> > > 0xbfc8819c M FormCanvas(Canvas)>fullDraw: 2018611404: a(n) FormCanvas
> > > 0xbfc881b8 M FormCanvas(Canvas)>fullDrawMorph: 2018611404: a(n) FormCanvas
> > > 0xbfc88208 M [] in WorldState>drawWorld:submorphs:invalidAreasOn: 2001318316: a(n) WorldState
> > > 0xbfc88240 I Rectangle>allAreasOutsideList:startingAt:do: 2017358104: a(n) Rectangle
> > > 0xbfc8826c I Rectangle>allAreasOutsideList:do: 2017358104: a(n) Rectangle
> > > 0xbfc882a8 M [] in WorldState>drawWorld:submorphs:invalidAreasOn: 2001318316: a(n) WorldState
> > > 0xbfc882cc M Array(SequenceableCollection)>do: 2018529764: a(n) Array
> > > 0xbfc882fc M WorldState>drawWorld:submorphs:invalidAreasOn: 2001318316: a(n) WorldState
> > > 0xbfc88334 M [] in WorldState>displayWorld:submorphs: 2001318316: a(n) WorldState
> > > 0xbfc8834c M FormCanvas>roundCornersOf:in:during: 2017358448: a(n) FormCanvas
> > > 0xbfc88370 M FormCanvas(Canvas)>roundCornersOf:during: 2017358448: a(n) FormCanvas
> > > 0xbfc88398 M WorldState>displayWorld:submorphs: 2001318316: a(n) WorldState
> > > 0xbfc883c0 I PasteUpMorph>privateOuterDisplayWorld 2001318568: a(n) PasteUpMorph
> > > 0xbfc883e0 I PasteUpMorph>displayWorld 2001318568: a(n) PasteUpMorph
> > > 0xbfc88404 I [] in WorldState>displayWorldSafely: 2001318316: a(n) WorldState
> > > 0xbfc88420 M BlockClosure>on:do: 2018529472: a(n) BlockClosure
> > > 0xbfc88440 M BlockClosure>ifError: 2018529472: a(n) BlockClosure
> > > 0xbfc88464 I WorldState>displayWorldSafely: 2001318316: a(n) WorldState
> > > 0xbfc88480 M PasteUpMorph>displayWorldSafely 2001318568: a(n) PasteUpMorph
> > > 0xbfc88498 M PasteUpMorph>install 2001318568: a(n) PasteUpMorph
> > > 0xbfc884c0 I AutoStart class>checkForPluginUpdate 2008299932: a(n) AutoStart class
> > > 0xbfc884e0 M AutoStart class>startUp: 2008299932: a(n) AutoStart class
> > > 0xbfc8850c M [] in SmalltalkImage>send:toClassesNamedIn:with: 2009624740: a(n) SmalltalkImage
> > > 0xbfc88534 I OrderedCollection>do: 2009661056: a(n) OrderedCollection
> > > 0xbfc8855c I SmalltalkImage>send:toClassesNamedIn:with: 2009624740: a(n) SmalltalkImage
> > > 0xbfc88588 I SmalltalkImage>processStartUpList: 2009624740: a(n) SmalltalkImage
> > > 0xbfc885b4 I SmalltalkImage>snapshot:andQuit:embedded: 2009624740: a(n) SmalltalkImage
> > > 2014606248 s SmalltalkImage>snapshot:andQuit:
> > > 2014606132 s TheWorldMainDockingBar>saveAndQuitSqueak
> > > 2014606040 s [] in MenuItemMorph>invokeWithEvent:
> > > 2014605924 s BlockClosure>ensure:
> > > 2014605832 s CursorWithMask(Cursor)>showWhile:
> > > 2014605632 s MenuItemMorph>invokeWithEvent:
> > > 2014605540 s MenuItemMorph>mouseUp:
> > > 2014605448 s MenuItemMorph>handleMouseUp:
> > > 2014605316 s MouseButtonEvent>sentTo:
> > > 2014605224 s MenuItemMorph(Morph)>handleEvent:
> > > 2014605132 s MorphicEventDispatcher>dispatchDefault:with:
> > > 2014605040 s MorphicEventDispatcher>dispatchEvent:with:
> > > 2014604948 s MenuItemMorph(Morph)>processEvent:using:
> > > 2014604856 s MorphicEventDispatcher>dispatchDefault:with:
> > > 2014604748 s MorphicEventDispatcher>dispatchEvent:with:
> > > 2014604616 s DockingBarMenuMorph(Morph)>processEvent:using:
> > > 2014604524 s DockingBarMenuMorph(Morph)>processEvent:
> > > 2014604432 s DockingBarMenuMorph(MenuMorph)>handleFocusEvent:
> > > 2014604340 s [] in HandMorph>sendFocusEvent:to:clear:
> > > 2014604248 s [] in PasteUpMorph>becomeActiveDuring:
> > > 2014604068 s BlockClosure>on:do:
> > > 2014603976 s PasteUpMorph>becomeActiveDuring:
> > > 2014603856 s HandMorph>sendFocusEvent:to:clear:
> > > 2014603764 s HandMorph>sendEvent:focus:clear:
> > > 2014603672 s HandMorph>sendMouseEvent:
> > > 2014603528 s HandMorph>handleEvent:
> > > 2014603180 s HandMorph>processEvents
> > > 2014603064 s [] in WorldState>doOneCycleNowFor:
> > > 2014602972 s Array(SequenceableCollection)>do:
> > > 2014602872 s WorldState>handsDo:
> > > 2014602780 s WorldState>doOneCycleNowFor:
> > > 2014602688 s WorldState>doOneCycleFor:
> > > 2014602596 s PasteUpMorph>doOneCycle
> > > 2010011832 s [] in Project class>spawnNewProcess
> > > 2010011700 s [] in BlockClosure>newProcess
> > >
> > > Most recent primitives
> > > basicNew
> > > copyBits
> > > @
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > @
> > > basicNew
> > > copyBits
> > > @
> > > @
> > > @
> > > basicNew
> > > @
> > > copyBits
> > > @
> > > @
> > > @
> > > basicNew
> > > basicNew:
> > > at:put:
> > > @
> > > copyBits
> > > @
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > @
> > > basicNew
> > > shallowCopy
> > > new:
> > > @
> > > @
> > > new:
> > > at:put:
> > > at:put:
> > > at:put:
> > > at:put:
> > > @
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > basicNew:
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > copyBits
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > @
> > > basicNew
> > > basicNew:
> > > at:put:
> > > at:put:
> > > @
> > > basicNew
> > > copyBits
> > > at:put:
> > > @
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > basicNew:
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > copyBits
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > @
> > > basicNew
> > > basicNew:
> > > at:put:
> > > at:put:
> > > @
> > > basicNew
> > > copyBits
> > > at:put:
> > > @
> > > @
> > > @
> > > @
> > > basicNew@
> > > @
> > > basicNew
> > > basicNew:
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > copyBits
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > @
> > > basicNew
> > > basicNew:
> > > at:put:
> > > at:put:
> > > @
> > > basicNew
> > > copyBits
> > > at:put:
> > > @
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > basicNew:
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > copyBits
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > @
> > > basicNew
> > > basicNew:
> > > at:put:
> > > at:put:
> > > @
> > > basicNew
> > > copyBits
> > > at:put:
> > > @
> > > perform:with:
> > > @
> > > @
> > > perform:with:
> > > @
> > > basicNew
> > > basicNew
> > > @
> > > @
> > > @
> > > basicNew
> > > basicNew
> > > basicNew
> > > basicNew
> > > new:
> > > basicNew:
> > > basicNew
> > > primitiveSetBitBltPlugin:
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > @
> > > primitiveSetBitBltPlugin:
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > basicNew
> > > @
> > > @
> > > wait
> > > at:put:
> > > signal
> > > primInitializeBuffer:
> > > primSetAALevel:
> > > primSetOffset:
> > > primSetClipRect:
> > > primSetEdgeTransform:
> > > primSetColorTransform:
> > > primSetEdgeTransform:
> > > primSetColorTransform:
> > > primGetDepth
> > > primSetDepth:
> > > new:
> > > at:put:
> > > at:put:
> > > basicNew:
> > > species
> > > stringHash:initialHash:
> > > fractionPart
> > > truncated
> > > fractionPart
> > > fractionPart
> > > truncated
> > > basicNew
> > > basicNew
> > > new:
> > > value:
> > > at:put:
> > > value:
> > > at:put:
> > > at:put:
> > > value:value:
> > > value:value:
> > > basicNew:
> > > basicNew:
> > > at:put:
> > > at:put:
> > > at:put:
> > > at:put:
> > > fractionPart
> > > truncated
> > > basicNew:
> > > at:put:
> > > at:put:
> > > at:put:
> > > at:put:
> > > fractionPart
> > > truncated
> > > basicNew:
> > > at:put:
> > > at:put:
> > > at:put:
> > > at:put:
> > > truncated
> > > truncated
> > > truncated
> > > truncated
> > > at:put:
> > > perform:with:
> > > truncated
> > > Aborted
> > > gokr at yoda:~/squeak$
> > >
> > >
> >
> >
> 
> 



More information about the Vm-dev mailing list