[Pharo-project] we need help for rome
Hi We need help. Can you execute Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load RomeDemo demoMovingCar And let me know if you get an error? Then can you let us know what is the value of Smalltalk listLoadedModules I do not understand why the prim failed even if the plugin is loaded. Stef
On Apr 16, 2010, at 12:39 17PM, Stéphane Ducasse wrote:
Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load
RomeDemo demoMovingCar
In 1.1, since Rectangle transformedBy: no longer exists, I had to rewrite RomeReferenceCanvas>>clipRectangle: aRect ((self transform isNoTransformWithin: aRect) not or: [deviceClip isRectangular not]) ifTrue: [^self clipPath: [self rectangle: aRect]]. ^self deviceClip: (self deviceClip intersect: (RomeClipshape new bounds: (self transform transformRect: aRect))). It then started drawing a car, with a few artifacts. VMs: Mac v5, 32/64 version, built from latest svn, Windows 3.11.8. - One of the lines had a tendency to be drawn all red - On Mac, said line would also draw outside cliprect. Cheers, Henry
Same results as you. ----------------------------- Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load RomeDemo demoMovingCar SmalltalkImage current listLoadedModules #('SurfacePlugin Sep 27 2009 (i)' 'RomePlugin dg.40 4 February 2008 (e)' 'UUIDPlugin 17 September 2009 (i)' 'SoundGenerationPlugin 17 September 2009 (i)' 'SoundPlugin 17 September 2009 (i)' 'FloatArrayPlugin 17 September 2009 (i)' 'ClipboardExtendedPlugin 20 August 2009 (e)' 'SocketPlugin 17 September 2009 (i)' 'JPEGReadWriter2Plugin 17 September 2009 (i)' 'ZipPlugin 17 September 2009 (i)' 'InternetConfigPlugin 17 September 2009 (i)' 'B2DPlugin 17 September 2009 (i)' 'LargeIntegers v1.5 17 September 2009 (i)' 'FT2Plugin 24 April 2007 (e)' 'BitBltPlugin 17 September 2009 (i)' 'SecurityPlugin 17 September 2009 (i)' 'FilePlugin 17 September 2009 (i)' 'DropPlugin 17 September 2009 (i)' 'MiscPrimitivePlugin 17 September 2009 (i)') SmalltalkImage current aboutThisSystem => Pharo-1.0-10515-rc3 SmalltalkImage current vmVersion => 'Squeak3.8.1 of ''28 Aug 2006'' [latest update: #6747] Squeak VM 4.2.2b1' ----------------------------- On Apr 16, 2010, at 12:39 PM, Stéphane Ducasse wrote:
Hi
We need help. Can you execute
Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load
RomeDemo demoMovingCar
And let me know if you get an error?
Then can you let us know what is the value of Smalltalk listLoadedModules
I do not understand why the prim failed even if the plugin is loaded. Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Hi, I run the code on Pharo 1.0 stable and the primitive primOpen fail. VM: Mac OS - intel - 1063 - Squeak3.8.1 of '28 Aug 2006' [latest update: #6747] Squeak VM 4.2.2b1 Image: Pharo-1.0 [Latest update: #10517] Here the stack trace: --- The full stack --- RomePluginCanvas(Object)>>error: RomePluginCanvas(Object)>>primitiveFailed RomePluginCanvas>>primOpen RomePluginCanvas>>open RomePluginCanvas>>setTarget: RomePluginCanvas class(RomeCanvas class)>>on: RomeCanvas class>>new RomeDemo class>>demoMovingCar UndefinedObject>>DoIt Compiler>>evaluate:in:to:notifying:ifFail:logged: [] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection BlockClosure>>on:do: TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection TextMorphForShoutEditor(ParagraphEditor)>>doIt [] in TextMorphForShoutEditor(ParagraphEditor)>>doIt: TextMorphForShoutEditor(ParagraphEditor)>>terminateAndInitializeAround: TextMorphForShoutEditor(ParagraphEditor)>>doIt: TextMorphForShoutEditor(ParagraphEditor)>>dispatchOnKeyEvent:with: TextMorphForShoutEditor(TextMorphEditor)>>dispatchOnKeyEvent:with: TextMorphForShoutEditor(ParagraphEditor)>>keystroke: TextMorphForShoutEditor(TextMorphEditor)>>keystroke: [] in [] in TextMorphForShout(TextMorph)>>keyStroke: TextMorphForShout(TextMorph)>>handleInteraction: TextMorphForShout(TextMorphForEditView)>>handleInteraction: [] in TextMorphForShout(TextMorph)>>keyStroke: ECToolSet class>>codeCompletionAround:textMorph:keyStroke: DEVToolSet class>>codeCompletionAround:textMorph:keyStroke: ToolSet class>>codeCompletionAround:textMorph:keyStroke: TextMorphForShout(TextMorph)>>keyStroke: TextMorphForShout(TextMorphForEditView)>>keyStroke: TextMorphForShout(TextMorph)>>handleKeystroke: KeyboardEvent>>sentTo: TextMorphForShout(Morph)>>handleEvent: TextMorphForShout(Morph)>>handleFocusEvent: [] in HandMorph>>sendFocusEvent:to:clear: [] in PasteUpMorph>>becomeActiveDuring: BlockClosure>>on:do: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendFocusEvent:to:clear: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HandMorph>>sendEvent:focus:clear: HandMorph>>sendKeyboardEvent: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess [] in BlockClosure>>newProcess 2010/4/16 Fernando olivero <oliverof@lu.unisi.ch>
Same results as you.
----------------------------- Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load
RomeDemo demoMovingCar
SmalltalkImage current listLoadedModules #('SurfacePlugin Sep 27 2009 (i)' 'RomePlugin dg.40 4 February 2008 (e)' 'UUIDPlugin 17 September 2009 (i)' 'SoundGenerationPlugin 17 September 2009 (i)' 'SoundPlugin 17 September 2009 (i)' 'FloatArrayPlugin 17 September 2009 (i)' 'ClipboardExtendedPlugin 20 August 2009 (e)' 'SocketPlugin 17 September 2009 (i)' 'JPEGReadWriter2Plugin 17 September 2009 (i)' 'ZipPlugin 17 September 2009 (i)' 'InternetConfigPlugin 17 September 2009 (i)' 'B2DPlugin 17 September 2009 (i)' 'LargeIntegers v1.5 17 September 2009 (i)' 'FT2Plugin 24 April 2007 (e)' 'BitBltPlugin 17 September 2009 (i)' 'SecurityPlugin 17 September 2009 (i)' 'FilePlugin 17 September 2009 (i)' 'DropPlugin 17 September 2009 (i)' 'MiscPrimitivePlugin 17 September 2009 (i)')
SmalltalkImage current aboutThisSystem => Pharo-1.0-10515-rc3 SmalltalkImage current vmVersion => 'Squeak3.8.1 of ''28 Aug 2006'' [latest update: #6747] Squeak VM 4.2.2b1'
-----------------------------
On Apr 16, 2010, at 12:39 PM, Stéphane Ducasse wrote:
Hi
We need help. Can you execute
Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load
RomeDemo demoMovingCar
And let me know if you get an error?
Then can you let us know what is the value of Smalltalk listLoadedModules
I do not understand why the prim failed even if the plugin is loaded. Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
oThanks fabrizio We all have the same problem and I have no idea how to solve it On Apr 16, 2010, at 4:28 PM, Fabrizio Perin wrote:
Hi, I run the code on Pharo 1.0 stable and the primitive primOpen fail.
VM: Mac OS - intel - 1063 - Squeak3.8.1 of '28 Aug 2006' [latest update: #6747] Squeak VM 4.2.2b1 Image: Pharo-1.0 [Latest update: #10517]
Here the stack trace:
--- The full stack --- RomePluginCanvas(Object)>>error: RomePluginCanvas(Object)>>primitiveFailed RomePluginCanvas>>primOpen RomePluginCanvas>>open RomePluginCanvas>>setTarget: RomePluginCanvas class(RomeCanvas class)>>on: RomeCanvas class>>new RomeDemo class>>demoMovingCar UndefinedObject>>DoIt Compiler>>evaluate:in:to:notifying:ifFail:logged: [] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection BlockClosure>>on:do: TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection TextMorphForShoutEditor(ParagraphEditor)>>doIt [] in TextMorphForShoutEditor(ParagraphEditor)>>doIt: TextMorphForShoutEditor(ParagraphEditor)>>terminateAndInitializeAround: TextMorphForShoutEditor(ParagraphEditor)>>doIt: TextMorphForShoutEditor(ParagraphEditor)>>dispatchOnKeyEvent:with: TextMorphForShoutEditor(TextMorphEditor)>>dispatchOnKeyEvent:with: TextMorphForShoutEditor(ParagraphEditor)>>keystroke: TextMorphForShoutEditor(TextMorphEditor)>>keystroke: [] in [] in TextMorphForShout(TextMorph)>>keyStroke: TextMorphForShout(TextMorph)>>handleInteraction: TextMorphForShout(TextMorphForEditView)>>handleInteraction: [] in TextMorphForShout(TextMorph)>>keyStroke: ECToolSet class>>codeCompletionAround:textMorph:keyStroke: DEVToolSet class>>codeCompletionAround:textMorph:keyStroke: ToolSet class>>codeCompletionAround:textMorph:keyStroke: TextMorphForShout(TextMorph)>>keyStroke: TextMorphForShout(TextMorphForEditView)>>keyStroke: TextMorphForShout(TextMorph)>>handleKeystroke: KeyboardEvent>>sentTo: TextMorphForShout(Morph)>>handleEvent: TextMorphForShout(Morph)>>handleFocusEvent: [] in HandMorph>>sendFocusEvent:to:clear: [] in PasteUpMorph>>becomeActiveDuring: BlockClosure>>on:do: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendFocusEvent:to:clear: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HandMorph>>sendEvent:focus:clear: HandMorph>>sendKeyboardEvent: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess [] in BlockClosure>>newProcess
2010/4/16 Fernando olivero <oliverof@lu.unisi.ch> Same results as you.
----------------------------- Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load
RomeDemo demoMovingCar
SmalltalkImage current listLoadedModules #('SurfacePlugin Sep 27 2009 (i)' 'RomePlugin dg.40 4 February 2008 (e)' 'UUIDPlugin 17 September 2009 (i)' 'SoundGenerationPlugin 17 September 2009 (i)' 'SoundPlugin 17 September 2009 (i)' 'FloatArrayPlugin 17 September 2009 (i)' 'ClipboardExtendedPlugin 20 August 2009 (e)' 'SocketPlugin 17 September 2009 (i)' 'JPEGReadWriter2Plugin 17 September 2009 (i)' 'ZipPlugin 17 September 2009 (i)' 'InternetConfigPlugin 17 September 2009 (i)' 'B2DPlugin 17 September 2009 (i)' 'LargeIntegers v1.5 17 September 2009 (i)' 'FT2Plugin 24 April 2007 (e)' 'BitBltPlugin 17 September 2009 (i)' 'SecurityPlugin 17 September 2009 (i)' 'FilePlugin 17 September 2009 (i)' 'DropPlugin 17 September 2009 (i)' 'MiscPrimitivePlugin 17 September 2009 (i)')
SmalltalkImage current aboutThisSystem => Pharo-1.0-10515-rc3 SmalltalkImage current vmVersion => 'Squeak3.8.1 of ''28 Aug 2006'' [latest update: #6747] Squeak VM 4.2.2b1'
-----------------------------
On Apr 16, 2010, at 12:39 PM, Stéphane Ducasse wrote:
Hi
We need help. Can you execute
Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load
RomeDemo demoMovingCar
And let me know if you get an error?
Then can you let us know what is the value of Smalltalk listLoadedModules
I do not understand why the prim failed even if the plugin is loaded. Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Is ROME the only failing plugin? I will try Lumiere and see if i have the same problem. Fernando On Apr 16, 2010, at 4:36 PM, Stéphane Ducasse wrote:
oThanks fabrizio
We all have the same problem and I have no idea how to solve it
On Apr 16, 2010, at 4:28 PM, Fabrizio Perin wrote:
Hi, I run the code on Pharo 1.0 stable and the primitive primOpen fail.
VM: Mac OS - intel - 1063 - Squeak3.8.1 of '28 Aug 2006' [latest update: #6747] Squeak VM 4.2.2b1 Image: Pharo-1.0 [Latest update: #10517]
Here the stack trace:
--- The full stack --- RomePluginCanvas(Object)>>error: RomePluginCanvas(Object)>>primitiveFailed RomePluginCanvas>>primOpen RomePluginCanvas>>open RomePluginCanvas>>setTarget: RomePluginCanvas class(RomeCanvas class)>>on: RomeCanvas class>>new RomeDemo class>>demoMovingCar UndefinedObject>>DoIt Compiler>>evaluate:in:to:notifying:ifFail:logged: [] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection BlockClosure>>on:do: TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection TextMorphForShoutEditor(ParagraphEditor)>>doIt [] in TextMorphForShoutEditor(ParagraphEditor)>>doIt: TextMorphForShoutEditor(ParagraphEditor)>>terminateAndInitializeAround: TextMorphForShoutEditor(ParagraphEditor)>>doIt: TextMorphForShoutEditor(ParagraphEditor)>>dispatchOnKeyEvent:with: TextMorphForShoutEditor(TextMorphEditor)>>dispatchOnKeyEvent:with: TextMorphForShoutEditor(ParagraphEditor)>>keystroke: TextMorphForShoutEditor(TextMorphEditor)>>keystroke: [] in [] in TextMorphForShout(TextMorph)>>keyStroke: TextMorphForShout(TextMorph)>>handleInteraction: TextMorphForShout(TextMorphForEditView)>>handleInteraction: [] in TextMorphForShout(TextMorph)>>keyStroke: ECToolSet class>>codeCompletionAround:textMorph:keyStroke: DEVToolSet class>>codeCompletionAround:textMorph:keyStroke: ToolSet class>>codeCompletionAround:textMorph:keyStroke: TextMorphForShout(TextMorph)>>keyStroke: TextMorphForShout(TextMorphForEditView)>>keyStroke: TextMorphForShout(TextMorph)>>handleKeystroke: KeyboardEvent>>sentTo: TextMorphForShout(Morph)>>handleEvent: TextMorphForShout(Morph)>>handleFocusEvent: [] in HandMorph>>sendFocusEvent:to:clear: [] in PasteUpMorph>>becomeActiveDuring: BlockClosure>>on:do: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendFocusEvent:to:clear: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HandMorph>>sendEvent:focus:clear: HandMorph>>sendKeyboardEvent: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess [] in BlockClosure>>newProcess
2010/4/16 Fernando olivero <oliverof@lu.unisi.ch> Same results as you.
----------------------------- Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load
RomeDemo demoMovingCar
SmalltalkImage current listLoadedModules #('SurfacePlugin Sep 27 2009 (i)' 'RomePlugin dg.40 4 February 2008 (e)' 'UUIDPlugin 17 September 2009 (i)' 'SoundGenerationPlugin 17 September 2009 (i)' 'SoundPlugin 17 September 2009 (i)' 'FloatArrayPlugin 17 September 2009 (i)' 'ClipboardExtendedPlugin 20 August 2009 (e)' 'SocketPlugin 17 September 2009 (i)' 'JPEGReadWriter2Plugin 17 September 2009 (i)' 'ZipPlugin 17 September 2009 (i)' 'InternetConfigPlugin 17 September 2009 (i)' 'B2DPlugin 17 September 2009 (i)' 'LargeIntegers v1.5 17 September 2009 (i)' 'FT2Plugin 24 April 2007 (e)' 'BitBltPlugin 17 September 2009 (i)' 'SecurityPlugin 17 September 2009 (i)' 'FilePlugin 17 September 2009 (i)' 'DropPlugin 17 September 2009 (i)' 'MiscPrimitivePlugin 17 September 2009 (i)')
SmalltalkImage current aboutThisSystem => Pharo-1.0-10515-rc3 SmalltalkImage current vmVersion => 'Squeak3.8.1 of ''28 Aug 2006'' [latest update: #6747] Squeak VM 4.2.2b1'
-----------------------------
On Apr 16, 2010, at 12:39 PM, Stéphane Ducasse wrote:
Hi
We need help. Can you execute
Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load
RomeDemo demoMovingCar
And let me know if you get an error?
Then can you let us know what is the value of Smalltalk listLoadedModules
I do not understand why the prim failed even if the plugin is loaded. Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Ok, well I'm less distracted and tense this afternoon. So I'm just attempting to compile up everything on an old powerpc test machine that I used to build the rome plugin. Unfortunately the current source code won't compile on my current work machine because it requires installing rome, and 55 other unixy things in order to do the compile, build, debug cycle. However I hope to get to the point of being able to determine exactly *why* the primitive fails. -- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
Ok, well I'm less distracted and tense this afternoon.
I imagined that :)
So I'm just attempting to compile up everything on an old powerpc test machine that I used to build the rome plugin. Unfortunately the current source code won't compile on my current work machine because it requires installing rome, and 55 other unixy things in order to do the compile, build, debug cycle.
However I hope to get to the point of being able to determine exactly *why* the primitive fails.
John what is strange is that when I use the sophie-dev image it works, so I thought that it was something at the image level but this is the same code that I filled in. Stef
Well I'm just as puzzled as you since the primitive gets executed and you are using the same binary that was shipped with Sophie years back. On Fri, Apr 16, 2010 at 1:25 PM, Stéphane Ducasse <stephane.ducasse@inria.fr
wrote:
Ok, well I'm less distracted and tense this afternoon.
I imagined that :)
So I'm just attempting to compile up everything on an old powerpc test machine that I used to build the rome plugin. Unfortunately the current source code won't compile on my current work machine because it requires installing rome, and 55 other unixy things in order to do the compile, build, debug cycle.
However I hope to get to the point of being able to determine exactly *why* the primitive fails.
John what is strange is that when I use the sophie-dev image it works, so I thought that it was something at the image level but this is the same code that I filled in.
Stef _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
(a) In Sophie RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt drawRunPositions drawRunGlyph drawRunPointY' classVariableNames: 'CachedTarget FlagFill FlagStro (b) In Pharo RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas' Comment warning: INST VAR ORDER IS KNOWN TO PLUGIN! DO NOT REARRANGE! So in the plugin we have... if (interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) fail(). where CanvasInstSize is 13 but as you see in (b) the number of instance slots for the canvas Oops is 8. 8 < 13, oops you fail. So where did the instance vars currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt go? On purpose gone, refactored, old code. etc.... On 2010-04-16, at 1:37 PM, Stéphane Ducasse wrote:
On Apr 16, 2010, at 10:30 PM, John McIntosh wrote:
Well I'm just as puzzled as you since the primitive gets executed and you are using the same binary that was shipped with Sophie years back.
I like to hear that because I feel less idiot. :)
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
Thanks john oops I learned something. Now the problem is that I did not touch them. I just loaded code. So I wonder where they got lost or changed. Alain do you have the same in your image? Stef On Apr 17, 2010, at 4:09 AM, John M McIntosh wrote:
(a) In Sophie RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt drawRunPositions drawRunGlyph drawRunPointY' classVariableNames: 'CachedTarget FlagFill FlagStro
(b) In Pharo
RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
Comment warning:
INST VAR ORDER IS KNOWN TO PLUGIN! DO NOT REARRANGE!
So in the plugin we have...
if (interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) fail().
where CanvasInstSize is 13
but as you see in (b) the number of instance slots for the canvas Oops is 8.
8 < 13, oops you fail.
So where did the instance vars currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt go? On purpose gone, refactored, old code. etc....
On 2010-04-16, at 1:37 PM, Stéphane Ducasse wrote:
On Apr 16, 2010, at 10:30 PM, John McIntosh wrote:
Well I'm just as puzzled as you since the primitive gets executed and you are using the same binary that was shipped with Sophie years back.
I like to hear that because I feel less idiot. :)
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On 4/17/2010 11:06 AM, Stéphane Ducasse wrote:
Thanks john oops I learned something. Now the problem is that I did not touch them. I just loaded code. So I wonder where they got lost or changed.
I suspect those got removed when integrating or because of Freetype support in Pharo? Although I don't think these inst vars are actually essential for the plugin to function. So maybe the plugin should be changed to cover just the necessary inst vars? Michael
Yes any solution that would make it easier to support changes at the image level would be great. Stef On Apr 17, 2010, at 11:30 AM, Michael Rueger wrote:
On 4/17/2010 11:06 AM, Stéphane Ducasse wrote:
Thanks john oops I learned something. Now the problem is that I did not touch them. I just loaded code. So I wonder where they got lost or changed.
I suspect those got removed when integrating or because of Freetype support in Pharo?
Although I don't think these inst vars are actually essential for the plugin to function. So maybe the plugin should be changed to cover just the necessary inst vars?
Michael
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On Sat, Apr 17, 2010 at 11:30:41AM +0200, Michael Rueger wrote:
On 4/17/2010 11:06 AM, St?phane Ducasse wrote:
Thanks john oops I learned something. Now the problem is that I did not touch them. I just loaded code. So I wonder where they got lost or changed.
I suspect those got removed when integrating or because of Freetype support in Pharo?
Although I don't think these inst vars are actually essential for the plugin to function. So maybe the plugin should be changed to cover just the necessary inst vars?
If you change the plugin, you will end up with with an image that fails when someone runs it on the wrong version of the VM. Dave
Stéphane Ducasse a écrit :
Thanks john oops I learned something. Now the problem is that I did not touch them. I just loaded code. So I wonder where they got lost or changed.
Alain do you have the same in your image?
Hi all, Just back from a cool week-end, with a lot of sun... Yes, my RomePluginCanvas is the same as yours and it runs well on linux. But I've not removed any inst var myself. My version comes from the www.squeaksource.com/Rome. I've checked, and the RomePluginCanvas from squeaksource is still the same as mine: RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas' so, does it means that there are also two version of the plugin ? Cheers Alain
Stef
On Apr 17, 2010, at 4:09 AM, John M McIntosh wrote:
(a) In Sophie RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt drawRunPositions drawRunGlyph drawRunPointY' classVariableNames: 'CachedTarget FlagFill FlagStro
(b) In Pharo
RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
Comment warning:
INST VAR ORDER IS KNOWN TO PLUGIN! DO NOT REARRANGE!
So in the plugin we have...
if (interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) fail().
where CanvasInstSize is 13
but as you see in (b) the number of instance slots for the canvas Oops is 8.
8 < 13, oops you fail.
So where did the instance vars currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt go? On purpose gone, refactored, old code. etc....
On 2010-04-16, at 1:37 PM, Stéphane Ducasse wrote:
On Apr 16, 2010, at 10:30 PM, John McIntosh wrote:
Well I'm just as puzzled as you since the primitive gets executed and you are using the same binary that was shipped with Sophie years back.
I like to hear that because I feel less idiot. :)
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
probably :) one coming from sophie and one coming from the repository. We will fix that as soon as we can make it run on mac (ok we just have to add the inst var) but would be nice to have a clean plugin but I imagine that john is stressed with the Scratch problem. Stef On Apr 19, 2010, at 8:44 AM, Alain Plantec wrote:
Stéphane Ducasse a écrit :
Thanks john oops I learned something. Now the problem is that I did not touch them. I just loaded code. So I wonder where they got lost or changed.
Alain do you have the same in your image?
Hi all, Just back from a cool week-end, with a lot of sun... Yes, my RomePluginCanvas is the same as yours and it runs well on linux. But I've not removed any inst var myself. My version comes from the www.squeaksource.com/Rome. I've checked, and the RomePluginCanvas from squeaksource is still the same as mine:
RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
so, does it means that there are also two version of the plugin ?
Cheers Alain
Stef
On Apr 17, 2010, at 4:09 AM, John M McIntosh wrote:
(a) In Sophie RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt drawRunPositions drawRunGlyph drawRunPointY' classVariableNames: 'CachedTarget FlagFill FlagStro
(b) In Pharo RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
Comment warning: INST VAR ORDER IS KNOWN TO PLUGIN! DO NOT REARRANGE!
So in the plugin we have... if (interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) fail().
where CanvasInstSize is 13
but as you see in (b) the number of instance slots for the canvas Oops is 8. 8 < 13, oops you fail. So where did the instance vars currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt go? On purpose gone, refactored, old code. etc....
On 2010-04-16, at 1:37 PM, Stéphane Ducasse wrote:
On Apr 16, 2010, at 10:30 PM, John McIntosh wrote:
Well I'm just as puzzled as you since the primitive gets executed and you are using the same binary that was shipped with Sophie years back. I like to hear that because I feel less idiot. :)
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Ok, it works when adding the instance variables:) Thank you 2010/4/19 Stéphane Ducasse <stephane.ducasse@inria.fr>
probably :) one coming from sophie and one coming from the repository. We will fix that as soon as we can make it run on mac (ok we just have to add the inst var) but would be nice to have a clean plugin but I imagine that john is stressed with the Scratch problem.
Stef
On Apr 19, 2010, at 8:44 AM, Alain Plantec wrote:
Stéphane Ducasse a écrit :
Thanks john oops I learned something. Now the problem is that I did not touch them. I just loaded code. So I wonder where they got lost or changed.
Alain do you have the same in your image?
Hi all, Just back from a cool week-end, with a lot of sun... Yes, my RomePluginCanvas is the same as yours and it runs well on linux. But I've not removed any inst var myself. My version comes from the www.squeaksource.com/Rome. I've checked, and the RomePluginCanvas from squeaksource is still the same as mine:
RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
so, does it means that there are also two version of the plugin ?
Cheers Alain
Stef
On Apr 17, 2010, at 4:09 AM, John M McIntosh wrote:
(a) In Sophie RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt drawRunPositions drawRunGlyph drawRunPointY' classVariableNames: 'CachedTarget FlagFill FlagStro
(b) In Pharo RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
Comment warning: INST VAR ORDER IS KNOWN TO PLUGIN! DO NOT REARRANGE!
So in the plugin we have... if (interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) fail().
where CanvasInstSize is 13
but as you see in (b) the number of instance slots for the canvas Oops is 8. 8 < 13, oops you fail. So where did the instance vars currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt go? On purpose gone, refactored, old code. etc....
On 2010-04-16, at 1:37 PM, Stéphane Ducasse wrote:
On Apr 16, 2010, at 10:30 PM, John McIntosh wrote:
Well I'm just as puzzled as you since the primitive gets executed and you are using the same binary that was shipped with Sophie years back. I like to hear that because I feel less idiot. :)
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
--
===========================================================================
John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
good! Stef On Apr 19, 2010, at 10:28 AM, Cyrille Delaunay wrote:
Ok, it works when adding the instance variables:) Thank you
2010/4/19 Stéphane Ducasse <stephane.ducasse@inria.fr> probably :) one coming from sophie and one coming from the repository. We will fix that as soon as we can make it run on mac (ok we just have to add the inst var) but would be nice to have a clean plugin but I imagine that john is stressed with the Scratch problem.
Stef
On Apr 19, 2010, at 8:44 AM, Alain Plantec wrote:
Stéphane Ducasse a écrit :
Thanks john oops I learned something. Now the problem is that I did not touch them. I just loaded code. So I wonder where they got lost or changed.
Alain do you have the same in your image?
Hi all, Just back from a cool week-end, with a lot of sun... Yes, my RomePluginCanvas is the same as yours and it runs well on linux. But I've not removed any inst var myself. My version comes from the www.squeaksource.com/Rome. I've checked, and the RomePluginCanvas from squeaksource is still the same as mine:
RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
so, does it means that there are also two version of the plugin ?
Cheers Alain
Stef
On Apr 17, 2010, at 4:09 AM, John M McIntosh wrote:
(a) In Sophie RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt drawRunPositions drawRunGlyph drawRunPointY' classVariableNames: 'CachedTarget FlagFill FlagStro
(b) In Pharo RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
Comment warning: INST VAR ORDER IS KNOWN TO PLUGIN! DO NOT REARRANGE!
So in the plugin we have... if (interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) fail().
where CanvasInstSize is 13
but as you see in (b) the number of instance slots for the canvas Oops is 8. 8 < 13, oops you fail. So where did the instance vars currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt go? On purpose gone, refactored, old code. etc....
On 2010-04-16, at 1:37 PM, Stéphane Ducasse wrote:
On Apr 16, 2010, at 10:30 PM, John McIntosh wrote:
Well I'm just as puzzled as you since the primitive gets executed and you are using the same binary that was shipped with Sophie years back. I like to hear that because I feel less idiot. :)
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On 2010-04-19, at 12:12 AM, Stéphane Ducasse wrote:
probably :) one coming from sophie and one coming from the repository. We will fix that as soon as we can make it run on mac (ok we just have to add the inst var) but would be nice to have a clean plugin but I imagine that john is stressed with the Scratch problem.
Stef
Well nothing a good night of sleep can't cure. I'm trying to build a new plugin based on the current squeaksource.com stuff. However MacPorts is busy grinding thru a build(s) for the thousand or so components to build freetype & pango & etc, since it's building a universal ppc, i386, x86_64 binary on an older G4 laptop running 10.5. Likely run for hours... -- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
probably :)
one coming from sophie and one coming from the repository. We will fix that as soon as we can make it run on mac (ok we just have to add the inst var) but would be nice to have a clean plugin but I imagine that john is stressed with the Scratch problem.
Stef
Well nothing a good night of sleep can't cure. I'm trying to build a new plugin based on the current squeaksource.com stuff. However MacPorts is busy grinding thru a build(s) for the thousand or so components to build freetype & pango & etc, since it's building a universal ppc, i386, x86_64 binary on an older G4 laptop running 10.5. Likely run for hours...
oh yes I know the syndrome. Last time took me 5-6 hours for recompiling everything or what is just gtk :) What we will do is that I would like that this knowledge/burden is shared so we will give a try with jean-baptiste and cyrille to regenerate a plugin and compile it.... But we will see and learn a lot I imagine in the process.
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
John how can I know the order and the iv that are used by the plugin? Stef On Apr 17, 2010, at 4:09 AM, John M McIntosh wrote:
(a) In Sophie RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt drawRunPositions drawRunGlyph drawRunPointY' classVariableNames: 'CachedTarget FlagFill FlagStro
(b) In Pharo
RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
Comment warning:
INST VAR ORDER IS KNOWN TO PLUGIN! DO NOT REARRANGE!
So in the plugin we have...
if (interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) fail().
where CanvasInstSize is 13
but as you see in (b) the number of instance slots for the canvas Oops is 8.
8 < 13, oops you fail.
So where did the instance vars currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt go? On purpose gone, refactored, old code. etc....
On 2010-04-16, at 1:37 PM, Stéphane Ducasse wrote:
On Apr 16, 2010, at 10:30 PM, John McIntosh wrote:
Well I'm just as puzzled as you since the primitive gets executed and you are using the same binary that was shipped with Sophie years back.
I like to hear that because I feel less idiot. :)
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
I think only the first 4 inst vars are actually used by the plugin: http://squeakvm.org/svn/squeak/trunk/platforms/unix/src/plugins/RomePlugin/R... #define CanvasHandleIndex 0 #define CanvasTargetIndex 1 #define CanvasFlagsIndex 2 #define CanvasStrokeColorIndex 3 #define CanvasInstSize 8 So on Linux, Rome does use the "right" size. John appears to have used a Sophie image to generate his Plugin, which makes this fail (though I could not find his Rome plugin in the Mac OS platform code so can't verify that theory). The proper fix would be to modify RomePlugin class>>initializeInstVarIndices to not generate the indices, but simply hard-code only the used ones (setting CanvasInstSize to 4), and change the comparison John mentioned below to <=. Also remove the unused *Index class vars. Now that there are plugins in the wild, hard-coding the indices is a good idea anyway. During development, the flexible generator version was useful, but not anymore. - Bert - On 18.04.2010, at 18:45, Stéphane Ducasse wrote:
John
how can I know the order and the iv that are used by the plugin?
Stef
On Apr 17, 2010, at 4:09 AM, John M McIntosh wrote:
(a) In Sophie RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt drawRunPositions drawRunGlyph drawRunPointY' classVariableNames: 'CachedTarget FlagFill FlagStro
(b) In Pharo
RomeCanvas subclass: #RomePluginCanvas instanceVariableNames: 'handle target flags strokeColor stack font fontSize fontMatrix' classVariableNames: 'FlagFill FlagStroke Registry' poolDictionaries: '' category: 'Rome-PluginCanvas'
Comment warning:
INST VAR ORDER IS KNOWN TO PLUGIN! DO NOT REARRANGE!
So in the plugin we have...
if (interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) fail().
where CanvasInstSize is 13
but as you see in (b) the number of instance slots for the canvas Oops is 8.
8 < 13, oops you fail.
So where did the instance vars currentFillColor currentBackColor glyphAccuracy cachedGlyphBlt cachedClearBlt go? On purpose gone, refactored, old code. etc....
On 2010-04-16, at 1:37 PM, Stéphane Ducasse wrote:
On Apr 16, 2010, at 10:30 PM, John McIntosh wrote:
Well I'm just as puzzled as you since the primitive gets executed and you are using the same binary that was shipped with Sophie years back.
I like to hear that because I feel less idiot. :)
Well hey I'm just the guy tapping the compile button, er no support agreement here... Likely the original plugin code came via MCHttpRepository location: 'http://source.impara.de/Rome' user: '' password: '' If someone wants to make the required fixes to the plugin code, and the smalltalk code I *think* I can build a new plugin.. Likely this won't affect Sophie users (if any) because that's a one click app. However this means an update to the mac vm's and other platforms in order to ensure the smalltalk class in a Pharo image matches expectations. On 2010-04-18, at 10:45 AM, Bert Freudenberg wrote:
I think only the first 4 inst vars are actually used by the plugin:
http://squeakvm.org/svn/squeak/trunk/platforms/unix/src/plugins/RomePlugin/R... #define CanvasHandleIndex 0 #define CanvasTargetIndex 1 #define CanvasFlagsIndex 2 #define CanvasStrokeColorIndex 3 #define CanvasInstSize 8
So on Linux, Rome does use the "right" size. John appears to have used a Sophie image to generate his Plugin, which makes this fail (though I could not find his Rome plugin in the Mac OS platform code so can't verify that theory).
The proper fix would be to modify RomePlugin class>>initializeInstVarIndices to not generate the indices, but simply hard-code only the used ones (setting CanvasInstSize to 4), and change the comparison John mentioned below to <=. Also remove the unused *Index class vars. Now that there are plugins in the wild, hard-coding the indices is a good idea anyway. During development, the flexible generator version was useful, but not anymore.
- Bert -
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
On Linux, Squeak-4.0.3.2202 binaries from squeak vm, Pharo 1.0 image, it works. With PharoCore 1.1-11312 too. Smalltalk listLoadedModules #('SurfacePlugin Apr 13 2010 (i)' 'RomePlugin pango_yo.38 10 April 2010 (e)' 'ZipPlugin 10 April 2010 (i)' 'SocketPlugin 10 April 2010 (i)' 'LargeIntegers v1.5 10 April 2010 (i)' 'LocalePlugin 10 April 2010 (i)' 'B2DPlugin 10 April 2010 (i)' 'BitBltPlugin 10 April 2010 (i)' 'SecurityPlugin 10 April 2010 (i)' 'FilePlugin 10 April 2010 (i)' 'MiscPrimitivePlugin 10 April 2010 (i)') Laurent Laffont On Fri, Apr 16, 2010 at 12:39 PM, Stéphane Ducasse < stephane.ducasse@inria.fr> wrote:
Hi
We need help. Can you execute
Gofer new squeaksource: 'PharoTaskForces'; version: 'Rome-StephaneDucasse.4'; load
RomeDemo demoMovingCar
And let me know if you get an error?
Then can you let us know what is the value of Smalltalk listLoadedModules
I do not understand why the prim failed even if the plugin is loaded. Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (12)
-
Alain Plantec -
Bert Freudenberg -
Cyrille Delaunay -
David T. Lewis -
Fabrizio Perin -
Fernando olivero -
Henrik Johansen -
John M McIntosh -
John McIntosh -
laurent laffont -
Michael Rueger -
Stéphane Ducasse