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