RFC: Time Library 0.1

Ashley Yakeley ashley at semantic.org
Thu Jul 7 04:21:19 EDT 2005

In article <20050706220345.GE26379 at momenergy.repetae.net>,
 John Meacham <john at repetae.net> wrote:

> 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

More information about the Libraries mailing list