Add a comment about why we can't use abs to get a non-negative number ghc-darcs-git-switchover
authorIan Lynagh <igloo@earth.li>
Wed, 9 Mar 2011 17:43:45 +0000 (17:43 +0000)
committerIan Lynagh <igloo@earth.li>
Wed, 9 Mar 2011 17:43:45 +0000 (17:43 +0000)
NB: Negative seends will now produce different random numbers than
they used to.

System/Random.hs

index 9a30b4a..a37520a 100644 (file)
@@ -221,6 +221,8 @@ mkStdGen s = mkStdGen32 $ fromIntegral s
 mkStdGen32 :: Int32 -> StdGen
 mkStdGen32 sMaybeNegative = StdGen (s1+1) (s2+1)
       where
+       -- We want a non-negative number, but we can't just take the abs
+       -- of sMaybeNegative as -minBound == minBound.
        s       = sMaybeNegative .&. maxBound
        (q, s1) = s `divMod` 2147483562
        s2      = q `mod` 2147483398