Hi Waldek,
This is a follow-up to
https://groups.google.com/g/fricas-devel/c/uiXRlAq7-aI/m/VOP8UVCFDgAJ
It is of similar type (macro function, i.e. macro that returns a macro),
but yields an error just in the interpreter and only under very specific
instances.
That looks like a bug that is hopefully easy to fix.
I first thought it was connected to using C in the definition of (3),
but then I switched to CC and the problem
The function BOOT::|%pform| is undefined.
still appears, but only if CC expands to a type with a parameter like
"Fraction(ZZ)".
It would make me very happy if this problem can be fixed. I need the
situation where CC is QQ.
Anyhow, looking at the session below somehow seems to tell me that CC in
(3) is *not* a local parameter whose name is irrelevant.
OK, maybe in (3) I should just use C_unused_elsewhere_in_the_program
instead of CC and be happy.
Nevertheless, I consider the problem as a bug.
Ralf
=============================================================================
FriCAS Computer Algebra System
Version: FriCAS e266e8d2319808c04583010380d138eb36c276fd built with sbcl
2.2.9.debian
-----------------------------------------------------------------------------
%%% (1) -> ZZ ==> Integer
Type: Void
%%% (2) -> QQ ==> Fraction(ZZ)
Type: Void
%%% (3) -> An(vl)(CC) ==> DistributedMultivariatePolynomial(vl, CC)
Type: Void
%%% (4) -> Xn(vl)(CC) ==> Record(aa: An(vl)(CC), bb: String)
Type: Void
%%% (5) -> An(['x,'y])(ZZ)
(5) DistributedMultivariatePolynomial([x, y],Integer)
Type: Type
%%% (6) -> Xn(['x,'y])(QQ)
(6)
Record
aa:DistributedMultivariatePolynomial([x, y],Fraction(Integer))
,
bb:String
Type: Type
%%% (7) -> C ==> QQ
Type: Void
%%% (8) -> Xn(['x,'y])(QQ)
(8)
Record
aa:DistributedMultivariatePolynomial([x, y],Fraction(Integer))
,
bb:String
Type: Type
%%% (9) -> Xn(['x,'y])(C)
(9)
Record
aa:DistributedMultivariatePolynomial([x, y],Fraction(Integer))
,
bb:String
Type: Type
%%% (10) -> Xn(['x,'y])(ZZ)
(10)
Record(aa:DistributedMultivariatePolynomial([x, y],Integer),bb:String)
Type: Type
%%% (11) -> CC ==> QQ
Type: Void
%%% (12) -> Xn(['x,'y])(QQ)
>> System error:
The function BOOT::|%pform| is undefined.
%%% (12) -> Xn(['x,'y])(CC)
>> System error:
The function BOOT::|%pform| is undefined.
%%% (12) -> Xn(['x,'y])(ZZ)
>> System error:
The function BOOT::|%pform| is undefined.
%%% (12) -> CC ==> ZZ
Type: Void
%%% (13) -> Xn(['x,'y])(QQ)
(13)
Record
aa:DistributedMultivariatePolynomial([x, y],Fraction(Integer))
,
bb:String
Type: Type
%%% (14) -> Xn(['x,'y])(CC)
(14)
Record(aa:DistributedMultivariatePolynomial([x, y],Integer),bb:String)
Type: Type
%%% (15) -> Xn(['x,'y])(ZZ)
(15)
Record(aa:DistributedMultivariatePolynomial([x, y],Integer),bb:String)
Type: Type