I investigated a little further bug #359.  Thanks to a helpful anonymous, we
can now trigger it simply by saying

(1) -> eq := 1=1

   (1)  1= 1
                                               Type: Equation PositiveInteger

(2) -> )se bre bre
(2) -> [eq::Boolean]

   (2)  [true]
                                                           Type: List Boolean
(3) -> [eq::Boolean for i in 1..1]
   Internal Error
   Generated code is incorrect for equation 

 

Break.
Broken at |UPCOLLECT|.  Type :H for Help.
BOOT>>:bt

#0   upCOLLECT {loc0=(#<vector 08d0d4ec> (step |i| #<vector 08d0d578> ...)
 (#<vector 08d0d604> ...} [ihs=8]
#1   upconstruct {loc0=(#<vector 08d0d4d0> (#<vector 08d0d4ec> (step |i|
 #<vector 08d0d578> ...) ...} [ihs=7]
#2   RESTART
 
{loc0="/tmp/.d",loc1=0,loc2=nil,loc3=0,loc4=0,loc5=nil,loc6=nil,loc7=nil,loc8=ni...}
 [ihs=6]
#3   TOP-LEVEL
 
{loc0=nil,loc1=0,loc2=0,loc3=nil,loc4=nil,loc5=nil,loc6=nil,loc7="/usr/local/lib...}
 [ihs=5]
#4   FUNCALL {loc0=#<compiled-function system:top-level>} [ihs=4]
NIL
BOOT>>

[coerce(eq)@Boolean for i in 1..1] works, by the way, [(1=1)::Boolean for i in
1..1], too.  upCollect and upconstruct are defined in i-spec1.boot.pamphlet.
The only location where this error message is thrown is in coerceByFunction in
i-coerce.boot.pamphlet, the error code is S2IC0015.

I tried to read upconstruct, upCOLLECT and coerceByFunction, but I have no idea
what they are doing.  In fact, I don't even see how upconstruct calls upCOLLECT
and coerceByFunction.

Martin



_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to