Ashley Yakeley | 7 Jul 10:21

Re: RFC: Time Library 0.1

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

Gmane