Alex
You forget to declare your FAMIXFunction class in Fame, that's why the
PragmaProcessor raises a bug
Just add
FAMIXFunction class>>annotation
<MSEClass: #Function super: 'FAMIX.BehaviouralEntity'>
<package: #FAMIX>
^self
On 17 mars 09, at 10:59, Alexandre Bergel wrote:
I cannot reproduce the problem you mentioned Doru. I
have an error
coming from FMPragmaProcessor
Cheers,
Alexandre
Error: Error!
17 March 2009 9:18:07 am
VM: Mac OS - a SmalltalkImage
Image: Pharo0.1 [Latest update: #10248]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/alexandrebergel/Desktop/T/Smalltalk/
Pharo0.1Core-10248
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/alexandrebergel/Library/Preferences/Squeak/
Internet/My Squeak
FMPragmaProcessor(Object)>>error:
Receiver: a FMPragmaProcessor
Arguments and temporary variables:
aString: 'Error!'
Receiver's instance variables:
elements: an OrderedCollection(a
FM3MetaDescription[UnknownVariable] a FM3MetaD...etc...
packageDict: a Dictionary()
classDict: a Dictionary(FAMIXImplicitVariable->a
FM3MetaDescription[ImplicitVar...etc...
metaDict: a Dictionary('Boolean'->an AnonymousClass[Boolean]
'Number'->an Anony...etc...
superclassDict: an IdentityDictionary(a
FM3MetaDescription[ImplicitVariable]->'...etc...
packMetaDict: an IdentityDictionary(a
FM3MetaDescription[ImplicitVariable]->'FA...etc...
typeDict: an IdentityDictionary()
oppositeDict: an IdentityDictionary()
packPropDict: an IdentityDictionary()
mmClassDict: an IdentityDictionary()
queue: an OrderedCollection(FAMIXUnknownVariable
FAMIXImplicitVariable CAFuncti...etc...
FMPragmaProcessor(Object)>>error
Receiver: a FMPragmaProcessor
Arguments and temporary variables:
Receiver's instance variables:
elements: an OrderedCollection(a
FM3MetaDescription[UnknownVariable] a FM3MetaD...etc...
packageDict: a Dictionary()
classDict: a Dictionary(FAMIXImplicitVariable->a
FM3MetaDescription[ImplicitVar...etc...
metaDict: a Dictionary('Boolean'->an AnonymousClass[Boolean]
'Number'->an Anony...etc...
superclassDict: an IdentityDictionary(a
FM3MetaDescription[ImplicitVariable]->'...etc...
packMetaDict: an IdentityDictionary(a
FM3MetaDescription[ImplicitVariable]->'FA...etc...
typeDict: an IdentityDictionary()
oppositeDict: an IdentityDictionary()
packPropDict: an IdentityDictionary()
mmClassDict: an IdentityDictionary()
queue: an OrderedCollection(FAMIXUnknownVariable
FAMIXImplicitVariable CAFuncti...etc...
FMPragmaProcessor>>processClass:
Receiver: a FMPragmaProcessor
Arguments and temporary variables:
aClass: CAFunction
pragma: #()
meta: nil
className: nil
superclassName: nil
each: nil
Receiver's instance variables:
elements: an OrderedCollection(a
FM3MetaDescription[UnknownVariable] a FM3MetaD...etc...
packageDict: a Dictionary()
classDict: a Dictionary(FAMIXImplicitVariable->a
FM3MetaDescription[ImplicitVar...etc...
metaDict: a Dictionary('Boolean'->an AnonymousClass[Boolean]
'Number'->an Anony...etc...
superclassDict: an IdentityDictionary(a
FM3MetaDescription[ImplicitVariable]->'...etc...
packMetaDict: an IdentityDictionary(a
FM3MetaDescription[ImplicitVariable]->'FA...etc...
typeDict: an IdentityDictionary()
oppositeDict: an IdentityDictionary()
packPropDict: an IdentityDictionary()
mmClassDict: an IdentityDictionary()
queue: an OrderedCollection(FAMIXUnknownVariable
FAMIXImplicitVariable CAFuncti...etc...
[] in FMPragmaProcessor>>run {[:cls | self processClass: cls]}
Arguments and temporary variables:
cls: CAFunction
--- The full stack ---
FMPragmaProcessor(Object)>>error:
FMPragmaProcessor(Object)>>error
FMPragmaProcessor>>processClass:
[] in FMPragmaProcessor>>run {[:cls | self processClass: cls]}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OrderedCollection>>do:
FMPragmaProcessor>>run
MooseModel class>>FAMIXDescriptions
MOFameView class>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
[] in OBTextMorphEditorWithShout(ParagraphEditor)>>evaluateSelection
{[rcvr class evaluatorClass new evaluate: self selectionAsStream
in: ctxt...]}
BlockContext>>on:do:
OBTextMorphEditorWithShout(ParagraphEditor)>>evaluateSelection
OBTextMorphEditorWithShout(ParagraphEditor)>>doIt
[] in OBTextMorphEditorWithShout(ParagraphEditor)>>doIt: {[self doIt]}
OBTextMorphEditorWithShout(Controller)>>terminateAndInitializeAround:
OBTextMorphEditorWithShout(ParagraphEditor)>>doIt:
OBTextMorphEditorWithShout(ParagraphEditor)>>dispatchOnCharacter:with:
OBTextMorphEditorWithShout(TextMorphEditor)>>dispatchOnCharacter:with:
OBTextMorphEditorWithShout(ParagraphEditor)>>readKeyboard
OBTextMorphEditorWithShout(TextMorphEditor)>>readKeyboard
...etc...
On 16 Mar 2009, at 11:19, Alexandre Bergel wrote:
Yes, I will answer asap....
Alexandre
On 16 Mar 2009, at 11:12, Simon Denier wrote:
Alex is working on many things in Mondrian, in particular to
improve its speed, so I dont know which fix did break the code. I
will let him answer or we will investigate this afternoon if we
have time.
On 16 mars 09, at 10:47, Lukas Renggli wrote:
The Balloon engine does not like Floats or
Fractions passed into
its
primitives. In my experience this is the cause of problems in most
cases.
Also it could be related to the size of the canvas, but I don't
remember if you get a primitive failure there:
http://bugs.squeak.org/view.php?id=5222
Lukas
On Mon, Mar 16, 2009 at 12:23 AM, Tudor Girba
<girba(a)iam.unibe.ch> wrote:
> Hi,
>
> I am trying to reproduce the diagram with the FAMIX meta-model.
> I found the
> script in MOFameView>>openOn:, but there is a problem with the
> rendering.
>
> I use Pharo 10250.
>
> I attached the error report. What am I doing wrong?
>
> Cheers,
> Doru
>
> --
>
www.tudorgirba.com
>
> "Every thing has its own flow."
>
>
>
>
>
> '16 March 2009 12:18:44 am
>
> VM: Mac OS - a SmalltalkImage
> Image: Pharo0.1 [Latest update: #10250]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /Users/girba/Desktop/pharo0.1-10250dev09.03.2
> Trusted Dir /foobar/tooBar/forSqueak/bogus
> Untrusted Dir /Users/girba/Library/Preferences/Squeak/Internet/
> My Squeak
>
> BalloonEngine(Object)>>error:
> Receiver: a BalloonEngine
> Arguments and temporary variables:
> aString: ''Error: a primitive has failed''
> Receiver''s instance variables:
> workBuffer: a BalloonBuffer
> span: a Bitmap of length 2048
> bitBlt: a GrafPort
> forms: #()
> clipRect: 459@167 corner: 1184@499
> destOffset: 462@167
> externals: an OrderedCollection()
> aaLevel: 4
> edgeTransform: nil
> colorTransform: nil
> deferred: false
> postFlushNeeded: false
>
> [] in WorldState>>displayWorldSafely: {[:err :rcvr | errCtx :=
> thisContext.
> [errCtx := errCtx sender. [errCtx no...]}
> Arguments and temporary variables:
> aWorld: a PasteUpMorph(1622) [world]
> err: ''Error: a primitive has failed''
> rcvr: a BalloonEngine
> errCtx: MOCanvas>>drawOn:
> errMorph: a MOCanvas(3824)
>
> BlockContext>>valueWithPossibleArgs:
> Receiver: [] in WorldState>>displayWorldSafely: {[:err :rcvr |
> errCtx := thisContext. [errCtx := e...etc...
> Arguments and temporary variables:
> anArray: an Array(''Error: a primitive has
> failed'' a
> BalloonEngine)
> Receiver''s instance variables:
> sender: BlockContext>>valueWithPossibleArgs:
> pc: 121
> stackp: 0
> nargs: 2
> startpc: 74
> home: WorldState>>displayWorldSafely:
>
> [] in BlockContext>>ifError: {[:ex | errorHandlerBlock
> valueWithPossibleArgs: {ex description. ex receiver}]}
> Arguments and temporary variables:
> errorHandlerBlock: [] in
> WorldState>>displayWorldSafely:
> {[:err :rcvr | errCtx...etc...
> ex: Error: a primitive has failed
>
>
> --- The full stack ---
> BalloonEngine(Object)>>error:
> [] in WorldState>>displayWorldSafely: {[:err :rcvr | errCtx :=
> thisContext.
> [errCtx := errCtx sender. [errCtx no...]}
> BlockContext>>valueWithPossibleArgs:
> [] in BlockContext>>ifError: {[:ex | errorHandlerBlock
> valueWithPossibleArgs: {ex description. ex receiver}]}
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> BlockContext>>valueWithPossibleArgs:
> [] in MethodContext(ContextPart)>>handleSignal: {[(self tempAt: 2)
> valueWithPossibleArgs: {exception}]}
> BlockContext>>ensure:
> MethodContext(ContextPart)>>handleSignal:
> Error(Exception)>>signal
> Error(Exception)>>signal:
> BalloonEngine(Object)>>error:
> BalloonEngine(Object)>>primitiveFailed
> BalloonEngine>>primAddPolygon:segments:fill:lineWidth:lineFill:
> BalloonEngine>>drawPolygon:fill:borderWidth:borderColor:transform:
> BalloonCanvas>>drawPath:borderWidth:borderColor:
> MOOrthoHorizontalLineShape>>display:on:
> MOEdge>>displayOn:
> [] in MORoot(MOGraphElement)>>display:on: {[:each | each
> displayOn: canvas]}
> OrderedCollection>>do:
> [] in MORoot(MOGraphElement)>>display:on: {[:canvas | self
> nodes do:
> [:each | each displayOn: canvas]. self edges ...]}
> BalloonCanvas(FormCanvas)>>translateBy:during:
> MORoot(MOGraphElement)>>display:on:
> MORoot>>display:on:
> UndefinedObject>>display:on:
> MORoot(MOGraphElement)>>displayOn:
> MOCanvas>>drawOn:
> FormCanvas(Canvas)>>draw:
> FormCanvas(Canvas)>>drawMorph:
> [] in MOCanvas(Morph)>>fullDrawOn: {[(aCanvas isVisible: self
> bounds)
> ifTrue: [aCanvas drawMorph: self]. self...]}
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> MOCanvas(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in TransformMorph>>drawSubmorphsOn: {[:m | myCanvas
> fullDrawMorph: m]}
> Array(SequenceableCollection)>>reverseDo:
> [] in TransformMorph>>drawSubmorphsOn: {[:myCanvas | (self angle
> ~= 0.0
> or: [self scale ~= 1.0]) ifTrue: [FreeT...]}
> FormCanvas>>transformBy:clippingTo:during:smoothing:
> TransformMorph>>drawSubmorphsOn:
> [] in TransformMorph(Morph)>>fullDrawOn: {[(aCanvas isVisible:
> self bounds)
> ifTrue: [aCanvas drawMorph: self]. self...]}
> FormCanvas>>roundCornersOf:in:during:
> FormCanvas(Canvas)>>roundCornersOf:during:
> TransformMorph(Morph)>>fullDrawOn:
> FormCanvas(Canvas)>>fullDraw:
> FormCanvas(Canvas)>>fullDrawMorph:
> [] in ScrollPane(Morph)>>drawSubmorphsOn: {[:m | canvas
> fullDrawMorph: m]}
> Array(SequenceableCollection)>>reverseDo:
> [] in ScrollPane(Morph)>>drawSubmorphsOn: {[:canvas |
> submorphs reverseDo:
> [:m | canvas fullDrawMorph: m]]}
> ...etc...'
> _______________________________________________
> Moose-dev mailing list
> Moose-dev(a)iam.unibe.ch
>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
Simon
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev