erratic behavior for System.Time.diffClockTimes
 
            I'm trying out GHC-7.0.3-x86_64 for Mac OS X and see what seems to be a bug in System.Time.diffClockTimes. The TimeDiff tdPicosec field returns values that seem to jump around erratically: test = do startTime <- System.Time.getClockTime endTime <- System.Time.getClockTime let dt = diffClockTimes endTime startTime putStrLn $ show dt Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 0} Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 3000000} Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = -3329012246138323150000000} Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 3000000} Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = -3329012246138322851000000} Prelude Test> I can file a bug, unless I'm overlooking something here. Warren
 
            On 8 April 2011 22:48, Warren Harris 
I'm trying out GHC-7.0.3-x86_64 for Mac OS X and see what seems to be a bug in System.Time.diffClockTimes. The TimeDiff tdPicosec field returns values that seem to jump around erratically
Strange. This doesn't happen on my Ubuntu x86_64: *Main> testOLD TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 3000000} *Main> testOLD TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 5000000} *Main> testOLD TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 5000000} *Main> testOLD TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 6000000} *Main> testOLD TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 6000000} I also tried with the new time library but that also works as expected: import Data.Time test = do startTime <- getCurrentTime endTime <- getCurrentTime let dt = diffUTCTime endTime startTime putStrLn $ show dt *Main> test 0.000006s *Main> test 0.000007s *Main> test 0.000006s *Main> test 0.000004s *Main> test 0.000007s Bas
 
            On Fri, Apr 8, 2011 at 3:48 PM, Warren Harris 
I'm trying out GHC-7.0.3-x86_64 for Mac OS X and see what seems to be a bug in System.Time.diffClockTimes. The TimeDiff tdPicosec field returns values that seem to jump around erratically:
test = do startTime <- System.Time.getClockTime endTime <- System.Time.getClockTime let dt = diffClockTimes endTime startTime putStrLn $ show dt
Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 0} Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 3000000} Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = -3329012246138323150000000} Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = 3000000} Prelude Test> test TimeDiff {tdYear = 0, tdMonth = 0, tdDay = 0, tdHour = 0, tdMin = 0, tdSec = 0, tdPicosec = -3329012246138322851000000} Prelude Test>
There's already a ticket: http://hackage.haskell.org/trac/ghc/ticket/4970 It is specific to 64bit on Mac OS. I noticed it myself a bit ago. Please add yourself to the CC list on the ticket if its affecting you. Antoine
participants (3)
- 
                 Antoine Latter Antoine Latter
- 
                 Bas van Dijk Bas van Dijk
- 
                 Warren Harris Warren Harris