Minor: using unsafeDupablePerformIO to be more fair to MWC.
authorRyan Newton <rrnewton@gmail.com>
Mon, 27 Jun 2011 03:51:11 +0000 (23:51 -0400)
committerRyan Newton <rrnewton@gmail.com>
Mon, 27 Jun 2011 03:51:11 +0000 (23:51 -0400)
Benchmark/SimpleRNGBench.hs

index cc92d86..83ae72c 100644 (file)
@@ -36,7 +36,8 @@ import BinSearch
 import System.Random.Mersenne.Pure64
 import System.Random.MWC
 import Control.Monad.Primitive
-import System.IO.Unsafe
+-- import System.IO.Unsafe
+import GHC.IO
 #endif
 
 ----------------------------------------------------------------------------------------------------
@@ -117,7 +118,8 @@ data MWCRNG = MWCRNG (Gen (PrimState IO))
 -- data MWCRNG = MWCRNG GenIO
 instance RandomGen MWCRNG where 
   -- For testing purposes we hack this to be non-monadic:
-  next g@(MWCRNG gen) = unsafePerformIO $
+--  next g@(MWCRNG gen) = unsafePerformIO $
+  next g@(MWCRNG gen) = unsafeDupablePerformIO $
    do v <- uniform gen
       return (v, g)
 #endif