Consider the following function from src/interp/clam.boot:
numberOfEmptySlots cache==
count:= (CAAR cache ='$failed => 1; 0)
for x in tails rest cache while NE(x,cache) repeat
if CAAR x='$failed then count:= count+1
count
The SBCL type checker does not like it because:
* it is able to infer that cache is a list,
* '=' (coming from NE, which mean not =) can be applied only
to numbers.
Consequently, we have conflicting assumptions for the same value. So, we
have a bug. Now, looking back at the code, the expression
NE(x,cache)
cannot be right. Was it indended to be
x /= cache
instead?
Note: a /= b is almost same like (not (equal a b)).
What is the semantics of function numberOfEmptySlots? What is
the structure of its parameter?
-- Gaby
_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer