Hi Gaby, Martin,
I've uncovered another problem in getting Martin's framework to work
under OpenAxiom. Here's some stripped down code illustrating the problem:
**begin code*******************************************************
)abbrev domain SCRT SCartesian
SCartesian(n) : Exports == Implementation where
n: PositiveInteger
PI ==> PositiveInteger
DF ==> DoubleFloat
Exports == SetCategory with
sipnt: (a:Integer,b:Integer) -> %
spnt: (a:DF,b:DF) -> %
Implementation == Type add
sipnt(a:Integer,b:Integer):% == spnt(a::DoubleFloat,b::DoubleFloat)
Rep := PrimitiveArray DF
spnt(a:DF,b:DF):% ==
pt := new(n+1,0$DF)$Rep
pt.0 := a
pt.1 := b
pt.n := 1...@df
pt
)abbrev domain SCENE Scene
Scene(): Exports == Implementation where
PT ==> SCartesian(2)
I ==> Integer
NNI ==> NonNegativeInteger
LINES ==> List List PT
BOUNDS ==> Record(mins:PT,maxs:PT)
PARAMS ==> Union(points:LINES,boundbox:BOUNDS)
Exports == with
createSceneRoot:() -> %
coerce: (n: %) -> OutputForm
Implementation == add
Rep := Record(type : NNI,children : List %,parameters: PARAMS)
-- Rep := Record(type : NNI,children : List %,parameters: BOUNDS)
createSceneRoot(): % ==
bb:BOUNDS := [sipnt(0::I,0::I)$PT,sipnt(1200::I,800::I)$PT]
[1::NNI,[],[bb]]
-- [1::NNI,[],bb]
coerce(n: %):OutputForm ==
s:String := "scene "
if n.type = 1 then s := concat(s,"root")
s := concat([s," #ch=",string(#(n.children))])
s::OutputForm
**end code******************************************************
Using a Fricas build from trunk 2010-12-07 and an OpenAxiom build from
trunk 2010-12-16 these domains compile under both. However whereas
under Fricas I get
(1) -> createSceneRoot()$Scene
(1) "scene root #ch=0"
Type:
Scene
under OpenAxiom I get
(35) -> createSceneRoot()$Scene
>> System error:
The value 5 is not of type LIST.
I can get rid of the error under OpenAxiom by either eliminating the
SetCategory assertion in the SCartesian domain or by changing the
commented out lines for the corresponding ones.
Any ideas?
Arthur
------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
open-axiom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel