[PPL-devel] [Xsb-development] Arithmetic evaluation bug in the CVS HEAD version of XSB

Bart Demoen Bart.Demoen at cs.kuleuven.ac.be
Mon Sep 24 09:16:29 CEST 2007


> (Bart, do you have a practical example in which it was critical to
> have that one, rather special, negative integer? :-).

Of course, oodles of them :-)

I was just trying to cook up examples that give unexpected behaviour.
I had started from a predicate a/2:

  a(X,Y) :- X < Y .

and did queries like ?- a(large_neg_int,large_pos_int), e.g:

| ?- a(-2147483647,3).

no

for instance.

What I later pasted in my mail was some sort of abbreviation of some
of the queries. I didn't even notice it was showing some different
weird behaviour. I now realize that toplevel queries of </2 can behave
differently from compiled goals. The problem with compiled </2 is that
XSB compiles X < Y to X-Y < 0 (or something like that - when there is
(undetected ?) overflow in the -/2, things go wrong.

Cheers

Bart Demoen



More information about the PPL-devel mailing list