[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#15320: [2.0.7] Rational number representation problem
From: |
Mark H Weaver |
Subject: |
bug#15320: [2.0.7] Rational number representation problem |
Date: |
Thu, 12 Sep 2013 17:03:34 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Josh Stokes <address@hidden> writes:
> It seems that certain small numbers are represented as integers, as (*
> 4294967296 4294967296) results in 0, but (* 3294967296 3294967296)
> returns the correct value of 10856809481709551616. In addition, (ash 1
> 64) gives 0, but (ash 1 65) works correctly.
This is fixed in Guile 2.0.9.
In case you're curious: this bug came into existence when C compilers
started optimizing out overflow checks, on the theory that if a signed
integer overflow occurs then the behavior is unspecified and thus the
compiler can do whatever it likes.
http://stackoverflow.com/questions/14495636/strange-multiplication-behavior-in-guile-scheme-interpreter/14498437#14498437
Thanks,
Mark