Re: [LEAPSECS] What problems do leap seconds *really* create?

From: John Cowan <>
Date: Thu, 30 Jan 2003 11:55:37 -0500 (EST)

Markus Kuhn scripsit:

> > > They have always counted the non-leap seconds since 1970-01-01.
> > The Posix interpretation is only a few years old, and a break with Unix
> > history. Before that, time_t ticked SI seconds since the epoch (i.e.
> > 1970-01-01:00:00:00 GMT = 1970-01-01:00:00:10 TAI).
> Sorry, you just make this up.

You know that that is not true. (This is the lie direct in the
third degree, also known as the Countercheck Quarrelsome; see . I would not go so far on this
list, had you not gone further already.)

> Unix machines ticked the seconds of their
> local oscillator from boot to shutdown. Local oscillator seconds differ
> from SI seconds by typically +/- 10^-5 s or worse. Unix time had
> multiple or fractional inserted and deleted leap seconds whenever the
> administrator brutally readjusted the local clock using the
> settimeofday(2) system call closer to UTC.

You are confusing "what you got" with "what you were supposed to get". It's
true that timekeeping practices in those days were deplorable at both the
hardware and administrative levels. However, the *intent* was to return
*the number of seconds since the Epoch*, as specified by the manual -- the
point of a man page entry is to document how the application or system call
is supposed to behave (except in the BUGS section).

The Posix interpretation was a *reinterpretation*.

> > The time(2) man
> > page in the Sixth Edition (unchanged in the Seventh) of Research
> > Unix says:
> >
> > .I Time
> > returns the time since 00:00:00 GMT, Jan. 1, 1970, measured
> > in seconds.
> Today we distinguish between "civilian" (UTC non-leap) seconds and
> physical (SI) seconds. The authors of that manual very obviously didn't
> make that distinction and you should not misrepresent them by claiming
> that they did.

I have every reason to think that when they spoke of seconds, they spoke
of SI seconds, and that when they spoke of measuring, they meant measuring,
not encoding.

> In practice, the source code shows that time_t values are converted to
> UTC clock displays without a leap second table, therefore they clearly
> are just meant to be an encoding of UTC clock display values and nothing
> else.

So now you think that implementation defines intent? What is the use of
having standards at all, in that case?

Some people open all the Windows;       John Cowan
wise wives welcome the spring 
by moving the Unix.           
  --ad for Unix Book Units (U.K.)
Received on Thu Jan 30 2003 - 08:57:05 PST

This archive was generated by hypermail 2.3.0 : Sat Sep 04 2010 - 09:44:54 PDT