[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] TAI epoch

On Mon, Mar 10, 2014 at 10:32 AM, Alan Watson <alan@x> wrote:

Note the word “approximately”. This is because TAI and UTC seconds were not the same prior to 1972, and as a consequence of this, as Shiro has pointed out, the difference between TAI and UTC was not constant prior to 1972 even in the absence of leap seconds. For the purpose of my formal comment, it would have been a distraction to get into the details. So, I was aware of this issue, and should have caught it in the final draft. Sorry about that.

It's still not clear to me if there's an errata here.

R7RS did not invent the POSIX 1970 + 10 second epoch.
The question is why did older libraries use this (and does
anybody know)?

Leap seconds happen at discrete times.  Although leading
up to a leap second an actual time difference exists, we
typically don't reflect this in time libraries and have a binary
zero second offset just before the leap second and full one
second just after it occurs.  When the 10 seconds were
added in 1972, unless there were some official list of
exact times the seconds should be retroactively applied
prior to 1972, it would arguably be incorrect to compute
approximately scaled leap seconds for calendar times.

On the other hand, given such a naive clock it would be
natural for all 10 leap seconds to occur in 1972, with zero
offset in 1970.  Why retroactively apply the seconds since
the beginning of the TAI clock?

So there are three possibilities:

1. The sources and our assumptions are wrong and the
libraries actually used an epoch of 1970 + ~8 seconds,
possibly being misadvertised since when the change
occurred the diff was 10 seconds.

2. The epoch was really 1970 + 10 seconds due to a
simplifying assumption of a 10 second diff for all times
prior to the introduction of leap seconds.

3. The epoch was really 1970 + 10 seconds due to a
historical mistake.


Scheme-reports mailing list