On 14 Jan 2014, at 23:53, Poul-Henning Kamp <p...@phk.freebsd.dk> wrote:
> 
> It's not like Ken & Dennis looked at leap-seconds and went "Naah,
> who cares", or even "braindead!  We'll skip that."

I think it would require slightly more software archaeology to determine who 
took what decisions about what.  The documentation for
the convert_date_to_binary_ routine on Multics addresses both Julian/Gregorian 
issues, which are allowed for  (although, as for the Unix cal(1) 
command, it assumes a single date for that transition) and also leap seconds, 
which are not.  The copy I've located is MR11.0 for 1985, but I'm
pretty certain that if I dug around in the loft and located my copy of the 
MR10.0 version it would be pretty much the same (I recall reading this
in the early 1980s).

> Multics accepts dates from the year 0001 through 9999. The Julian calendar is 
> used 
> for dates from 0001-01-01 through 1582-10-04. The Gregorian calendar is used 
> for 
> dates from 1582-10-15 through 9999-12-31. (The dates from October 5, 1582 
> through 
> October 14, 1582 do not exist. They were dropped when the Gregorian calendar 
> was 
> adopted. The leap day is always February 29. The lower limit on dates of 
> January 1, 
> 0001 AD was picked since it begins the era. The upper limit on dates of 
> December 
> 31, 9999 was chosen to limit year numbers to four digits. The time zones as 
> now 
> defined are used regardless of the year. The Multics date/ time system does 
> not 
> account for "leap seconds" and, therefore, the difference between any two 
> binary clock 
> values that are precisely an integral number of days (hours, minutes, 
> seconds, etc.) 
> apart is guaranteed to be evenly divisible by the number of microseconds in a 
> day 

The Multics design, if not the precise implementation of that entry point, 
definitely pre-dates the introduction of leap seconds.   The
Multics clock design (a fixed bin (71), ie double word, representing 
microseconds since 00:00 01-01-1900) clearly informs the Unix
one.  Early 16-bit Unixes went similarly for a double-word quantity, and 
accepted that microseconds were not viable without major
hardware support to deal with 64-bit arithmetic.   Unics (sic) pre-dates 
leap-seconds, and Unix had reached  second edition before
leap seconds became a reality.  As PHK says, at the time the precision of 
computer clocks, both in rate and phase, was such that
the need to adjust it by a second once every eighteen months was in the noise 
floor, and the design was by that time established.

So I suspect that at the time of adopting the Unix time_t (as it became), leap 
seconds were either not yet implemented or not
yet even proposed, and at the time of adopting the time framework for Unix's 
predecessor they definitely weren't.   That predecessor
system documented the lack of support for leap seconds as early as 1985 (proof 
above) and I think 1983.

ian
_______________________________________________
LEAPSECS mailing list
LEAPSECS@leapsecond.com
http://six.pairlist.net/mailman/listinfo/leapsecs

Reply via email to