Just for the record... and in continuation of http://groups.google.com/group/fricas-devel/browse_thread/thread/c7d1c908a07758d2

The following seems to reveal a weakness of the Aldor compiler.

In ax.boot I've set the $pretendFlag to false.

axFormatCondOp op ==
  $pretendFlag:local := false
  axFormatOp op

This, however, prevents the compilation for HOAGG.ap.

"ap/HOAGG.ap", line 15:
                (|If| (|Test| (|Has| |#1| (|Apply| |Evalable| |#1|)))
..............................................................^
[L15 C63] #1 (Error) Argument 1 of `Evalable' did not match any possible parameter type.
    The rejected type is Type.
    Expected type SetCategory.

The original lines are
https://github.com/hemmecke/fricas-svn/blob/master/src/algebra/aggcat.spad.pamphlet#L113

HomogeneousAggregate(S:Type): Category == Aggregate with
   if S has CoercibleTo(OutputForm) then CoercibleTo(OutputForm)
   if S has SetCategory then SetCategory
   if S has SetCategory then
      if S has Evalable S then Evalable S
   ...

The HOAGG.ap file does not look bad.

               (|If| (|Test| (|Has| |#1| |SetCategory|))
                (|If| (|Test| (|Has| |#1| (|Apply| |Evalable| |#1|)))
                 (|Apply| |Evalable| |#1|) NIL)
                NIL)

whereas the code generated with "$pretendFlag:local := true" is:

               (|If| (|Test| (|Has| |#1| |SetCategory|))
                (|If|
                 (|Test|
                  (|Has| |#1|
                   (|Apply| |Evalable| (|PretendTo| |#1| |SetCategory|))))
                 (|Apply| |Evalable| (|PretendTo| |#1| |SetCategory|)) NIL)
                NIL)

Obviously, the Aldor compiler is here weaker than the SPAD compiler.
From my understanding of Aldor

   if S has SetCategory then
      if S has Evalable S then Evalable S

should compile just fine without manually doing something like

   if S has SetCategory then
      if S has Evalable(S pretend SetCategory) then Evalable S

:-(

Ralf

--
You received this message because you are subscribed to the Google Groups "FriCAS - 
computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en.

Reply via email to