patch applied (packages/random): mkStdGen32: Avoid infinite recursion when applied to minBound

Ian Lynagh igloo at earth.li
Thu Mar 10 03:36:31 CET 2011


Thu Jan 20 23:02:58 PST 2011  Johan Kiviniemi <devel at johan.kiviniemi.name>
  * mkStdGen32: Avoid infinite recursion when applied to minBound
  
  "mkStdGen32 s" would call itself with "negate s" if "s" is negative. Alas,
  (minBound :: Int32) == negate minBound. "mkStdGen32 minBound" would thus
  recurse infinitely.
  
  Compute "sMaybeNegative .&. maxBound" instead. That clears the most significant
  bit in signed types.

    M ./System/Random.hs -3 +3

View patch online:
http://darcs.haskell.org/cgi-bin/darcsweb.cgi?r=packages/random;a=darcs_commitdiff;h=20110121070258-13164-dc58a391bec55e4245faaa076dc096b68e3b393b.gz



More information about the Cvs-libraries mailing list