time 1.4 → 1.4.0.1
raw patch · 6 files changed
+45/−5 lines, 6 files
Files
- Data/Time/Clock/Scale.hs +6/−0
- Data/Time/Clock/UTC.hs +9/−0
- test/Makefile +7/−3
- test/RealToFracBenchmark.hs +22/−0
- test/TimeZone.ref +0/−1
- time.cabal +1/−1
Data/Time/Clock/Scale.hs view
@@ -106,3 +106,9 @@ -- | Create a 'DiffTime' from a number of picoseconds. picosecondsToDiffTime :: Integer -> DiffTime picosecondsToDiffTime x = fromRational (x % 1000000000000)++{-# RULES+"realToFrac/DiffTime->Pico" realToFrac = \ (MkDiffTime ps) -> ps+"realToFrac/Pico->DiffTime" realToFrac = MkDiffTime+ #-}+
Data/Time/Clock/UTC.hs view
@@ -118,3 +118,12 @@ round (MkNominalDiffTime a) = round a ceiling (MkNominalDiffTime a) = ceiling a floor (MkNominalDiffTime a) = floor a++{-# RULES+"realToFrac/DiffTime->NominalDiffTime" realToFrac = \ dt -> MkNominalDiffTime (realToFrac dt)+"realToFrac/NominalDiffTime->DiffTime" realToFrac = \ (MkNominalDiffTime ps) -> realToFrac ps++"realToFrac/NominalDiffTime->Pico" realToFrac = \ (MkNominalDiffTime ps) -> ps+"realToFrac/Pico->NominalDiffTime" realToFrac = MkNominalDiffTime+ #-}+
test/Makefile view
@@ -52,6 +52,9 @@ TestParseTime: TestParseTime.o $(GHC) $(GHCFLAGS) $^ -o $@ +RealToFracBenchmark: RealToFracBenchmark.o+ $(GHC) $(GHCFLAGS) $^ -o $@+ test: \ TestMonthDay.diff \ ConvertBack.diff0 \@@ -64,13 +67,14 @@ TestFormat.diff0 \ TestParseDAT.diff \ TestEaster.diff \- TestParseTime.run \- UseCases.o+ TestParseTime.run \+ UseCases.o \+ RealToFracBenchmark.run @echo "Success!" clean: rm -rf TestMonthDay ConvertBack TestCalendars TestTime LongWeekYears ClipDates \- AddDays TestFormat TestParseDAT TestEaster CurrentTime ShowDST TimeZone TimeZone.ref TestParseTime \+ AddDays TestFormat TestParseDAT TestEaster CurrentTime ShowDST TimeZone TimeZone.ref TestParseTime RealToFracBenchmark \ *.out *.run *.o *.hi Makefile.bak %.diff: %.ref %.out
+ test/RealToFracBenchmark.hs view
@@ -0,0 +1,22 @@+{- Contributed by Liyang HU <haskell.org@liyang.hu> -}+module Main where++import Prelude+import Control.Applicative+import Control.Monad+import Control.DeepSeq+import Data.Time+import Data.Time.Clock.POSIX+import System.Random++main :: IO ()+main = do+ ts <- replicateM 100000 $ do+ t <- posixSecondsToUTCTime . realToFrac <$>+ ( (*) . fromInteger <$> randomRIO (-15*10^21, 15*10^21) <*>+ randomIO :: IO Double ) :: IO UTCTime+ rnf t `seq` return t+ now <- getCurrentTime+ print . sum $ map (diffUTCTime now) ts+ print =<< flip diffUTCTime now <$> getCurrentTime+
− test/TimeZone.ref
@@ -1,1 +0,0 @@--0700
time.cabal view
@@ -1,5 +1,5 @@ name: time-version: 1.4+version: 1.4.0.1 stability: stable license: BSD3 license-file: LICENSE