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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Stéphane Ducasse
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 > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] 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 <[hidden email]> Same results as you. _______________________________________________ Pharo-project mailing list [hidden email] 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 <[hidden email]> > 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 > > [hidden email] > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] 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 <[hidden email]> >> 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 >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] 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 <[hidden email]> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com =========================================================================== _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
> 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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 <[hidden email]> wrote:
-- =========================================================================== John M. McIntosh <[hidden email]> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com =========================================================================== _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Stéphane Ducasse
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 <[hidden email]> wrote: Hi _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Stéphane Ducasse
(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 > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project =========================================================================== John M. McIntosh <[hidden email]> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com =========================================================================== _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project smime.p7s (3K) Download Attachment |
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 >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > -- > =========================================================================== > John M. McIntosh <[hidden email]> Twitter: squeaker68882 > Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com > =========================================================================== > > > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] 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 _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Michael Rueger-6
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 _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by johnmci
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 >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > -- > =========================================================================== > John M. McIntosh <[hidden email]> Twitter: squeaker68882 > Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com > =========================================================================== > > > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] 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/RomePlugin.c #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. :) _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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/RomePlugin.c > #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 <[hidden email]> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com =========================================================================== _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project smime.p7s (3K) Download Attachment |
In reply to this post by Bert Freudenberg
On 18.04.2010, at 20:14, stephane ducasse wrote:
> > > Thanks Bert > >> >> 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/RomePlugin.c >> #define CanvasHandleIndex 0 >> #define CanvasTargetIndex 1 >> #define CanvasFlagsIndex 2 >> #define CanvasStrokeColorIndex 3 >> #define CanvasInstSize 8 > > how did you get that information? from the image side or C code? > Because I tried to see but unsure. It's in the C code I linked above. I just reordered it for better readability. >> 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). > > Now I understand why alain could remove the instance variable when cleaning the image side. > >> 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. > > > I browsed a bit the C code and I'm learning so may be my questions are not clever, but > > - do we need the pango primitives for ROME? > Apparently Pango may use Cairo for fonts rendering but do Rome needs that? > So is it simpler to use fonts via pango than cairo. Pango provides word/paragraph layout. Many non-latin scripts (e.g. Devanagari) require "glyph shaping", there is no one-to-one mapping between Unicode characters and glyphs rendered in context. Pango can do that. I'm not aware of any other renderer in Squeak that would support this (Yoshiki added it for OLPC). Well, maybe the Unicode plugin from Scratch could do it too, not sure. > - then what about FormInstSize? > > (interpreterProxy->slotSizeOf(formOop)) < FormInstSize > does it mean Same thing. The instance variables actually used by the plugin should be hard coded. Otherwise the same would happen as in Sophie - some inst vars were added to the Canvas, so the inst size compiled into the plugin became larger than necessary. Btw, by now you probably have guessed that a workaround for the Mac issue would be to add 5 dummy inst vars to RomePluginCanvas just to make the plugin happy. > - the primitives we have access to are listed by > void* RomePlugin_exports[][3] = { Right. > - how do we know that the plugin is somehow in sync with Cairo "latest" version? It doesn't need to be "in sync". But maybe I do not understand the question. - Bert - > Stef > >> >> - 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. :) >> > _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |