Zoneinfo questions
Guy Harris
guy at netapp.com
Thu Feb 19 19:24:55 UTC 1998
> Below are copies of a couple of 1989 letters on the history of the time zone
> software.
Below is the version from my archive, which may be a bit easier to read:
==============================================================
Date: Thu, 20 Apr 89 09:54:08 EDT
From: uunet!ncifcrf.gov!elsie!ado (Arthur David Olson)
Message-Id: <8904201354.AA15704 at elsie>
To: bostic at okeeffe.berkeley.edu, ncifcrf!bootme.auspex.com!guy
Subject: Re: machine independence
> Speaking of "the original ... work", how did this all get started,
> anyway?
The ultimate impetus was the legislation that changed the start of U. S.
Daylight Saving Time from the last Sunday in April to the first Sunday in April.
The proximate impetus was a mod.std.unix discussion on the subject.
I've attached some of the early electronic mail. By 1/11/86 the format
looked much as it does today. The "hard part" not dealt with in the 1/13/86
"distribution" was the text-format-to-binary-format converter (today's zic).
--ado
> From ado Mon Jan 6 10:28:48 1986
> To: cbosgd!mark
> Subject: Daylight Savings Time
> Cc: seismo!philabs!linus!encore!necis!geo
> Status: O
>
> Well, I'll admit that my first reaction to the idea of something on the order
> of "/etc/dstcap" was a smiley face. But over the weekend I thought about the
> matter some more. The result of the thinking was a sheet of paper with this
> on it:
>
> > eastern:\
> > :st=EST:\
> > :dt=EDT:\
> > :os=-21000:\
> ...
> Now regardless of the way the above information is encoded, the questions are:
> Is there enough information present above to deal with the various
> Daylight Saving Time schemes that currently exist? Would the information be
> enough to deal with anything that US (or foreign) legislators are likely
> to dream up? Or does one *really* need to have something on the order of
> "/etc/dstinfo" (with a stack and arithmetic and such)?
>
> --ado
> >From cbosgd!cbpavo.cbosgd.ATT.UUCP!mark Fri Jan 10 16:19:08 1986 remote from seismo
> Received: from cbosgd.UUCP by seismo.CSS.GOV with UUCP; Fri, 10 Jan 86 16:05:29 EST
> Received: from cbpavo.cbosgd.ATT.UUCP (cbpavo.ARPA)
> by cbosgd.ATT.UUCP (4.12/UUCP-Project/11.09.85)
> id AA17523; Fri, 10 Jan 86 15:04:29 est
> Received: by cbpavo.cbosgd.ATT.UUCP (4.24/3.14)
> id AA03218; Fri, 10 Jan 86 15:04:20 est
> Date: Fri, 10 Jan 86 15:04:20 est
> From: seismo!cbpavo.cbosgd.ATT.UUCP!mark (Mark Horton)
> Message-Id: <8601102004.AA03218 at cbpavo.cbosgd.ATT.UUCP>
> To: elsie!ado, harvard!encore!encore!necis!geo
> Subject: Re: Daylight Savings Time
>
> While I like your semantics, the format is horrible. I'd much
> prefer to see each year (or year range) in one place rather
> than have it scattered over 14 different days of the week.
> The format has to be something the average non-guru can understand.
> Termcap is a bit much for such people. Something easy like
>
> Year Key Parm Time GMT offset
> 1970 3-sun 4 0200 -0400
> 1970 3-sun 10 0200 -0500
> 1971 3-sun 4 0200 -0400
> 1971 3-sun 10 0200 -0500
> 1972 3-sun 4 0200 -0400
> 1972 3-sun 10 0200 -0500
> 1973 3-sun 4 0200 -0400
> 1973 3-sun 10 0200 -0500
> 1974 julian 120 0200 -0400
> 1974 julian 306 0200 -0500
> 1975 julian 0 0200 -0400
> 1975 julian 366 0200 -0500
> 1976 3-sun 4 0200 -0400
> 1976 3-sun 10 0200 -0500
>
> This could probably be translated into a handy binary format for ctime
> to use quickly. The parm is either the month number (for things like
> "3rd Sunday") or the Julian date on which to make the change. The
> above numbers are probably all wrong but you get the idea. You could
> have any number of changes in a year, although 2 would be common.
>
> Mark
> From ado Sat Jan 11 12:42:16 1986
> To: cbosgd!mark
> Subject: DST
> Status: O
>
> An alternate approach to allow for multiple time zones. Make the rules look
> like:
>
> Rule Year(s) Month Day Time ST offset String
> MostUS -1973 Apr last-Sun 2:00 1:00 D
> MostUS -1973 Oct last-Sun 2:00 0 S
> MostUS 1974 Jan last-Sun 2:00 1:00 D
> MostUS 1974 Nov last-Sun 2:00 0 S
> MostUS 1975 Feb last-Sun 2:00 1:00 D
> MostUS 1975 Oct last-Sun 2:00 0 S
> MostUS 1976- Apr last-Sun 2:00 1:00 D
> MostUS 1976- Oct last-Sun 2:00 0 S
> Patron 1969- Apr last-Sun 2:00 1:00 D
> Patron 1969- Jul last-Sun 2:00 2:00 DD
> Patron 1969- Aug last-Sun 2:00 1:00 D
> Patron 1969- Oct last-Sun 2:00 0 S
>
> and the Time Zone information look like
>
> Name GMT offset Rule Abbreviation
> Eastern -5:00 MostUS E%sT
> Central -6:00 MostUS C%sT
> Pacific -8:00 MostUS P%sT
> Alaskan ? MostUS A%sT
> Hawaiian ? MostUS H%sT
> Patronian ? Patron P%sT
>
> --ado
> From ado Mon Jan 13 21:04:01 1986
> To: cbosgd!mark
> Subject: The easy part of ctime()
> Status: O
>
> The next letter from me should be a shell archive containing five files:
> Makefile
> timezone.h
> ctime.c
> try.c
> fake.c
> The important files are "timezone.h" which gives the format of "binary time
> zone information files," and "ctime.c" which makes use of the files. . .
>From uunet!ncifcrf.gov!elsie!ado Thu Apr 20 17:43:40 1989
Return-Path: <uunet!ncifcrf.gov!elsie!ado>
Received: from uunet.UUCP by auspex.com (4.0/SMI-4.0)
id AA17457; Thu, 20 Apr 89 17:43:39 PDT
Received: from FCS280S.NCIFCRF.GOV by uunet (5.61/1.14) with SMTP
id AA12868; Thu, 20 Apr 89 20:07:19 -0400
Received: by fcs280s.ncifcrf.gov (4.0/NCIFCRF-1.0)
id AA13367; Thu, 20 Apr 89 20:03:39 EDT
Received: by elsie (4.0/SMI-4.0)
id AA00691; Thu, 20 Apr 89 20:03:31 EDT
Date: Thu, 20 Apr 89 20:03:31 EDT
From: uunet!ncifcrf.gov!elsie!ado (Arthur David Olson)
Message-Id: <8904210003.AA00691 at elsie>
To: guy at auspex.com
Subject: Re: machine independence
Status: RO
> So do you remember how the rest of us (Elz, me, Bob Device, Bradley White,
> etc.) got involved?
I don't, but the computer does. (One advantage of working on image processing
is big disks and lots of tapes.)
There was a fair amount of mod.std.unix posting in early '86, kicked off by
Mark Horton's original "How best to handle time conversion?" posting.
Bob Devine responded since he'd been responsible for time stuff with an
earlier employer; he was person who knew that astrologers had the
best information about DST in the past.
Robert Elz was motivated by the fact that the Australian government fiddled
the DST rules down there for a visit by the Queen in March of '86.
He boldly installed the early code just before the visit.
Robert's changes to "date" to work with the new functions showed up in
mod.sources in June of '86.
Robert knew of your work before I did:
> From munnari!kre Tue Aug 26 13:10:08 1986 remote from seismo
> . . .
> To: elsie!ado
> . . .
> Did Guy Harris (sun!guy) ever send you his mods to this stuff?
> He has made the compiled timezone files be in "standard" format
> so they can reside on one host on a net, and have others access
> them (by NFS or whatever), regardless of whether there's a mixture
> of Sun's vaxen, etc, with different byte orders & such.
Clearly the mods had been sent by the time that
the "timezone mailing list" was announced in late '86:
> From ado Mon Nov 24 19:58:54 1986
> . . .
> To: tz
> Subject: seismo!elsie!tz ; new versions of time zone stuff
>
> Now that we've moved from 4.1BSD to 4.3BSD here at elsie,
> I've set things up so that mail sent to
> seismo!elsie!tz
> will go to folks who've expressed an interest in time zone matters. . .
> Currently on the list:
> ado at elsie.UUCP
> chris at umcp-cs.UUCP
> mark at cbosgd.ATT.COM
> kre at munnari.OZ
> dlm at cuuxb.ATT.COM
> devine at vianet.UUCP
> bob at anvil.UUCP
> rgt at hpfcdg.UUCP
> guy at sun.UUCP
> . . .
> And now the real news: new versions of the time zone compiler, the
> ctime et al. library, and the time zone data are available. Guy Harris
> provided the bulk of the ideas and work that went into the new versions,
> but should be held innocent of any blame for errors since I've tinkered
> with Guy's work (in part to try for more compatibility with System V and
> the work of rgt at hpfcdg.UUCP, who's the time zone person at Hewlett-Packard).
> . . .
(How it is that I forgot after then how to spell compatibility is beyond me.)
The mailing list saw a flurry of activity in December of '86, with an upcoming
P1003 meeting due to try to figure out how to standardize time conversion;
H-P was preparing an alternative proposal to "P.55," which was based on the
table-driven stuff. As part of the flurry, John S. Quarterman
(who carried the banner before P1003) got involved at kre's behest:
> From seismo!munnari!kre Sun Dec 7 06:57:42 1986
> . . .
> To: elsie!tz
> Cc: jsq at sally.utexas.edu
> Subject: timezone proposals for P1003
> . . .
> I think things are getting way too complicated.
>
> All P1003 needs (and all it should have) is a spec of
> the interface that programs should have to time conversions.
> . . .
> Robert Elz seismo!munnari!kre
>
> ps: I have added a cc to John Quarterman, who I guess is
> as close as anyone to being my representative on P1003,
> given that I'm a usenix member... John, this is in response
> to some discussions over the HP proposals and other replated
> issues. elsie!ado can fill you in on what's been going on I think.
> There's a mailing list at elsie for tz discussions.
Bradley White first appears (at least in my back mail files) in early '87:
(presumably after the P1003 meeting?); he was referred by. . .
> From seismo!sun!guy Thu Feb 19 06:56:54 1987
> ...
> To: elsie!ado
> Subject: Could you send him the latest version when it's ready?
> Cc: bww at k.cs.cmu.edu
> Status: RO
>
> > From: Bradley White <bww at k.cs.cmu.edu>
> > Subject: Re: diffs for ctime.c for new DST rules, v7 systems
> > To: guy at Sun.COM
>
> > Guy,
>
> > If you could send me (or point me at) a copy of Arthur Olson's "ctime"
> > I will have it installed in CMU Mach/Unix. Hopefully this will aid in
> > its dissemination.
> ...
--ado
More information about the tz
mailing list