
In article <20050706220345.GE26379@momenergy.repetae.net>,
John Meacham
I was thinking for the initial implementation
getTAITime = do lst <- getLeapSecondTable t <- getCurrentTime return (utcToTAITime lst t)
The problem with this is that it will re-fetch the leap-second table with every call, at the very least, re-examining the file to see whether it's changed.
getLeapSecondTable = do -- check for /etc/leapseconds.txt -- return contents of file if it exists -- else, return built in table.
Returning a built-in table is worse than useless, as any program compiled with it will soon break. We could however check for /etc/leapseconds.txt, that might be useful. But it's not clear what the behaviour on Windows or other platforms should be. What I'd really like to see is an established cross-platform convention for providing leap-second tables, and then we could interface to that. What I am tempted to do is something like this: readLeapSecondTable :: FilePath -> IO LeapSecondTable
Of course, getLeapSecondTable and getTAITime will be modified to use any local interfaces available or when POSIX eventually specifies some TAI interface functions.
What do you mean by "modified to use any local interfaces available"? Certainly if POSIX does some work here we can provide functions then. -- Ashley Yakeley, Seattle WA