change dependency from old-time to time
authorLaszlo Nagy <rizsotto@gmail.com>
Thu, 9 Jul 2009 09:14:17 +0000 (09:14 +0000)
committerLaszlo Nagy <rizsotto@gmail.com>
Thu, 9 Jul 2009 09:14:17 +0000 (09:14 +0000)
System/Random.hs
random.cabal

index b84ddc9..f64d4dd 100644 (file)
@@ -75,7 +75,8 @@ import Foreign.Ptr      ( Ptr, nullPtr )
 import Foreign.C       ( CTime, CUInt )
 #else
 import System.CPUTime  ( getCPUTime )
-import System.Time     ( getClockTime, ClockTime(..) )
+import Data.Time       ( getCurrentTime, UTCTime(..) )
+import Data.Ratio       ( numerator, denominator )
 #endif
 import Data.Char       ( isSpace, chr, ord )
 import System.IO.Unsafe ( unsafePerformIO )
@@ -86,10 +87,15 @@ import Numeric              ( readDec )
 -- the extended one expected in this module, so we lash-up a quick
 -- replacement here.
 #ifdef __NHC__
-data ClockTime = TOD Integer Integer
 foreign import ccall "time.h time" readtime :: Ptr CTime -> IO CTime
-getClockTime :: IO ClockTime
-getClockTime = do CTime t <- readtime nullPtr;  return (TOD (toInteger t) 0)
+getTime :: IO (Integer, Integer)
+getTime = do CTime t <- readtime nullPtr;  return (toInteger t, 0)
+#else
+getTime :: IO (Integer, Integer)
+getTime = do
+  utc <- getCurrentTime
+  let daytime = toRational $ utctDayTime utc
+  return $ quotRem (numerator daytime) (denominator daytime)
 #endif
 
 -- | The class 'RandomGen' provides a common interface to random number
@@ -306,7 +312,7 @@ instance Random Float where
 mkStdRNG :: Integer -> IO StdGen
 mkStdRNG o = do
     ct          <- getCPUTime
-    (TOD sec psec) <- getClockTime
+    (sec, psec) <- getTime
     return (createStdGen (sec * 12345 + psec + ct + o))
 
 randomIvalInteger :: (RandomGen g, Num a) => (Integer, Integer) -> g -> (a, g)
index c7c79ab..365d7ed 100644 (file)
@@ -15,7 +15,7 @@ Library
     exposed-modules:
         System.Random
     extensions:        CPP
-    build-depends: base, old-time
+    build-depends: base, time
 
 source-repository head
     type:     darcs