home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / std_unix / mod.std.unix.v6 < prev    next >
Internet Message Format  |  1987-06-30  |  178KB

  1. From jsq  Mon Mar 24 15:22:43 1986
  2. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3. Newsgroups: mod.std.unix
  4. Subject: mod.std.unix Volume 6
  5. Message-Id: <4517@ut-sally.UUCP>
  6. Organization: IEEE/P1003 Portable Operating System Environment Committee
  7. Date: 24 Mar 86 21:22:31 GMT
  8. Draft-9: mod.std.unix
  9.  
  10. This is the first article in Volume 6 of mod.std.unix/std-unix.
  11. These volumes are strictly for administrative convenience.
  12. Paper copies of them get delivered to the P1003 committee chair
  13. from time to time and several members of the committee follow
  14. the newsgroup on-line.
  15.  
  16. Feel free to continue any discussions from the previous volume
  17. or to start new discussions.
  18.  
  19.  
  20. The USENET newsgroup mod.std.unix is for discussions of UNIX standards,
  21. particularly the IEEE P1003 draft standard.  It is also distributed
  22. in an ARPA Internet mailing list.  I'm the moderator, which mostly
  23. means I post what you send me.  I'm also the institutional representative
  24. of the USENIX Association to P1003.
  25.  
  26. Submissions-To:    ut-sally!std-unix    or std-unix@sally.UTEXAS.EDU
  27. Comments-To: ut-sally!std-unix-request    or std-unix-request@sally.UTEXAS.EDU
  28. UUCP-Routes: {gatech,harvard,ihnp4,seismo,pyramid,sequent}!ut-sally!std-unix
  29.  
  30. Permission to post to the newsgroup is assumed for mail to std-unix.
  31. Permission to post is not assumed for mail to std-unix-request,
  32. unless explicitly granted in the mail.  Mail to my personal addresses
  33. will be treated like mail to std-unix-request if it obviously refers
  34. to the newsgroup.
  35.  
  36. Archives may be found on sally.UTEXAS.EDU.  The current volume may
  37. be retreived by anonymous ftp (login anonymous, password guest)
  38. as ~ftp/pub/mod.std.unix, while the previous volumes may be retrieved
  39. as ~ftp/pub/mod.std.unix.v1, ~ftp/pub/mod.std.unix.v2, etc., through 5.
  40. The volume with the AT&T public domain getopt(3) is ~ftp/pub/mod.std.unix.v3.
  41.  
  42. Finally, remember that any remarks by any committee member (especially
  43. including me) in this newsgroup do not represent any position (including
  44. any draft, proposed or actual, of the standard) of the committee as a
  45. whole, unless explicitly stated otherwise in such remarks.
  46.  
  47. Volume-Number: Volume 6, Number 1
  48.  
  49. From jsq  Mon Mar 24 15:39:59 1986
  50. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  51. Newsgroups: mod.std.unix
  52. Subject: mod.std.unix and P1003
  53. Message-Id: <4518@ut-sally.UUCP>
  54. Organization: IEEE/P1003 Portable Operating System Environment Committee
  55. Date: 24 Mar 86 21:39:42 GMT
  56. Draft-9: mod.std.unix
  57.  
  58. This article is a slightly adapted copy of an earlier one.
  59.  
  60. There seems to be widespread confusion as to the relation of the
  61. newsgroup mod.std.unix (aka the mailing list STD-UNIX) and the
  62. IEEE P1003 standards committee.  Allow me to try to clear some of it up.
  63.  
  64.  
  65. Because something is discussed in mod.std.unix does not mean that
  66. it is automatically proposed to P1003 for inclusion in the standard.
  67. Proposals to the committee have to be more formal.  Especially they
  68. have to include specific proposed wording.
  69.  
  70. As it happens, the moderator of the newsgroup is also the USENIX
  71. representative to the committee.  As such, I am willing to present
  72. proposals to the committee if someone actually has some to present.
  73. However, the proposer has to specifically request that for a specific
  74. proposal and I have to agree to it before it will happen.
  75.  
  76. It is true that several committee members follow the newsgroup and
  77. that I make sure that copies of articles from the newsgroup go to
  78. appropriate technical reviewers or are mentioned to the committee
  79. as a whole.  However, they are not presented as proposals:  they
  80. are presented as comments.  They may help committee members understand
  81. the context of a topic which is treated in the standards document,
  82. but they are unlikely to cause new topics to be added to the document.
  83.  
  84. This is not to say that input from the newsgroup is not useful
  85. to the committee.  A number of problems with the latest drafts
  86. were pointed out in the newsgroup and fixed because of that.
  87. The time zone discussion has brought up some points which will
  88. probably affect the eventual treatment of that subject by the
  89. committee.
  90.  
  91.  
  92. Because something is discussed in mod.std.unix does not even
  93. necessarily mean that it has anything to do with the P1003 committee.
  94.  
  95.  
  96. The committee is very aware that they should not be introducing
  97. new facilities.  It has happened a few times.  The only one
  98. I can think of at the moment is file locking, specifically the
  99. mandatory locking feature of flock (which was actually introduced
  100. by the /usr/group committee).  This is also, not coincidentally,
  101. one of the most controversial things in the current document
  102. (at the moment it's in an appendix), even though its proponents
  103. only back it because they are convinced it is necessary.
  104.  
  105. You will find things in the draft standard document which do not
  106. correspond to your local system, regardless of what your local system
  107. is.  This is because in the real world there are at least two major
  108. variants of UNIX and many minor ones.  To pick one and standardize on
  109. it alone would be to try to outlaw all the others.  This is probably
  110. not even possible, even if it were desirable.  The committee has chosen
  111. instead to try to produce something which is not exactly like anything
  112. out there but which can be implemented with relatively minor changes on
  113. most existing systems.
  114.  
  115. Ritual disclaimer:  this article is constructed of my personal opinions
  116. and does not necessarily represent any official position of IEEE, P1003,
  117. USENIX, /usr/group, or any other organization.
  118.  
  119. Volume-Number: Volume 6, Number 2
  120.  
  121. From jsq  Mon Mar 24 15:57:07 1986
  122. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  123. Newsgroups: mod.std.unix
  124. Subject: Time Zones; D6 A.3
  125. Message-Id: <4519@ut-sally.UUCP>
  126. Organization: IEEE/P1003 Portable Operating System Environment Committee
  127. Date: 24 Mar 86 21:56:55 GMT
  128. Draft-9: TZ
  129.  
  130. [ This is a reposting of the article which started the time zone
  131. discussion.  Remember a few things when reading it.  UNIX (and many
  132. other operating systems) has *always* kept internal time in GMT.
  133. That is not the issue.  The issue is how to present local times to the
  134. users.  And, while it is good to know how to implement a scheme for
  135. handling time zones, the P1003 standard only needs to include a few
  136. library routine interfaces.  Finally, this subject is getting sort of
  137. discussed out, so let's try not to repeat it all again.  -mod ]
  138.  
  139. Date: Wed, 1 Jan 86 18:39:26 est
  140. From: seismo!cbpavo.cbosgd.ATT.UUCP!mark@sally.UTEXAS.EDU (Mark Horton)
  141.  
  142. The latest draft asked for input about time zones.  I'd like to
  143. make a few comments.
  144.  
  145. There are two basic ways that time zones are done today.  There
  146. is the V7 method (where the zone offset is in the kernel) and the
  147. System III method (where the zone offset and name is in an environment
  148. variable.)  4.2BSD descends from V7 (although it has a fancier "offset
  149. to zone name" conversion algorithm that knows more about the world)
  150. and System V descends from System III.
  151.  
  152. There are elegance considerations (e.g. should the kernel know or
  153. care about time zones?) and efficiency considerations (e.g. is it
  154. faster to look in the environment, do a system call, or read a file.)
  155. But both of these are dwarfed by a much more important consideration:
  156. does it work properly in all cases?  I claim that neither method is
  157. correct all the time, but the V7 method is right more often than the
  158. System III method.
  159.  
  160. In V7, when you configure your kernel, you tell it the zone offset,
  161. in minutes, from GMT, and whether you observe Daylight time.  These
  162. numbers are stored in the kernel, which doesn't do anything with them
  163. except return them when an ftime system call asks for them.  So, in
  164. effect, they are in the kernel for administrative convenience.  (You
  165. don't have to open a file, and they aren't compiled into ctime, so it
  166. isn't necessary to relink every program that calls ctime or localtime
  167. when you install a new system.)  The smarts that generate the time zone
  168. name and decide if Daylight time is in effect are in ctime in user code.
  169. (By comparison, in TOPS 20, the equivalent of ctime is a system call,
  170. with lots of options for the format.  This may seem inelegant, but it
  171. results in only one copy of the code on the system, even without shared
  172. libraries.)
  173.  
  174. In System III, the kernel doesn't know about time zones at all.  The
  175. environment variable TZ stores both the zone names and the zone offset,
  176. and ctime looks there.  This makes things very flexible - no assumptions
  177. about 3 character zone names, and it's easy for a person dialing in from
  178. a different time zone to run in their own time zone.  Also, it's very
  179. efficient to look in the environment - faster than a system call.
  180.  
  181. However, there are some very serious problems with the System III method.
  182. One problem is that, with an offset measured in hours, places like
  183. Newfoundland, Central Australia, and Saudi Arabia, which don't have
  184. even hour time zones, are in trouble.  But that's easy to fix in the standard.
  185.  
  186. The time zone is configured into the system by modifying /etc/profile,
  187. which is a shell script of startup commands run by the Bourne shell when
  188. any user logs in, much like .profile or .login.  This means that we assume
  189. everybody is using the Bourne shell.  This is a false assumption - one of
  190. the documented features of UNIX ever since V6 is that the shell is an
  191. ordinary program, and a user can have any shell they like.  In particular,
  192. the Berkeley C shell does not read /etc/profile, so all csh users don't get
  193. a TZ variable set up for them in every System III or V UNIX I've ever used.
  194.  
  195. Well, after all, the Bourne shell is the standard shell, and everybody should
  196. use the standard shell, right?  After all, the new Korn shell reads and
  197. understands /etc/profile.
  198.  
  199. Even if we believe the above statement and ignore the documented feature
  200. of being able to put your favorite shell in the passwd file (and I don't)
  201. we still get into trouble.  For example, uucp has a special shell: uucico.
  202. It doesn't read /etc/profile.  And what about programs that don't get run
  203. from a login shell?  For example, all the background daemons run out of
  204. /etc/rc?  Or programs run from cron?  Or from at?  Or programs run while
  205. single user?  None of these programs get a TZ.
  206.  
  207. Does it matter if a non-interactive program is in the wrong time zone?
  208. After all, the files it touches are touched in GMT.  The answer is yes:
  209. background processes generally keep logs, and the logs have time stamps.
  210. For example, uucico gets started hourly out of crontab, and this means
  211. that almost any uucico on the system (from crontab or from another system
  212. logging in) will run in the wrong time zone.  Since L.sys has restrictions
  213. on the times it can dial out, being in the wrong time zone can cause calls
  214. to be placed during the day, even if this is supposedly forbidden in L.sys.
  215. Also, of course, things like "date > /dev/console" every hour from crontab
  216. will have problems.
  217.  
  218. It turns out that System III has a "default time zone" which is used by
  219. localtime if there is no TZ variable.  On every version of System III or
  220. V I've ever used, this is set to the time zone of the developer.  It's
  221. EST in the traditional versions from AT&T.  It's PST in Xenix.  So the
  222. developers of the system never see any problems - uucp logs are right,
  223. for example, and csh users still get the right time.  Until they ship
  224. the system out of their time zone.
  225.  
  226. This problem isn't really that hard to fix.  You just have init open
  227. a configuration file when it starts up, and set its own environment
  228. from there.  (If you're willing to have init open files that early.)
  229.  
  230. But it turns out there is an even more serious problem with the TZ
  231. environment variable method.  It's a security problem.  Let's say the
  232. system administrator has configured UUCP to only call out when the
  233. phone rates are low, because the site is poor and can't afford daytime
  234. rates, or to keep the machine load low during the day.  But some user
  235. wants to push something through right away.  He sets TZ to indicate that
  236. he's in, say, China.  Now, he starts up a uucico (or a cu.)  The localtime
  237. routine believes the forged TZ and thinks it's within the allowed time zone,
  238. and an expensive phone call is placed.  The log will be made in the wrong
  239. time zone too, so unless the SA is sharp, he won't notice until the phone
  240. bill shows up.
  241.  
  242. The fundamental difference between the two approaches is that the V7
  243. method makes the timezone a per-system entity, while the Sys III method
  244. makes the timezone a per-process entity.  While an argument can be made
  245. that users dialing in from other time zones might want their processes
  246. to be in their local time zone, this isn't a very strong argument.
  247. (I've never seen anyone actually do it.)  [This is a symptom of a disease
  248. that is affecting UNIX: a tendency to put things in the environment that
  249. are not per-process.  David Yost pointed out, for example, that TERM is
  250. not a per-process entity, it's a per-port entity.  Berkeley's V6 had a
  251. file in /etc with per-port terminal codes, similar to /etc/utmp, but
  252. we've actually taken a step backwards by putting it into the environment.
  253. Take a look at tset and people's .profile's and .login's to see the
  254. complexity this decision has cost us.]
  255.  
  256. So anyway, so far I've argued that the System III method is inadequate.
  257. How about the V7 method?
  258.  
  259. The V7 method doesn't suffer from any of the weaknesses described above.
  260. It does require a system call to get the time zone, which is a bit more
  261. overhead than a getenv, and the kernel doesn't have any business knowing
  262. about time zones.  (The same argument could be made that the kernel doesn't
  263. have any business knowing the host name, too, but both System III and
  264. 4.2BSD have that information in the kernel, and it works awfully well.)
  265.  
  266. The weaknesses in the V7/4.2BSD method are in the time zone name
  267. (since it's computed from a table and the offset value) and in the
  268. rule for deciding when DST begins and ends.  The second problem is
  269. also present in the Sys III method.
  270.  
  271. Suppose localtime finds out that the offset is +60, that is, we are
  272. one hour east of GMT.  What time zone name do we use?  Well, if we're
  273. France, it might be MET (Middle European Time.)  If we're in Germany,
  274. it might be MEZ (Mitten European Zeit.)  I probably have the specifics
  275. wrong (I doubt that the French tell time in English) but you get the
  276. idea.  An offset just specifies 1/24 of the world, and moving north/south
  277. along that zone you can get a lot of countries, each with widely varying
  278. languages and time zone names.  Even Alaska/Hawaii had trouble sharing
  279. a time zone.  (The mapping in the other direction is ambiguous too, there
  280. has been lots of amusement and frustration from code that thought BST was
  281. Bering Standard Time, when run in England in July and fed the local
  282. abbreviation for British Summer Time.  This is why electronic mail and
  283. news standards currently recommend that messages be stamped in UTC.
  284. Or is that UT?  Or GMT?  Ick.)  So far we've survived because there tends
  285. to be a dominant time zone name in each zone where UNIX has appeared, and
  286. source has been present for the places that have to change it.  But as UNIX
  287. becomes more popular in places like Africa, Eastern Europe, and Asia, this
  288. will get a lot messier, especially with binary licenses.
  289.  
  290. The decision about when daylight time begins and ends is more interesting.
  291. If you read the manual page or the code, you'll discover that localtime
  292. knows rules like "the 3rd Sunday in October" and has a table with special
  293. hacks for 1974 and 1975, when the US Congress decided to change things.
  294. This table "can be extended if necessary".  Of course, extending the table
  295. means modifying the source and recompiling the world.  Might be hard on
  296. all those binary systems, especially the ones without a programmer on staff.
  297. This hasn't been a problem yet, but now Congress is making noises about
  298. moving the dates around a bit.  It's a controversial proposal, and I wouldn't
  299. be surprised if they try two or three rules before the pick one they like.
  300. Given all the old releases still out there, and the development time for
  301. a new release, we need about a 2 year warning of such an impending change.
  302. We'll be lucky to get 6 months.
  303.  
  304. So what do we do about all this?  Well, I think the basic requirements are
  305. that
  306.  
  307.  (1) The time zone should be a per-system entity.  There should only be
  308.      one place on each system where the zone is specified to ensure that
  309.      all programs on the system use the same notion of time zone.
  310.  
  311.  (2) The time zone offset, names, and daylight conventions should be
  312.      easily configured by the system administrator.  We should have a
  313.      standard that allows zone offsets in minutes (maybe even seconds,
  314.      I don't know how precise Saudi Arabia needs), zone names of arbitrary
  315.      length (they are 7 characters in Australia, for example), whether
  316.      we use daylight time at all, when daylight time begins, and when it ends.
  317.      The latter two must be allowed to vary as a function of the year.
  318.  
  319. The exact method for doing this isn't clear.  We certainly need a configuration
  320. file.  But interpreting this file on each call to ctime isn't a good idea.
  321. It would be nice to have /etc/rc look at the source file and plug a simple
  322. interpretation of it into either a binary file or the kernel, but we have
  323. to worry about what happens if the system is up (and processes are running)
  324. when we convert over to or from daylight time.  Perhaps cron has to run a
  325. program to update it every hour.  You could have cron only run this program
  326. twice a year, but this would require putting the configuration information
  327. into crontab (which doesn't understand things like "3rd Sunday in October")
  328. and would lose if the system happened to be down at conversion time.  Also,
  329. the algorithm has to work for dates that aren't this year, e.g. "ls -l" of
  330. an old file.
  331.  
  332. How much of this does P1003 need to specify?  After all, if they are just
  333. specifying sections 2 and 3, then the file format and the method for making
  334. sure things are right should be up to the implementor.  Well, at a minimum,
  335. we need ctime and localtime.  We also a standard way to get the time zone
  336. name and offset - there is a lot of ifdeffed code out there that either
  337. looks for TZ or calls ftime - and whether daylight time applies (and by
  338. how much) for a given time.
  339.  
  340. But there's more.  When the mood strikes Congress to change the rules and
  341. gives us 2 months notice, it ought to be possible to publish a new table
  342. that everybody with a P1003 system can just type in.  It would be nice if
  343. the location and format of this table were standardized.  (After all, the
  344. US Congress doesn't set the rules for the rest of the world, and they are
  345. just as subject to having arbitrary bodies with different rules.)
  346.  
  347. Finally, there needs to be a requirement that the time zone always work.
  348. Some discussion of these issues should be present.  Otherwise, some
  349. implementor is going to think that the System III method works adequately.
  350.  
  351.     Mark Horton
  352.  
  353. Volume-Number: Volume 6, Number 3
  354.  
  355. From jsq  Tue Mar 25 15:39:20 1986
  356. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  357. Newsgroups: mod.std.unix
  358. Subject: Re: time zones
  359. Message-Id: <4526@ut-sally.UUCP>
  360. Organization: IEEE/P1003 Portable Operating System Environment Committee
  361. Date: 25 Mar 86 21:39:09 GMT
  362. Draft-9: TZ
  363.  
  364. From: gwyn@BRL.ARPA (VLD/VMB)
  365. Date:     Tue, 25 Mar 86 10:57:52 EST
  366.  
  367. Not all users of a particular system are necessarily in the
  368. same time zone.
  369.  
  370. [ Right.  And past times back at least to the UNIX epoch have
  371. to be accounted for.  There are possibly a few other points of
  372. that sort which weren't mentioned in the original article.  -mod ]
  373.  
  374. Volume-Number: Volume 6, Number 4
  375.  
  376. From jsq  Thu Mar 27 17:07:51 1986
  377. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  378. Newsgroups: mod.std.unix
  379. Subject: write eof
  380. Message-Id: <4539@ut-sally.UUCP>
  381. Organization: IEEE/P1003 Portable Operating System Environment Committee
  382. Date: 27 Mar 86 23:07:29 GMT
  383. Draft-9: 6.4.2
  384.  
  385. From: cc1@LOCUS.UCLA.EDU (Michael Gersten)
  386. Date:    Wed, 26 Mar 86 22:54:22 PST
  387. Organization: Ucla Computer Club (disclaimer)
  388.  
  389. This is a request for proposal.
  390.  
  391. One thing unix REALLY needs is a 'write eof' ability.
  392.  
  393. In particular, how about
  394. int writeeof(int fd);
  395.  
  396. which takes a file discriptor as an argument, returns an int
  397. (for the purpose of success/failure), and does the following:
  398.  
  399. On a pipe: indicates thaat a read at that point should return EOF
  400. without advancing the read pointer (or advancing it beyond the EOF marker).
  401. Purpose: To allow filter program to filter more than just a single
  402. command (ex: filter | csh. csh will then run other commands, whose
  403. standard input will be output of filter. EOF could be used to terminate
  404. such commands)
  405.  
  406. On a regular file: Indicate that the file should be truncated to this
  407. point, and excess space freed by the system.
  408. Purpose: obvious.
  409.  
  410. On a special file (mag tape): Write an end of tape marker
  411. Purpose: obvious
  412.  
  413. On all other files: Either implementation defined or return(-1) if
  414. nothing.
  415.  
  416.  
  417. Note: This is my own opinion. It is not that of the UCLA computer club,
  418. nor of UCLA in general. But I bet there are a lot of unix hacks
  419. out there who just might be interested in this.
  420.             Michael Gersten
  421. -- 
  422. disclaimer | ihnp4!ucla-cs!cc1 | Michael Gersten | Joke: 412
  423.  
  424. Volume-Number: Volume 6, Number 5
  425.  
  426. From jsq  Fri Mar 28 10:05:05 1986
  427. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  428. Newsgroups: mod.std.unix
  429. Subject: P1003 publicity, Denver minutes, Draft 7, future meetings
  430. Message-Id: <4544@ut-sally.UUCP>
  431. Organization: IEEE/P1003 Portable Operating System Environment Committee
  432. Date: 28 Mar 86 16:04:53 GMT
  433. Draft-9: Access.Standards D7.Access P1003.schedule
  434.  
  435. At the Denver meeting of the P1003 working group, it was decided to
  436. publish a summary of the minutes of each meeting shortly afterwards
  437. in mod.std.unix, in the USENIX newsletter ;login, and in UNIX Review,
  438. if possible.  The USENIX board, at their Napa meeting last week,
  439. expressed strong interest in having that in ;login (they're also
  440. looking for technical papers).  I haven't approached UNIX Review yet.
  441.  
  442. The Denver minutes have been delayed due to logistical reasons,
  443. but I expect to see them some time next week and will then work
  444. on a summary to post.
  445.  
  446. The Denver meeting was used to resolve most remaining balloting
  447. objections to Draft 6.  The result of that and of some further changes
  448. made after communication with balloters will be Draft 7, which has
  449. taken longer than expected to produce due to the sheer volume of
  450. balloting comments.  Draft 7, with some minor formatting changes,
  451. should soon be published in paper form by IEEE as the Trial Use
  452. Standard.  An on-line copy which "represents" Draft 7 will likely
  453. be made available through this newsgroup some time next week.
  454.  
  455. There are three more meetings of the IEEE P1003 working group this year:
  456.  
  457.     16-18 April    Florence, Italy, the week before EUUG
  458.     9-11 June    Atlanta, Georgia, the week of USENIX
  459.     ? September    Palo Alto, California, still tentative
  460.  
  461. There will presumably also be a meeting just before the winter
  462. USENIX convference, which will probably be in Washington, D.C.
  463. in February 1987.
  464.  
  465. Volume-Number: Volume 6, Number 6
  466.  
  467. From jsq  Sat Mar 29 11:35:42 1986
  468. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  469. Newsgroups: mod.std.unix
  470. Subject: 1003.1 Trial Use Standard to be published in April
  471. Message-Id: <4555@ut-sally.UUCP>
  472. Organization: IEEE/P1003 Portable Operating System Environment Committee
  473. Date: 29 Mar 86 17:35:28 GMT
  474. Draft-9: Trial.Use
  475.  
  476. I have received this from the committee chair:
  477.  
  478.     We have Standards Board Approval.  The 1003.1 Trial Use Standard is
  479.     now offical. (1003.2 will be used to denote the shell/tools document).
  480.     We will have published copies in Mid-April ... cost $19.95, with bulk
  481.     purchasing discounts available.  Contact:
  482.  
  483.         IEEE Service Center
  484.         445 Hose Ln.
  485.         Piscataway, NJ 08854
  486.  
  487.     ask for 1003.1 Standard - stock number SH10546
  488.  
  489. Volume-Number: Volume 6, Number 7
  490.  
  491. From jsq  Sat Mar 29 20:37:18 1986
  492. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  493. Newsgroups: mod.std.unix
  494. Subject: Re: writeeof()
  495. Message-Id: <4556@ut-sally.UUCP>
  496. Organization: IEEE/P1003 Portable Operating System Environment Committee
  497. Date: 30 Mar 86 02:37:06 GMT
  498. Draft-9: 6.4.2
  499.  
  500. From: gwyn@BRL.ARPA (VLD/VMB)
  501. Date:     Sat, 29 Mar 86 0:57:42 EST
  502.  
  503. I don't think P1003 should be trying to invent new facilities.
  504.  
  505. [ I don't see anywhere in the original posting where such was suggested.
  506. Nor does an article appearing in this newsgroup imply that P1003 is
  507. going to act on it.  See Volume 6, Number 2.  -mod ]
  508.  
  509. Suggestions like this should probably be forwarded to the
  510. UNIX-WIZARDS (net.unix-wizards) mailing list.
  511.  
  512. [ Maybe.  I was so pleased to see *anything* that wasn't on timezones....
  513. -mod ]
  514.  
  515. In the case of writeeof(), suppose you write an EOF 1M bytes
  516. into a regular disk file, then write another 2M bytes into the
  517. same file, then read the file.  According to the suggestion,
  518. the first EOF would be gone (implementation would probably
  519. also require this).  But in the pipe example, multiple EOFs
  520. would stay around and be detected upon reading the pipe.
  521. (At least using stream i/o, one could conceivably slip an EOF
  522. control packet into the pipe stream, so this is implementable.)
  523. But look:  Files and pipes would not behave the same; why
  524. weaken one of UNIX's strongest design strengths unnecessarily?
  525.  
  526. I suppose one could argue more reasonably for the inclusion
  527. of a truncate() primitive, to shorten an existing file of
  528. any type; Fortran could use this.  On the other hand, why
  529. encourage the use of Fortran on UNIX?
  530.  
  531. Volume-Number: Volume 6, Number 8
  532.  
  533. From jsq  Mon Mar 31 15:56:01 1986
  534. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  535. Newsgroups: mod.std.unix
  536. Subject: Re: writeeof()
  537. Message-Id: <4566@ut-sally.UUCP>
  538. References: <4556@ut-sally.UUCP>
  539. Reply-To: thomas@utah-gr.UUCP (Spencer W. Thomas)
  540. Organization: IEEE/P1003 Portable Operating System Environment Committee
  541. Date: 31 Mar 86 21:55:01 GMT
  542. Draft-9: 6.4.2
  543.  
  544. From: thomas%utah-gr@UTAH-CS.ARPA (Spencer W. Thomas)
  545. Date: Sun, 30 Mar 86 17:22:21 MST
  546. Organization: University of Utah CS Dept
  547.  
  548. Of course, 4.[23] BSD already has a ftruncate() primitive, which does
  549. exactly what the original poster wants on files.  One could presumably
  550. make it have "EOF" semantics when applied to pipes (since the behavior
  551. there is currently an error).
  552.  
  553. -- 
  554. =Spencer   ({ihnp4,decvax}!utah-cs!thomas, thomas@utah-cs.ARPA)
  555.  
  556. Volume-Number: Volume 6, Number 9
  557.  
  558. From jsq  Wed Apr  2 06:22:54 1986
  559. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  560. Newsgroups: mod.std.unix
  561. Subject: Re: 1003.1 Trial Use Standard to be published in April
  562. Message-Id: <4582@ut-sally.UUCP>
  563. Organization: IEEE/P1003 Portable Operating System Environment Committee
  564. In-Reply-To: <4555@ut-sally.UUCP>
  565. Date: 2 Apr 86 12:22:43 GMT
  566. Draft-9: Trial.Use
  567.  
  568. From: gatech!spaf@seismo.UUCP (Gene Spafford)
  569. Date: Tue, 1 Apr 86 21:25:37 EST
  570. Organization: Software Engineering Research Center (SERC), Georgia Tech
  571.  
  572. In article <4555@ut-sally.UUCP> you write:
  573. >I have received this from the committee chair:
  574. >
  575. >    We have Standards Board Approval.  The 1003.1 Trial Use Standard is
  576. >    now offical. (1003.2 will be used to denote the shell/tools document).
  577. >    We will have published copies in Mid-April ... cost $19.95, with bulk
  578. >    purchasing discounts available.  Contact:
  579. >
  580. >        IEEE Service Center
  581. >        445 Hose Ln.
  582. >        Piscataway, NJ 08854
  583. >
  584. >    ask for 1003.1 Standard - stock number SH10546
  585. >
  586.  
  587. I'm dyslexic sometimes, too -- that's supposed to be "445 Hoes Lane"
  588.  
  589. Cheers,
  590. --gene
  591.  
  592. Volume-Number: Volume 6, Number 10
  593.  
  594. From jsq  Mon Apr  7 17:16:49 1986
  595. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  596. Newsgroups: mod.std.unix
  597. Subject: Access to standards-related documents
  598. Message-Id: <4631@ut-sally.UUCP>
  599. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  600. Date: 7 Apr 86 23:16:27 GMT
  601. Draft-9: Access.Standards
  602.  
  603. From: mtsbb!lav@ihnp4.UUCP (Lee Vallone)
  604. Date: Mon, 7 Apr 86 13:13:48 cst
  605. Subject: mod.std.unix
  606.  
  607. I was reading mod.std.unix for the first time and would appreciate
  608. if you could clarify some things for me.
  609.  
  610. 1)  What is the aim of P1003?  What is P1003.
  611.  
  612. [ It's often called the UNIX Standards Committee, but its real name is
  613. IEEE 1003 Portable Operating System for Computer Environments Committee.
  614. (I've finally remembered to update the Organization line from the former
  615. name of Portable Operating Systems Environment Committee.)
  616. It's a descendent of the /usr/group Standards Committee that
  617. produced the /usr/group Standard, which is based on System III.
  618. Many of the same people are on the IEEE 1003 committee.
  619.  
  620. According to the Foreword of the current P1003 document:
  621.  
  622.     The purpose of this document is to define a standard
  623.     operating system interface and environment based on the
  624.     UNIX Operating System documentation to support application
  625.     portability at the source level.  This is intended for
  626.     systems implementors and applications software developers.
  627.  
  628. The Abstract adds:
  629.  
  630.     This interface is a complement to the C Programming Language
  631.     in the C Information Bulletin prepared by Technical Committee X3J11
  632.     of the Accredited Standards Committee X3, Information Processing
  633.     Systems, further specifying an environment for portable application
  634.     software.
  635.  
  636. P1003 Draft 7 has just been approved as the 1003.1 Trial Use Standard.
  637. (1003.2 will be used to denote the shell/tools document.)
  638. Published copies will be available in mid-April at $19.95,
  639. with bulk purchasing discounts available.  Contact:
  640.  
  641.         IEEE Service Center
  642.         445 Hoes Ln.
  643.         Piscataway, NJ 08854
  644.  
  645. Ask for 1003.1 Standard - stock number SH10546.
  646.  
  647. The Trial Use Standard will be available for comments for a period
  648. such as a year, after which a Full Use Standard will be produced.
  649.  
  650. There is a paper mailing list by which interested parties may get
  651. copies of drafts of the standard.  To get on it, or to submit comments
  652. directly to the committee, mail to:
  653.  
  654.         James Isaak
  655.         Chairperson, IEEE/CS P1003
  656.         Charles River Data Systems
  657.         983 Concord St.
  658.         Framingham, MA 01701
  659.         decvax!frog!jim
  660.  
  661. Sufficiently interested parties may join the working group.
  662. The next scheduled meetings of the working group of the committee are
  663.  
  664.     15-18 April    Florence, Italy (the week before EUUG)
  665.     9-11 June    Atlanta, Georgia (the week of USENIX)
  666.     ? September    Palo Alto, California?
  667.     ? February 1987    Washington, D.C. (the week of USENIX)
  668.  
  669. There is also a balloting group (which intersects with the working group).
  670. This is more difficult.  Contact the committee chair for details.
  671. I will repost them in this newsgroup if there is sufficient interest.
  672. -mod ]
  673.  
  674.     Is this supposed to be a new standard that is
  675.     not equivalent to either BSD4.x or SYS V?
  676.  
  677. [ Yes and no.  It is not precisely the same as any existing system,
  678. but it has been carefully designed to not outlaw any major variant,
  679. including not only System V and 4.2BSD, but also hosted systems,
  680. networked systems, etc.  Representatives of major vendors of both
  681. System V and 4.2BSD are on the committee.  -mod ]
  682.  
  683.     Or is it enhancements that would be recommended to the
  684.     developers of both of the above?
  685.  
  686. [ Not precisely.  There are very few innovations in the standard,
  687. because it is intended to be a standard.  However, some facilities
  688. will have to be implemented differently on top of existing systems'
  689. facilities to meet the standard.  -mod ]
  690.  
  691. 2)  I would like to keep up with future UNIX enhancements
  692.     (specifically SYS V).  One article in mod.std.unix made
  693.     reference to:
  694.     - a USENIX newsletter - ;login
  695.  
  696. [ ;login:  The USENIX Association Newsletter is sent free of
  697. charge to all members of the Association.  Their address is
  698.     USENIX Association
  699.     P.O. Box 7
  700.     El Cerrito, CA 94530
  701.     (415) 528-8649
  702.     {ucbvax,decvax}!usenix!office
  703.  
  704. Volume 10, Number 4, October/November 1985 has my article on IEEE 1003.
  705.  
  706. I am the Institutional Delegate from the USENIX Association to IEEE 1003.
  707.  
  708. -mod ]
  709.  
  710.     - a magazine? called UNIX Review
  711.  
  712. [ The two main general circulation magazines about the UNIX system are
  713.  
  714.     UNIX REVIEW            UNIX/WORLD
  715.     Miller Freeman Publications Co.    Tech Valley Publishing
  716.     500 Howard Street        444 Castro St.
  717.     San Francisco, CA 94105        Mountain View, CA 94041
  718.     (415) 397-1881            (415) 940-1500
  719.  
  720. It is my personal opinion that the one on the left is more technical.  -mod ]
  721.     
  722.     Who do I contact to get on the mailing list or subscribe to
  723.     the above?
  724.  
  725. [ Some documents frequently referred to by the 1003 committee:
  726.  
  727. X/OPEN PORTABILITY GUIDE (The Green Book).
  728.  
  729. X/OPEN is "A Group of European Computer Manufacturers" who have produced
  730. a document intended to promote the writing of portable facilities.
  731. Their flyer remarks (in five languages), "Now we all speak the same
  732. language in Europe."
  733.  
  734. The book is published by
  735.  
  736.     Elsevier Science Publishers
  737.     Book Order Department
  738.     PO Box 211
  739.     1000 AE Amsterdam
  740.     The Netherlands
  741.  
  742. or, for those in the U.S.A. or Canada:
  743.  
  744.     Elsevier Science Publishers Co Inc.
  745.     PO Box 1663
  746.     Grand Central Station
  747.     New York, NY 10163
  748.  
  749. The price is Dfl 275,00 or USD 75.00.  According to the order form,
  750. "This price includes the costs of one update which will be mailed
  751. automatically upon publication."  They take a large number of credit
  752. cards and other forms of payment.
  753.  
  754.  
  755. The System V Interface Definition (The Purple Book)
  756.  
  757.     To purchase the System V Interface Definition, write to:
  758.  
  759.         System V Interface Definition
  760.         Select Code 307-127
  761.         AT&T Customer Information Center
  762.         2833 North Franklin Road
  763.         Indianapolis, IN 46219
  764.  
  765.     Be sure to include the address the document should be shipped to
  766.     and a check or money order made payable to AT&T.
  767.  
  768.     or call
  769.  
  770.             1-800-432-6600
  771.  
  772.     and ask for operator 77. Give the operator the Select Code
  773.     307-127. (You must have a major credit card to order by phone.)
  774.  
  775. The price is about thirty U.S. dollars.
  776.  
  777.  
  778. The /usr/group Standard:
  779.  
  780.         /usr/group Standards Committee
  781.         4655 Old Ironsides Drive, Suite 200
  782.         Santa Clara, California 95050
  783.  
  784. It was $15.00 as of January, 1985.
  785.  
  786.  
  787. X3J11 (C Standards Committee):
  788.  
  789.         Thomas Plum
  790.         Vice Chair, ANSI X3J11 Committee
  791.         Plum Hall Inc.
  792.         1 Spruce Avenue
  793.         Cardiff, New Jersey 08232
  794.  
  795. -mod ]
  796.  
  797.                 Thanks in advance
  798.  
  799. [ No problem.  If anyone wants other information, let me know.  -mod ]
  800.  
  801.                 Lee Vallone
  802.  
  803. {ihnp4, mtuxo}!mtsbb!lav
  804.  
  805. Volume-Number: Volume 6, Number 11
  806.  
  807. From jsq  Tue Apr  8 17:21:21 1986
  808. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  809. Newsgroups: mod.std.unix
  810. Subject: Re: Access to standards-related documents
  811. Message-Id: <4639@ut-sally.UUCP>
  812. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  813. In-Reply-To: <4631@ut-sally.UUCP>
  814. Date: 8 Apr 86 23:20:50 GMT
  815. Draft-9: Access.Standards.SVID
  816.  
  817. From: decwrl!decvax!bellcore!gc49!smithrd@pyramid.UUCP (Randy D. Smith)
  818. Date: Tue, 8 Apr 86 11:55:58 est
  819.  
  820. In article <4631@ut-sally.UUCP> you write:
  821. >    and ask for operator 77. Give the operator the Select Code
  822. >    307-127. (You must have a major credit card to order by phone.)
  823.  
  824. Looking inside my SVID *Issue 2* I notice that its select code is
  825. 320-011 and 320-012.  My catalog agrees with your 307-127 for Issue 1.
  826. I'd recommend people get Issue 2, though.  The numbers I gave are for
  827. the paperback, two volume version.
  828. -- 
  829.                 Randy D. Smith    (919) 279-5312
  830.               AT&T Federal Systems, Guilford Center, NC
  831.                     ...!ihnp4!gc49!smithrd
  832.  
  833.  
  834. Volume-Number: Volume 6, Number 12
  835.  
  836. From jsq  Sat Apr 12 18:01:01 1986
  837. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  838. Newsgroups: mod.std.unix
  839. Subject: Guest Moderator
  840. Message-Id: <4687@ut-sally.UUCP>
  841. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  842. Date: 13 Apr 86 00:00:49 GMT
  843. Draft-9: mod.std.unix
  844.  
  845. John Chambers of MCC will be guest moderator while I'm in the Europe
  846. for the IEEE 1003 committee meeting in Florence.  Posting may be done
  847. and information may be gotten in the same ways as usual:  John has always
  848. been on the std-unix and std-unix-request aliases.
  849.  
  850. I hope to repost some of the later articles from the time zone
  851. discussion before I leave since many people seem to want them.
  852. The P1003 committee chair has requested a summary of the whole
  853. discussion.  It doesn't look like I'll have time to do that now
  854. (it's a quarter megabyte of text).  Any volunteers?  :-)
  855.  
  856. Volume-Number: Volume 6, Number 13
  857.  
  858. From jbc  Sun May 11 01:23:03 1986
  859. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Guest Moderator, John B. Chambers)
  860. Newsgroups: mod.std.unix
  861. Subject: another comment on tape file marks
  862. Message-Id: <4886@ut-sally.UUCP>
  863. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  864. Date: 11 May 86 06:22:48 GMT
  865. Draft-9: 10.0
  866.  
  867.  
  868. Attached is an article I just sent to net.unix-wizards.  Would the standards
  869. committee be interested in pursuing this?
  870.  
  871. -- Greg Noel, NCR Rancho Bernardo    Greg@ncr-sd.UUCP or Greg@nosc.ARPA
  872.  
  873.  
  874. In article <520@sdcc13.UUCP> bparent@sdcc13.UUCP (Brian Parent) writes:
  875. >I'm having trouble with cpio going to multiple reels.  It seems to 
  876. >write to the additional reels fine, but I have yet to successfully 
  877. >read the second reel.
  878. >  ..... [An extended description of the problem.  He's doing it right.]
  879.  
  880. Although there are some bugs in cpio having to do with multiple volumes, this
  881. isn't one of them.  This particular problem happens to be brain damage in the
  882. way Unix tape drivers work, and is also one of my pet peeves, so excuse me for
  883. a moment while I dig out my soapbox.  (BTW, I'll bet that you have some sort
  884. of buffered tape drive, possibly a streamer.  The problem occurs on unbuffered
  885. drives, but it happens much more often on buffered drives.)
  886.  
  887. The problem is this:  if the tape drive asserts EOT while writing or reading
  888. a record, the driver returns an error.  That's it; that's the whole problem.
  889.  
  890. The actual senario goes like this:  cpio writes a block that crosses the EOT
  891. marker, so it gets an error back.  (Bug: cpio doesn't close the file at this
  892. point, so there aren't even any EOF marks on the end of tape, either!)  Note
  893. that the block is actually written on the tape.  After you have mounted the
  894. new tape, the block is written \again/ at the beginning of the new reel.  (Also
  895. note that the file is closed at this point, so if you specified a no-rewind tape
  896. device, it puts the EOF markers at the \beginning/ of the new tape before it
  897. starts to write.)  When you read these tapes back, you are depending upon the
  898. fact that reading the block that crosses the EOT will also get the error so
  899. that you swap tapes at exactly the same point.
  900.  
  901. Well, tain't so.  On unbuffered tape drives, if the EOT mark happens to be in
  902. the inter-record gap, tape drives will differ as to which which block gets the
  903. EOT indication -- it seems to be a matter of timing and I don't understand it.
  904. Sometimes it shows up as getting a duplicated block, and sometimes as a dropped
  905. block.  Different brands of tape drives seem to be somewhat internally
  906. consistant, but you can't even depend upon that.  On a buffered tape drive, the
  907. problem is worse, since the EOT indication is typically given several blocks
  908. \after/ the block that actually writes across the marker; on these drives, it
  909. is not possible to read back the blocks at the end, since the EOT is detected
  910. synchronously on reads.  In any case, the missing or extra block(s) cause a
  911. phase error at some later point.
  912.  
  913. Now, if you are considering flaming about poor hardware implementations, don't.
  914. The hardware designers have a \standard/ to abide by, and they did so.  That
  915. standard doesn't say that the EOT marker has to be synchronous with the actual
  916. block that caused it, it only says that it has to happen.  It is intended as a
  917. warning that the tape is nearly out; there are still (typically) several tens
  918. of feet left on the tape; that's a lot of room.  Making the reporting of the
  919. EOT only semi-synchronous is a good engineering compromise.  Writing after the
  920. EOT is not an error, but you need to be careful that you don't write a lot --
  921. in fact, almost all standard-compliant implementations routinely write several
  922. blocks past the EOT (due to buffering considerations) before writing the EOV
  923. labels and switching to a new reel.
  924.  
  925. No, the problem is with Unix's treatment of tape volumes.  Note that as it
  926. stands, Unix cannot even read a multi-volume tape produced on, say, an IBM
  927. system -- several blocks at the end of each reel are simply inaccessible.
  928. And files produced by cpio, where the last block on the tape has no EOF after
  929. it, are difficult to read on an IBM machine, which expects one.
  930.  
  931. So, what are we to do?  The cure is surprising -- and surprisingly simple:
  932. make Unix comply with the standard.  I don't know why it hasn't been done --
  933. although it would break any existing multi-reel cpio volumes (as far as I know,
  934. that's about the only program that ever creates multi-volume tapes by looking
  935. for an EOT), it won't break any other existing code (or it shouldn't), and new
  936. tapes would be guaranteed to be consistant across all possible machines.  It
  937. shouldn't be any problem to change, since multi-volume tapes don't seem very
  938. common -- notice the dearth of replies to this article since it was posted;
  939. there can't be many people who encounter this problem.
  940.  
  941. The mods are simple: when writing a tape, if you get an EOT, backspace the
  942. record ("unwrite the record"), write a EOF marker (so you can't read it back),
  943. backspace again (in front of the EOF, so a close (or a shorter write) will
  944. work as expected), and return an error.  If you look closely, this is exactly
  945. what happens if you try to write across the end of a filesystem -- if you try
  946. to cross the boundry on a write, the entire request is rejected (i.e., it is
  947. not turned into a partial write) so that if you follow with a shorter write
  948. that happens to fit, it will succeed.  This actually brings the tape semantics
  949. in closer alignment with that of the disks.
  950.  
  951. On a read that crosses an EOT marker, you do \nothing/.  You've made sure by
  952. the change above that there should always be an EOF somewhere near the EOT, so
  953. the logic for EOF will keep you from running off the end of the tape.  And now
  954. you can read industry-standard multi-reel tapes.......
  955.  
  956. I don't expect that this will ever happen.  Unless some statment specificly
  957. requiring this is placed in one of the Unix standards (SVID, /usr/group, or
  958. P1003 (or is it P1006?  Something like that, anyway)), nobody will be motivated
  959. to actually go to the work of modifying the device drivers to fix this.  And
  960. Unix will continue to be a ghetto, at least as far as tape compatibility with
  961. the rest of the world is concerned.......  Are there any standards folks out
  962. there who will accept this gauntlet and prove me wrong?
  963.  
  964.  
  965. Volume-Number: Volume 6, Number 14
  966.  
  967. From jbc  Sun May 11 01:35:40 1986
  968. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Guest Moderator, John B. Chambers)
  969. Newsgroups: mod.std.unix
  970. Subject: ioctl vs. iocntl (April 3rd draft)
  971. Message-Id: <4887@ut-sally.UUCP>
  972. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  973. Date: 11 May 86 06:35:27 GMT
  974. Draft-9: 7.0
  975.  
  976. >From allegra!phri!roy@seismo.UUCP Fri May  2 22:44:44 1986
  977. Date: Mon, 28 Apr 86 11:55:42 edt
  978. From: allegra!phri!roy@seismo.UUCP (Roy Smith)
  979.  
  980.     In section C.3 of the April 3rd draft, it is proposed that ioctl()
  981. be replaced with iocntl().  While I aggree with the basic arguments, I
  982. think iocntl() is a bad name for the new call.
  983.  
  984.     Somebody once said that your code should pass the telephone test;
  985. if you can't read it to somebody over the phone and have them understand
  986. it, it's too complex.  It has also been said (again I can't remember by
  987. who) [Oh, Kernighan and Plauger, among many others, if you're just looking
  988. for an authority to cite -- mod.] that it is bad style to use variable 
  989. names that differ only slightly; using both maxij and maxji for distinct 
  990. but similar things is bound to cause confusion when somebody has to read 
  991. it later. [Or port code that abuses flexnames, though not a problem here.
  992. -- mod.]
  993.  
  994.     Surely "ioctl" and "iocntl" fail both these tests of programming
  995. clarity.  I'd like to see the name "iocntl" changed without changing the
  996. proposed functionality.  Perhaps "iofunc" or even "iox".  More descriptive
  997. would be "special_io", but this is bad if you want to appease 7 character
  998. name compilers.
  999.  
  1000. [Any comments from the people to whose hearts "fcntl" may have once been
  1001. near and dear? -- mod]
  1002.  
  1003. Roy Smith, {allegra,philabs}!phri!roy
  1004. System Administrator, Public Health Research Institute
  1005. 455 First Avenue, New York, NY 10016
  1006.  
  1007. Volume-Number: Volume 6, Number 15
  1008.  
  1009. From jbc  Sun May 11 01:40:49 1986
  1010. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Guest Moderator, John B. Chambers)
  1011. Newsgroups: mod.std.unix
  1012. Subject: Report from Florence IEEE P1003 meeting
  1013. Message-Id: <4888@ut-sally.UUCP>
  1014. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1015. Date: 11 May 86 06:40:35 GMT
  1016. Draft-9: P1003.IEEE
  1017.  
  1018. I am in receipt of a letter from John Quarterman, the official moderator
  1019. of this newsgroup, requesting that his report from the IEEE 1003 meeting 
  1020. in Florence be posted to this newsgroup.
  1021.  
  1022. That report, transcribed as accurately as my ability to decipher his
  1023. handwriting permits :-), follows herewith:
  1024.  
  1025. ................
  1026. 1986 April 23
  1027.  
  1028.  
  1029.      The timezone discussion was of  much  interest  to  the
  1030. IEEE  1003  committee,  who  would like to include something
  1031. appropriate in a Full Use Standard. I delivered  a  copy  of
  1032. Volume  5  of mod.std.unix (all 155 pages). To the relief of
  1033. the committee, I also included a summary index  that  I  had
  1034. done  on  the  plane  over. More details after the following
  1035. background.
  1036.  
  1037.      There are now several levels  of  documents  associated
  1038. with IEEE 1003:
  1039.  
  1040.         - Standards (Trial Use / Full Use)
  1041.         - Proposed Draft Standards
  1042.         - Proposals
  1043.         - Requests For Comments (RFCs)
  1044.         - Comments
  1045.  
  1046.      The latter two categories are new as  of  the  Florence
  1047. meeting. Most everything posted in mod.std.unix and remotely
  1048. related to IEEE 1003 is now a Comment.
  1049.  
  1050.      Some articles may become Requests for Comments  by  the
  1051. moderator  obtaining  an  RFC number from the 1003 secretary
  1052. (Steve Head) and reposting the article with the  RFC  number
  1053. in  the  Subject.  Mark  Horton's  original timezone article
  1054. would have  made  an  appropriate  RFC,  for  instance.  The
  1055. submitter  can  request  that  an article be an RFC, perhaps
  1056. before it is originally posted.
  1057.  
  1058.      A proposal is a  formal  request  to  add,  delete,  or
  1059. correct  specific  wording  in  the  current  P1003 draft or
  1060. standard. Proposal numbers are  assigned  by  the  committee
  1061. chair (Jim Isaak).
  1062.  
  1063.      Proposals, RFCs, and  Comments  may  come  from  almost
  1064. anywhere, by most reasonable written forms of communication.
  1065. Proposals and RFCs each  have  serial  numbers  (plus  date,
  1066. title,  authors,  section  numbers for the affected areas in
  1067. the current draft or  standard,  and  possibly  key  words).
  1068. Comments  should  have  all  these  things except for serial
  1069. numbers. So please  include  draft  and  section  number  in
  1070. subjects of articles submitted to mod.std.unix about P1003.
  1071.  
  1072.      Back to timezones .... RFC.001, submitted to  the  IEEE
  1073. 1003  working  group  in FLorence on 1986 April 18, consists
  1074. of:
  1075.         - summary of mod.std.unix Vol. 5, by John Quarterman
  1076.         - article 65, proposed interface, by Robert Elz
  1077.         - timezone examples from article 68 by Arthur Olson
  1078.           (just the examples from the last few pages, not all
  1079.           of the article)
  1080.         - proposal form by John Quarterman
  1081.  
  1082. The last item has the same intent as the Elz article but  is
  1083. in  a  form which should be as usable as an actual proposal.
  1084. It may be submitted as such at the next meeting. So get your
  1085. comments  in  before  the  Atlanta USENIX in mid-June if you
  1086. want them to affect that particular proposal.
  1087.  
  1088.      There was another RFC (from HP) which  solved  all  the
  1089. problems  but by a slightly different mechanism. Perhaps its
  1090. author would like to post it?
  1091.  
  1092.  
  1093. Volume-Number: Volume 6, Number 16
  1094.  
  1095. From jbc  Sun May 11 17:51:52 1986
  1096. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Guest Moderator, John B. Chambers)
  1097. Newsgroups: mod.std.unix
  1098. Subject: iocntl naming
  1099. Message-Id: <4893@ut-sally.UUCP>
  1100. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1101. Date: 11 May 86 22:51:32 GMT
  1102. Draft-9: 7.0
  1103.  
  1104. Lest there be others like the anguished soul who took the postscript 
  1105. to V6#15 to mean that fcntl is *gone* -- no, it's tucked away in S6.5.2.
  1106. However, its name seems to have many the same critics as iocntl, and
  1107. those comments were solicited. Likewise the defense.
  1108.  
  1109.  
  1110.  
  1111. Volume-Number: Volume 6, Number 17
  1112.  
  1113. From jbc  Fri May 23 15:28:08 1986
  1114. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Guest Moderator, John B. Chambers)
  1115. Newsgroups: mod.std.unix
  1116. Subject: Re:  ioctl vs. iocntl (April 3rd draft)
  1117. Message-Id: <4979@ut-sally.UUCP>
  1118. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1119. Date: 23 May 86 20:27:41 GMT
  1120. Draft-9: 7.0
  1121.  
  1122. >From rbj@icst-cmr Fri May 16 12:19:42 1986
  1123. Date: Thu, 15 May 86 21:08:44 edt
  1124. From: Root Boy Jim <rbj@icst-cmr>
  1125.  
  1126.         In section C.3 of the April 3rd draft, it is proposed
  1127.         that ioctl() be replaced with iocntl().  While I aggree
  1128.     with the basic arguments, I think iocntl() is a bad name for
  1129.     the new call.
  1130.  
  1131. Me too. The abbreviation for `control' is `ctl', not `ctrl', or `cntl'.
  1132. If you are going to abbreviate, make it worth while. In the former
  1133. case, you have used less than half the letters, in the latter case, more.
  1134. The same goes for `address', which people repeatedly abbreviate `addr'
  1135. instead of `adr', which will do just as nicely. As a side issue, note
  1136. that 99% of all companys have three letter names.
  1137.  
  1138. I agree with the rest of the note.
  1139.  
  1140.     (Root Boy) Jim Cottrell        <rbj@cmr>
  1141.     "One man gathers what another man spills"
  1142.  
  1143. Volume-Number: Volume 6, Number 18
  1144.  
  1145. From jbc  Fri May 23 15:30:39 1986
  1146. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Guest Moderator, John B. Chambers)
  1147. Newsgroups: mod.std.unix
  1148. Subject: iocntl naming
  1149. Message-Id: <4980@ut-sally.UUCP>
  1150. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1151. Date: 23 May 86 20:30:24 GMT
  1152. Draft-9: 7.0
  1153.  
  1154. Date:     Sat, 17 May 86 14:45:31 EDT
  1155. From: Doug Gwyn (VLD/VMB) <gwyn@BRL.ARPA>
  1156.  
  1157. The name should be "iocontrol" or simply "control".
  1158. Why abbrvt whn u dnt hv to?
  1159.  
  1160. I see no reason to replace
  1161.     int ioctl( int fd, int request, funnyarg )
  1162. where "funnyarg" has type (int) or (struct something *)
  1163. by anything else, though.
  1164.  
  1165. Volume-Number: Volume 6, Number 19
  1166.  
  1167. From jbc  Fri May 23 15:39:58 1986
  1168. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Guest Moderator, John B. Chambers)
  1169. Newsgroups: mod.std.unix
  1170. Subject: POSIX/UNIX Conformance Test Workshop
  1171. Message-Id: <4981@ut-sally.UUCP>
  1172. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1173. Date: 23 May 86 20:39:17 GMT
  1174. Draft-9: 1003.3
  1175.  
  1176. Date: Thu, 22 May 86 07:23:27 edt
  1177. From: cincotta@ICST-SE (Cincotta)
  1178. Message-Id: <8605221123.AA10809@ICST-SE.ARPA>
  1179.  
  1180.                             Workshop
  1181.                                on
  1182.   Testing Conformance to the Proposed IEEE P1003/FIPS Standard
  1183.                                for
  1184.        Portable Operating System for Computer Environments
  1185.  
  1186.  
  1187.  
  1188. The Institute for Computer Sciences and Technology (ICST) at  the
  1189. National  Bureau  of Standards (NBS) will hold a two-day workshop
  1190. on Testing Conformance to Software Standards.  Four  major  topic
  1191. areas  will  be addressed: (1) graphics; (2) data management; (3)
  1192. office systems/document interchange; and (4) UNIX-derived operat-
  1193. ing system environments [UNIX is a trademark of AT&T].
  1194.  
  1195. The workshop will be held June 9-10, 1986 at  NBS,  Gaithersburg,
  1196. Maryland.
  1197.  
  1198. NBS/ICST is considering adopting the  full  use  version  of  the
  1199. IEEE/P1003  Standard  for  Portable Operating System for Computer
  1200. Environments as a Federal Information Processing Standard (FIPS).
  1201. The  IEEE/P1003 standard is intended to provide a vendor indepen-
  1202. dent specification for UNIX-derived operating  systems.   It  was
  1203. approved  as  a trial use standard by IEEE in March, 1986.  It is
  1204. currently being evaluated via the IEEE trial use procedures.
  1205.  
  1206. In support of the planned Federal standard, ICST is exploring al-
  1207. ternatives for conformance testing.  This workshop is intended to
  1208. solicit vendor input on issues relating  to  conformance  testing
  1209. for the proposed Federal standard.
  1210.  
  1211. Issues to be addressed include:
  1212.  
  1213.         - test suite selection
  1214.  
  1215.         - test suite availability
  1216.  
  1217.         - test suite administration
  1218.                 - who runs the tests
  1219.                 - where the tests are run
  1220.                 - when the tests are run
  1221.                 - how results are certified
  1222.  
  1223.         - test suite maintenance
  1224.  
  1225. For more information on the "UNIX" workshop, contact either Roger
  1226. Martin or Tony Cincotta at (301) 921-3545.
  1227.  
  1228. For general information and registration, contact Candy Leatherman
  1229. at (301) 921-3553.
  1230.  
  1231. Volume-Number: Volume 6, Number 20
  1232.  
  1233. From jsq  Fri Jul  4 07:36:21 1986
  1234. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1235. Newsgroups: mod.std.unix
  1236. Subject: Access to UNIX-related organizations, standards, and publications
  1237. Message-Id: <5248@ut-sally.UUCP>
  1238. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1239. Date: 4 Jul 86 12:36:03 GMT
  1240. Draft-9: Access.User.Groups
  1241.  
  1242. This is a rewrite and update of an earlier mod.std.unix article.
  1243. Comments are solicited.
  1244.  
  1245. Access information is given for the following:
  1246. user groups:    USENIX, /usr/group, EUUG
  1247. newsletters:    ;login:, commUNIXations, EUUG
  1248. standards:    IEEE 1003.1 (POSIX), 1003.2 (shell/tools), 1003.3 (verification)
  1249.         X3J11 (C language), /usr/group Standard,
  1250.         System V Interface Definition, X/OPEN PORTABILITY GUIDE
  1251. magazines:    UNIX REVIEW, UNIX/WORLD
  1252.  
  1253.  
  1254. A slightly later version of this article will probably appear in
  1255. ";login:  The USENIX Association Newsletter".  That newsletter is sent
  1256. free of charge to all members of the USENIX Association, whose address is
  1257.  
  1258.     USENIX Association
  1259.     P.O. Box 7
  1260.     El Cerrito, CA 94530
  1261.     415-528-8649
  1262.     {ucbvax,decvax}!usenix!office
  1263.  
  1264. USENIX sponsors two USENIX Conferences a year, featuring technical papers.
  1265. The next one is in Washington, D.C., 20-23 January 1987.
  1266.  
  1267. I am the Institutional Delegate from USENIX to the IEEE 1003 committee
  1268. (see below) and one of my functions as such is to get comments from
  1269. the USENIX membership and the general public to the committee.
  1270. One of the ways I try to do that is by moderating this newsgroup.
  1271. I'm also currently on the USENIX Board of Directors.
  1272.  
  1273.  
  1274. Another large group related to the UNIX System is /usr/group,
  1275.  
  1276.     /usr/group
  1277.     4655 Old Ironsides Drive, Suite 200
  1278.     Santa Clara, California 95054
  1279.     408-986-8840
  1280.  
  1281. They publish a newsletter called CommUNIXations.  The May/June 1986
  1282. issue contains a report by Heinz Lycklama (the /usr/group Institutional
  1283. Delegate to IEEE 1003) on the /usr/group Technical Committee working
  1284. groups which met in February 1986 on the areas of Networking,
  1285. Internationalization, Graphics, Realtime, Database, Performance,
  1286. and the proposed new group on Security.  I will post contact
  1287. information for these working groups as taken from that article
  1288. in a later mod.std.unix article.
  1289.  
  1290. The annual Uniforum Conferences are sponsored by /usr/group
  1291. and feature a large trade show.  The next one is in D.C.
  1292. at the same time as the next USENIX Conference.  USENIX
  1293. and /usr/group have held several concurrent conferences
  1294. in the past and will probably do so in the future.
  1295.  
  1296.  
  1297. Both USENIX and /usr/group also have tutorials at their
  1298. conferences and both sponsor other meeting activities
  1299. in addition to their regular conferences.
  1300.  
  1301.  
  1302. In Europe there is the European UNIX systems Users Group,
  1303. who have a newsletter and hold two conferences a year.
  1304.  
  1305.     EUUG secretariat
  1306.     Owles Hall
  1307.     Buntingford
  1308.     Herts SG9 9PL
  1309.     England
  1310.     seismo!mcvax!euug
  1311.  
  1312.  
  1313. The IEEE 1003 Portable Operating System for Computer Environments Committee
  1314. is sometimes known colloquially as the UNIX Standards Committee.
  1315. They have recently produced the 1003.1 "POSIX" Trial Use Standard.
  1316. According to its Foreword:
  1317.  
  1318.     The purpose of this document is to define a standard
  1319.     operating system interface and environment based on the
  1320.     UNIX Operating System documentation to support application
  1321.     portability at the source level.  This is intended for
  1322.     systems implementors and applications software developers.
  1323.  
  1324. Published copies are available at $19.95,
  1325. with bulk purchasing discounts available.  Contact:
  1326.  
  1327.         IEEE Service Center
  1328.         445 Hoes Ln.
  1329.         Piscataway, NJ 08854
  1330.         714-821-8380
  1331.  
  1332. Ask for "IEEE 1003.1 Trial Use Standard" - stock number SH10546 (Book #967).
  1333.  
  1334. The Trial Use Standard will be available for comments for a period
  1335. such as a year.  The current target for a Full Use Standard is Fall 1987.
  1336. IEEE has initiated the process to have the 1003.1 effort brought into
  1337. the International Standards Organization (ISO) arena.
  1338.  
  1339. There is a paper mailing list by which interested parties may get
  1340. copies of drafts of the standard.  To get on it, or to submit comments
  1341. directly to the committee, mail to:
  1342.  
  1343.         James Isaak
  1344.         Chairperson, IEEE/CS P1003
  1345.         Charles River Data Systems
  1346.         983 Concord St.
  1347.         Framingham, MA 01701
  1348.         decvax!frog!jim
  1349.  
  1350. Sufficiently interested parties may join the working group.
  1351. The next scheduled meetings of the working group of the committee are
  1352.  
  1353.     17-19 September 1986    Palo Alto, CA    hosts: Amdahl, HP and Sun
  1354.     9-11 December 1986    Atlantic City NJ with X3J11
  1355.     2-6 March 1987        Toronto, ON
  1356.         June 1987        Phoenix, AZ    the week of USENIX
  1357.         September 1987    New Orleans, LA
  1358.  
  1359. There is also a balloting group (which intersects with the working group).
  1360. This is more difficult.  Contact the committee chair for details.
  1361. I will repost them in this newsgroup if there is sufficient interest.
  1362.  
  1363. Related working groups are
  1364.     group    subject        co-chairs
  1365.     1003.2    shell and tools    Hal Jesperson (Amdahl), Don Cragun (Sun)
  1366.     1003.3    verification    Roger Martin (NBS), Carol Raye (AT&T)
  1367.  
  1368. Both will meet concurrently with 1003.1 in Palo Alto in September,
  1369. and inquiries should go to the same address as for 1003.1.
  1370.  
  1371.  
  1372. The Abstract of the 1003.1 Trial Use Standard adds:
  1373.  
  1374.     This interface is a complement to the C Programming Language
  1375.     in the C Information Bulletin prepared by Technical Committee X3J11
  1376.     of the Accredited Standards Committee X3, Information Processing
  1377.     Systems, further specifying an environment for portable application
  1378.     software.
  1379.  
  1380.  
  1381. X3J11 (C Standards Committee):
  1382.  
  1383.         Thomas Plum
  1384.         Vice Chair, X3J11 Committee
  1385.         Plum Hall Inc.
  1386.         1 Spruce Avenue
  1387.         Cardiff, New Jersey 08232
  1388.  
  1389. There is frequent discussion of X3J11 in mod.std.c, which see.
  1390.  
  1391.  
  1392. The /usr/group Standard is the principle ancestor of P1003.1:
  1393.  
  1394.         /usr/group Standards Committee
  1395.         4655 Old Ironsides Drive, Suite 200
  1396.         Santa Clara, California 95050
  1397.  
  1398. It was $15.00 as of January, 1985.
  1399.  
  1400.  
  1401. The System V Interface Definition (The Purple Book).
  1402. This is the AT&T standard and is one of the most frequently-used
  1403. references of the IEEE 1003 committee.
  1404.  
  1405.     To purchase the System V Interface Definition, write to:
  1406.  
  1407.         System V Interface Definition, Issue 2
  1408.         Select Codes 320-011 (Volume 1) and 320-012 (Volume 2)
  1409.         AT&T Customer Information Center
  1410.         2833 North Franklin Road
  1411.         Indianapolis, IN 46219
  1412.  
  1413.     Be sure to include the address the document should be shipped to
  1414.     and a check or money order made payable to AT&T.
  1415.  
  1416.     or call
  1417.  
  1418.             1-800-432-6600
  1419.  
  1420.     and ask for operator 77. Give the operator the Select Code
  1421.     307-127. (You must have a major credit card to order by phone.)
  1422.  
  1423. The price is about thirty U.S. dollars.
  1424.  
  1425.  
  1426. The X/OPEN PORTABILITY GUIDE (The Green Book)
  1427. is another reference frequently used by IEEE 1003.
  1428.  
  1429. X/OPEN is "A Group of European Computer Manufacturers" who have produced
  1430. a document intended to promote the writing of portable facilities.
  1431. (They now have member computer manufacturers from outside Europe.)
  1432. Their flyer remarks (in five languages), "Now we all speak the same
  1433. language in Europe."
  1434.  
  1435. The book is published by
  1436.  
  1437.     Elsevier Science Publishers
  1438.     Book Order Department
  1439.     PO Box 211
  1440.     1000 AE Amsterdam
  1441.     The Netherlands
  1442.  
  1443. or, for those in the U.S.A. or Canada:
  1444.  
  1445.     Elsevier Science Publishers Co Inc.
  1446.     PO Box 1663
  1447.     Grand Central Station
  1448.     New York, NY 10163
  1449.  
  1450. The price is Dfl 275,00 or USD 75.00.  According to the order form,
  1451. "This price includes the costs of one update which will be mailed
  1452. automatically upon publication."  They take a large number of credit
  1453. cards and other forms of payment.
  1454.  
  1455.  
  1456. The two main general circulation magazines about the UNIX system are
  1457.  
  1458.     UNIX REVIEW            UNIX/WORLD
  1459.     Miller Freeman Publications Co.    Tech Valley Publishing
  1460.     500 Howard Street        444 Castro St.
  1461.     San Francisco, CA 94105        Mountain View, CA 94041
  1462.     415-397-1881            415-940-1500
  1463.  
  1464.  
  1465. Corrections and additions to this article are solicited.
  1466. Oh, yes:  "UNIX is a registered Trademark of AT&T."
  1467.  
  1468. Volume-Number: Volume 6, Number 21
  1469.  
  1470. From jsq  Mon Jul  7 13:35:25 1986
  1471. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1472. Newsgroups: mod.std.unix
  1473. Subject: Re: Purple Book
  1474. Message-Id: <5266@ut-sally.UUCP>
  1475. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1476. Date: 7 Jul 86 18:34:55 GMT
  1477. Draft-9: Access.SVID
  1478.  
  1479. Date:     Mon, 7 Jul 86 12:14:36 EDT
  1480. From: Dan Franklin <dan@BBN-PROPHET.ARPA>
  1481.  
  1482. Two things about the section on the Purple Book that appeared in the most
  1483. recent article.
  1484.  
  1485. First, the price is no longer "about 30 dollars".  Doug Gwyn corrected
  1486. that.  Here's his message to save scanning the archive:
  1487.  
  1488. [ Oops.  Forgot that one; sorry, Doug.  -mod ]
  1489.  
  1490.     From: "Moderator, John Quarterman" <std-unix%ut-sally.UUCP@im4u.utexas.EDU>
  1491.     Newsgroups: mod.std.unix
  1492.     Subject: SVID Issue 2
  1493.     Message-Id: <4657@ut-sally.UUCP>
  1494.     Date: 10 Apr 86 00:24:33 GMT
  1495.     
  1496.     From: gwyn@BRL.ARPA (Douglas A. Gwyn)
  1497.     Date:     Wed, 9 Apr 86 17:55:08 EST
  1498.     
  1499.     Select Code 307-127 is supposed to cover both volumes together.
  1500.     Total price is something like $52; still $37 a volume I think.
  1501.     (Previous SVID owners should have received a discount coupon
  1502.     to upgrade to Release 2 for just $37.)
  1503.     
  1504.     Volume 1 is essentially equivalent to the whole previous SVID;
  1505.     Volume 2 is mostly commands and a few add-ons (e.g. curses).
  1506.     
  1507.     Volume-Number: Volume 6, Number 13
  1508.  
  1509. As a previous SVID owner, I can confirm that I received a discount
  1510. coupon permitting me to upgrade for $37 (and used it).
  1511.  
  1512. Second, at the Atlanta USENIX conference the ATT salespeople said they
  1513. expected to put out the next issue of the SVID, covering the Release 3
  1514. items (streams, networking, etc.) in November or so.  No doubt there
  1515. will be a discount again, but if you can borrow a copy until then you
  1516. might want to save some money and not order one right away.
  1517.  
  1518.     Dan
  1519.  
  1520. Volume-Number: Volume 6, Number 22
  1521.  
  1522. From jsq  Mon Jul  7 13:55:53 1986
  1523. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1524. Newsgroups: mod.std.unix
  1525. Subject: improved IEEE 1003.1 mkdir, rmdir for UNIX System V
  1526. Message-Id: <5267@ut-sally.UUCP>
  1527. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1528. Date: 7 Jul 86 18:55:34 GMT
  1529. Draft-9: 5.4.2
  1530.  
  1531. Doug Gwyn has just posted an implementation of mkdir and rmdir
  1532. as defined by IEEE 1003.1 to net.unix (aka info-unix@brl.arpa).
  1533.  
  1534. >From: gwyn@BRL.ARPA
  1535. >Newsgroups: net.unix
  1536. >Subject: improved IEEE 1003.1 mkdir, rmdir for UNIX System V
  1537. >Message-ID: <1981@brl-smoke.ARPA>
  1538. >Date: 6 Jul 86 21:38:55 GMT
  1539.  
  1540. Volume-Number: Volume 6, Number 23
  1541.  
  1542. From jsq  Mon Jul  7 16:41:04 1986
  1543. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1544. Newsgroups: mod.std.unix
  1545. Subject: P1003.2 Shell Working Group
  1546. Message-Id: <5269@ut-sally.UUCP>
  1547. References: <5248@ut-sally.UUCP>
  1548. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1549. Date: 7 Jul 86 21:40:49 GMT
  1550. Draft-9: P1003.2.Report
  1551.  
  1552. Date: Mon, 7 Jul 86 10:01:08 PDT
  1553. From: amdahl!hlj@seismo.UUCP (Hal Jespersen)
  1554.  
  1555. [ This is the text of an article by a co-chair of the P1003.2 committee
  1556. that he wrote for the IEEE TCOS newsletter.  It is in a format which
  1557. should be printable on any ASCII terminal or line printer.
  1558.  
  1559. The next message will contain the pic source for a related figure.
  1560. -mod ]
  1561.  
  1562.  
  1563.  
  1564.  
  1565.                        P1003.2 Shell Working Group
  1566.  
  1567.                               Hal Jespersen
  1568.  
  1569.                             Amdahl Corporation
  1570.  
  1571.  
  1572.        A new Working Group has been formed under the sponsorship of
  1573.        the Technical Committee on Operating Systems-P1003.2.  It
  1574.        has been chartered by the IEEE Standards Board to produce a
  1575.        proposed Standard named ``Shell and Utility Application
  1576.        Interface for Computer Operating System Environment,'' but
  1577.        it is known internally as the ``Shell Group.'' This article
  1578.        will discuss the scope and objectives of the new group and
  1579.        solicit your participation in its work.
  1580.  
  1581.        The Shell Group has generally the same membership as the
  1582.        P1003.1 ``POSIXTM'' operating system group and meets as a
  1583.        subcommittee-of-the-whole during a portion of P1003.1's
  1584.        quarterly meetings.  The group is co-chaired by Hal
  1585.        Jespersen of Amdahl Corporation and Don Cragun of Sun
  1586.        Microsystems, Inc.
  1587.  
  1588.        The purpose of the group is to produce a Standard that will
  1589.        complement the basic POSIX operating system Standard by
  1590.        providing application programs with an interface to a Shell,
  1591.        its command language, and sets of common utility programs.
  1592.        It is not intended to specify interfaces that are human
  1593.        user-friendly, such as visual shells, desktop metaphors,
  1594.        command recall, mice, and so forth.  However, such programs
  1595.        will be expected to use the programmatic interfaces provided
  1596.        by the Standard.
  1597.  
  1598.        The official Scope of the proposed Standard, as approved by
  1599.        the Working Group in April, 1986:
  1600.  
  1601.                                      SCOPE
  1602.  
  1603.               1.  Specify a standard interface that may be accessed
  1604.                   in common by both applications programs and user
  1605.                   terminal-controlling programs to provide services
  1606.                   of a more complex nature than the primitives
  1607.                   provided by the 1003.1 Standard.
  1608.  
  1609.               2.  The interface will include one or more of the
  1610.                   following components:
  1611.  
  1612.                     a.  Application program primitives to specify
  1613.                         instructions to an implementation-defined
  1614.                         ``shell'' facility.
  1615.  
  1616.                     b.  A standard command language for a shell
  1617.                         that includes program execution, I/O
  1618.                         redirection and pipelining, argument
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.        P1003.2 Shell Working Group                                2
  1627.  
  1628.  
  1629.  
  1630.                         handling, variable substitution and
  1631.                         expansion, and a series of control
  1632.                         constructs similar to other high-level
  1633.                         structured programming languages.
  1634.  
  1635.                     c.  A recommended command syntax for command
  1636.                         naming and argument specification.
  1637.  
  1638.                     d.  Primitives to assist applications programs
  1639.                         and the shell language in parsing and
  1640.                         interpreting command arguments.
  1641.  
  1642.                     e.  Recommended environment variables for use
  1643.                         by shell scripts and application programs.
  1644.  
  1645.                     f.  A minimum directory hierarchy required for
  1646.                         the shell and applications.
  1647.  
  1648.                     g.  Suites of useful programs or shell
  1649.                         functions that may be used for data
  1650.                         filtering or manipulation, user environment
  1651.                         control, file maintenance, or software
  1652.                         development; these suites will be
  1653.                         separately implementable.
  1654.  
  1655.                     h.  Utilities and standards for the
  1656.                         installation of ``add-on'' applications.
  1657.  
  1658.               3.  The following is a non-exclusive list of areas
  1659.                   outside the scope of the Standard:
  1660.  
  1661.                     a.  administrative utilities (privileged,
  1662.                         system processes, daemons, etc.)
  1663.  
  1664.                     b.  installation or configuration utilities
  1665.  
  1666.                     c.  system or file system maintenance utilities
  1667.  
  1668.                     d.  networking utilities
  1669.  
  1670.                     e.  terminal control or user-interface programs
  1671.                         (window managers, etc.)
  1672.  
  1673.                     f.  graphics commands
  1674.  
  1675.                     g.  text formatting commands
  1676.  
  1677.                     h.  data base interfaces (e.g.  SQL, etc.)
  1678.  
  1679.              At the same meeting, the Working Group approved the
  1680.              following list of Objectives, which will guide the
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.        P1003.2 Shell Working Group                                3
  1689.  
  1690.  
  1691.  
  1692.              Group's work:
  1693.  
  1694.                                   OBJECTIVES
  1695.  
  1696.               1.  The Standard should be based on the existing
  1697.                   facilities and the architectural philosophies of
  1698.                   the UNIXr* operating system.
  1699.  
  1700.               2.  The Standard will be designed so that it will not
  1701.                   automatically exclude other operating systems
  1702.                   than those conforming to the 1003.1 Standard.
  1703.                   However, the Standard will not be unnecessarily
  1704.                   weakened in functionality or style to accommodate
  1705.                   other operating systems.
  1706.  
  1707.               3.  The Standard will be designed to maximize the
  1708.                   conformance and portability of existing UNIX
  1709.                   applications.
  1710.  
  1711.               4.  The Standard will be designed to maximize its
  1712.                   usefulness for international applications.
  1713.  
  1714.               5.  Interfaces to the standard shell(s) will be
  1715.                   structured so that other shells may be
  1716.                   substituted for specific applications.
  1717.  
  1718.               6.  The Standard will specify command input and
  1719.                   output formats with enough precision to allow
  1720.                   those commands to be correctly implemented from
  1721.                   the language of the Standard alone.
  1722.  
  1723.               7.  The Standard will specify program interfaces in
  1724.                   the C language, but will not rule out future
  1725.                   specifications in other languages.
  1726.  
  1727.              The next meeting will be held in Palo Alto,
  1728.              California, at the Hyatt Rickey's Hotel, 09:00-12:00
  1729.              Tuesday, September 17, 1986.  An agenda and directions
  1730.              to the hotel will be sent out in a future mailing to
  1731.              the 1003 mailing list.
  1732.  
  1733.              Your participation and support are encouraged.  All
  1734.              interested parties are invited to attend the next, and
  1735.              all future, meetings.  Proposals for inclusion in the
  1736.              Standard, or comments, are accepted from anyone.
  1737.  
  1738.  
  1739.        __________
  1740.  
  1741.          * UNIX is a registered trademark of AT&T.
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.        P1003.2 Shell Working Group                                4
  1751.  
  1752.  
  1753.  
  1754.              These documents, referred to as ``Requests For
  1755.              Comments,'' or RFC's, should be sent (preferably in
  1756.              machine-readable and printed form) to:
  1757.  
  1758.                Don Cragun
  1759.                Sun Microsystems, Inc.
  1760.                2550 Garcia Avenue
  1761.                Mountain View, CA  94043
  1762.                (415) 960-7487
  1763.                {amdahl|decvax|hplabs|ihnp4|seismo}!sun!dwc
  1764.  
  1765.              Information about the Working Group may be obtained
  1766.              from Don, or from:
  1767.  
  1768.                Hal Jespersen
  1769.                Amdahl Corporation
  1770.                Mailstop 316
  1771.                1250 East Arques Avenue
  1772.                Sunnyvale, CA  94088-3470
  1773.                (408) 746-8288
  1774.                {hplabs|ihnp4}!amdahl!hlj
  1775.  
  1776.  
  1777. Volume-Number: Volume 6, Number 24
  1778.  
  1779. From jsq  Mon Jul  7 16:54:46 1986
  1780. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1781. Newsgroups: mod.std.unix
  1782. Subject: Figure for P1003.2 Shell Working Group
  1783. Message-Id: <5270@ut-sally.UUCP>
  1784. References: <5248@ut-sally.UUCP>
  1785. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1786. Date: 7 Jul 86 21:54:30 GMT
  1787. Draft-9: P1003.2.Report
  1788.  
  1789. Date: Mon, 7 Jul 86 10:01:08 PDT
  1790. From: amdahl!hlj@seismo.UUCP (Hal Jespersen)
  1791.  
  1792. [ This is the source for a figure to accompany the article
  1793. in the previous message by Hal Jespersen on P1003.2.
  1794. It is in pic format.  You will need pic and troff
  1795. or tpic and tex, plus a laser writer, bit mapped monitor,
  1796. or other high resolution output device to print it.  -mod ]
  1797.  
  1798. .PS
  1799. boxht=1.25i
  1800. OSI: box "Operating System Interface" " " "IEEE 1003.1" width 6i
  1801.      arrow <-> up from 1/6 of the way between OSI.nw and OSI.ne
  1802. S:   box "Shell \(**" " " "(Establishes" "Environment)" wid 1.5i
  1803. Dat: box "Data" wid .7i ht S.ht/2 with .sw at S.se
  1804. Cmd: box "Comm-" "ands" "\(**" wid .7i ht S.ht/2 with .nw at S.ne
  1805.      arrow <-> up from 3/4 of the way between OSI.nw and OSI.ne
  1806. Ap:  box "Application" wid 1i
  1807. API: box "Pro-" "gram" "Inter" "face" "\(**" ht Ap.ht wid .5i \
  1808.           with .se at Ap.sw
  1809.      arrow <-> from 1/3 of the way between Dat.se and Dat.ne to \
  1810.           1/3 of the way between API.sw and API.nw
  1811.      arrow <-> from 1/3 of the way between Cmd.se and Cmd.ne to \
  1812.       2/3 of the way between API.sw and API.nw
  1813.      move up .5i from Ap.t
  1814. UIA: box "User" "Interface" "Application" wid 1i
  1815. UPI: box "Pro-" "gram" "Inter" "face" "\(**" ht Ap.ht wid .5i \
  1816.           with .se at UIA.sw
  1817.      arrow <-> from 2/3 of the way between Dat.se and Dat.ne to \
  1818.           1/3 of the way between UPI.sw and UPI.nw
  1819.      arrow <-> from 2/3 of the way between Cmd.se and Cmd.ne to \
  1820.       2/3 of the way between UPI.sw and UPI.nw
  1821.      box "Terminal" "Driver" wid 1i ht UIA.ht with .sw at UIA.se
  1822.      move up .75i from S.nw
  1823. A:   box "\(**" ht .5i wid .5i
  1824.      move up .75i from S.t
  1825. B:   box "\(**" same
  1826.      move up .75i from S.ne
  1827. C:   box "\(**" same
  1828.      arrow <-> from A.b to 1/4 of the way between S.nw and S.ne
  1829.      arrow <-> from B.b to 1/2 of the way between S.nw and S.ne
  1830.      arrow <-> from C.b to 3/4 of the way between S.nw and S.ne
  1831.      move up .25i from B.t
  1832.      "\s+2Utility Program Sets\s0"
  1833. .PE
  1834.  
  1835. Volume-Number: Volume 6, Number 25
  1836.  
  1837. From jsq  Tue Jul  8 07:04:47 1986
  1838. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1839. Newsgroups: mod.std.unix
  1840. Subject: Re: SVID issues
  1841. Message-Id: <5275@ut-sally.UUCP>
  1842. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1843. Date: 8 Jul 86 12:04:33 GMT
  1844. Draft-9: SVID
  1845.  
  1846. Date:     Mon, 7 Jul 86 23:48:34 EDT
  1847. From: Doug Gwyn (VLD/VMB) <gwyn@BRL.ARPA>
  1848.  
  1849. My impression is that the streams/networking SVID volume will
  1850. be in addition to the current two volumes, not part of a
  1851. replacement for them.
  1852.  
  1853. Volume-Number: Volume 6, Number 26
  1854.  
  1855. From jsq  Thu Jul 10 05:26:27 1986
  1856. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1857. Newsgroups: mod.std.unix
  1858. Subject: Re: SVID issues
  1859. Message-Id: <5294@ut-sally.UUCP>
  1860. References: <5275@ut-sally.UUCP>
  1861. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1862. Date: 10 Jul 86 10:26:13 GMT
  1863. Draft-9: SVID
  1864.  
  1865. Date: Thu, 10 Jul 86 01:31:31 PDT
  1866. From: ihnp4!meccts!ahby
  1867. Organization: MECC Technical Services
  1868.  
  1869. >From: Doug Gwyn (VLD/VMB) <gwyn@BRL.ARPA>
  1870. >My impression is that the streams/networking SVID volume will
  1871. >be in addition to the current two volumes, not part of a
  1872. >replacement for them.
  1873.  
  1874. This is correct.  The Sys Vr3 enhancements will be included in a third
  1875. volume to the Purple Book.  This should be available in about
  1876. September, although if you are a source licensee, it is apparently
  1877. available in draft form today.
  1878. Shane P. McCarron            UUCP    ihnp4!meccts!ahby
  1879. MECC Technical Services            ATT    (612) 481-3589
  1880.  
  1881. "Sinners can repent, but stupid is forever."
  1882.  
  1883. Volume-Number: Volume 6, Number 27
  1884.  
  1885. From jsq  Tue Jul 15 17:10:07 1986
  1886. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1887. Newsgroups: mod.std.unix
  1888. Subject: public-domain mkdir() implementation
  1889. Message-Id: <5331@ut-sally.UUCP>
  1890. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1891. Date: 15 Jul 86 22:09:35 GMT
  1892. Draft-9: 5.4.2
  1893.  
  1894. Date:     Thu, 10 Jul 86 7:55:58 EDT
  1895. From: Doug Gwyn (VLD/VMB) <gwyn@BRL.ARPA>
  1896.  
  1897. Someone has pointed out to me that the mkdir() I posted doesn't
  1898. ensure that the directory ends up owned by the effective-UID.
  1899. There are technical reasons why this is very difficult; I have
  1900. a somewhat improved version (still doesn't work right for EUID
  1901. other than real or 0).  It may be possible to completely fix
  1902. this on a real UNIX System V, where there is a useful chown(),
  1903. but since I don't have one I can't test that.  If there is
  1904. sufficient interest I can repost my collection of public-domain
  1905. implementations of various new features of the standards.  Send
  1906. me your improvements, please.  Thanks.
  1907.     - Gwyn@BRL.ARPA
  1908.  
  1909. Volume-Number: Volume 6, Number 28
  1910.  
  1911. From jsq  Thu Jul 17 17:47:52 1986
  1912. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1913. Newsgroups: mod.std.unix
  1914. Subject: RFC.001 Timezones
  1915. Message-Id: <5350@ut-sally.UUCP>
  1916. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1917. Date: 17 Jul 86 22:46:09 GMT
  1918. Draft-9: TZ.RFC.001
  1919.  
  1920. This is the first of a series of five articles about timezones.
  1921. It is posted to make public previous discussions in this area
  1922. and not to stir up the issue again.  The time is propitious because
  1923. the U.S. President has just signed a new daylight savings time law.
  1924.  
  1925. The other four articles of this series form RFC.001,
  1926. which was submitted to the IEEE 1003.1 Working Group in
  1927. Florence on 18 April 1986.  The set of articles is as follows:
  1928.  
  1929.     V6N29 RFC.001 Timezones:  this article (not part of RFC.001 proper).
  1930.     V6N30 RFC.001 Summary of mod.std.unix Volume 5 by the moderator.
  1931.     V6N31 RFC.001 Timezone Interface (reposting of V5N65) by Robert Elz.
  1932.     V6N32 RFC.001 Timezone Examples (from V5N57) by Arthur Olson.
  1933.         (just the examples from the last few pages, not the whole article).
  1934.     V6N33 RFC.001 Time Zone Proposal by jsq.
  1935.  
  1936. The last item has the same intent as the Elz article but is in a form which
  1937. should be usable as an actual proposal.  It may be submitted as such soon.
  1938.  
  1939. There was another RFC (from HP) which solved all the same problems but
  1940. by a slightly different mechanism.  Perhaps its author would like to post it?
  1941.  
  1942. Volume-Number: Volume 6, Number 29
  1943.  
  1944. From jsq  Thu Jul 17 17:55:16 1986
  1945. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  1946. Newsgroups: mod.std.unix
  1947. Subject: RFC.001 Summary of mod.std.unix Volume 5.
  1948. Message-Id: <5351@ut-sally.UUCP>
  1949. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  1950. Date: 17 Jul 86 22:53:24 GMT
  1951. Draft-9: TZ.RFC.001
  1952.  
  1953. Summary of time zone discussion (and other material) in mod.std.unix Volume 5.
  1954. The time zone discussion was in response to a request in P1003 Appendix A.3.
  1955. The numbers in parentheses like (N3) correspond to article number within
  1956. Volume 5.
  1957.  
  1958. The *problem* was first stated by Mark Horton (N3).
  1959.     * GMT/local time disparities exist in the real world:
  1960.     Internal system time must be GMT (N11) as used by make (N6), etc.
  1961.     Many log files are in local time, e.g., RCS, SCCS (N15).
  1962.     Users want to see dates displayed in local time (N3).
  1963.     Some parameter files are in local time, such as
  1964.         UUCP's L.sys (N5), crontab (N13), and at (N69).
  1965.     Conversions should work for dates from at least 1 Jan 1970 (N26)
  1966.         (for ls, SCCS, RCS, other logs) to near future
  1967.         (L.sys, crontab, at) (N65).
  1968.     * Network/dialup logistics:
  1969.     Synchronization of networked hosts also requires internal GMT (N17).
  1970.     Some network-related logs should perhaps be in GMT (N10).
  1971.     Users may be in different timezones than hosts (N7, N14, N13).
  1972.     Client workstations may be in different time zones than servers (N63).
  1973.     * Politics in the real world sets time zones:
  1974.     There are many standard one-hour-from GMT timezones (STs);
  1975.         some of them may have different names in different countries.
  1976.     There are many Dalight Savings Times (DSTs) related to STs,
  1977.         usually by adding one hour.
  1978.         These DSTs differ even within the same ST (N63).
  1979.         Double daylight savings time is sometimes used (N62, N58).
  1980.         Even daylight losing time is plausible (N51, N65).
  1981.     Sometimes the DST offset from ST is not integral hours (N28).
  1982.     There are local times which are not DSTs
  1983.         and also not integral hours from GMT (N19, N13).
  1984.     Offset precision of minutes is necessary (N19) but seconds not (N63).
  1985.     ST may change at any time (China switching to several zones, N62).
  1986.     DST may change at any time and with little notice (Australia, N65).
  1987.         or for brief periods (U.S. presidential elections, N27).
  1988.     Timezone names may conflict (Bering Strait Time/British Summer Time)
  1989.         or be non-alphabetic (N54, N48).
  1990.  
  1991. Some *deficiencies* of existing implementations (N3).
  1992.     * V7/BSD: inefficiency of system call.
  1993.     * System III/V: initialization and security (N3, N66, N63, N4, N50);
  1994.     one hour precision is not enough (N63).
  1995.     * both: DST tables wired into kernel or library, respectively.
  1996.  
  1997. Proposed *solutions*.
  1998.     * Early proposals by Kenneth Almquist (N24) and Bob Devine (N47)
  1999.     were very useful for discussion but flawed.
  2000.     * Interface as proposed by Robert Elz (N65):
  2001.     Three conversions sufficient:  GMT, default local, user's local (N55).
  2002.     Timezone format left to the implementation.
  2003.     Timezone in environment allowed.
  2004.     Default initialization and security provided.
  2005.     (A routine to translate timezone name to offset possibly useful (N67).)
  2006.  
  2007. Proposed *implementation* by Arthur Olsen (N68,N57) since posted to mod.sources.
  2008.     * Inspired Elz's interface and is sufficient for it (N65).
  2009.     * Jack Jansen's implementation would also fit Elz's interface (N65).
  2010.     * Miscellaneous implementation criteria:
  2011.     Should not be shell-specific (N49).
  2012.     Should not put timezone offset in u-area (N22, N21, N20).
  2013.     Efficiency requirements (N66):
  2014.         conversion    of present time fast for logging,
  2015.             of near past pretty fast for "ls -l",
  2016.             of distant past may be slow.
  2017.     * A particular implementation may be broad or narrow,
  2018.     depending on the intended market (N65, N63).
  2019.  
  2020. Far *future* considerations.
  2021.     * Machines are currently considered stationary (N60).
  2022.     * Days may not be of 24 hours (N58).
  2023.     * Announcement of info-futures list (N59).
  2024.  
  2025. Other topics in mod.std.unix Volume 5, with numbers of the
  2026. corresponding sections of the IEEE 1003.1 Trial Use Standard:
  2027.  
  2028. setuid and environment clearing (N39, N31) 3.1.2.
  2029. setuid switching (N46, N45, N44, N43) 4.2.2.
  2030. ex-directory (N12, N8)
  2031. directory umask 5.3.3, 5.6.1.
  2032.     motivation (N35, N23, N22)
  2033.     objections (N34, N33, N25)
  2034.     proposals to use .cshrc (N30, N35, N29)
  2035.     clarifications:  not per cwd (N38); process umask remains (N40)
  2036.     philosophy (N42, N37)
  2037.     solution (N41)
  2038. The IEEE 1003 Committee
  2039.     and mod.std.unix (N36, N33, N35)
  2040.     Draft 6 (N2)
  2041.     meetings:  Denver (N18); Florence (N71).
  2042. administrativia (N1, N30).
  2043. guest moderator (N71, N70).
  2044.  
  2045. End of summary of mod.std.unix Volume 5.
  2046.  
  2047. Volume-Number: Volume 6, Number 30
  2048.  
  2049. From jsq  Thu Jul 17 18:04:54 1986
  2050. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  2051. Newsgroups: mod.std.unix
  2052. Subject: RFC.001 Timezone Interface
  2053. Message-Id: <5352@ut-sally.UUCP>
  2054. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  2055. Date: 17 Jul 86 23:03:01 GMT
  2056. Draft-9: TZ.RFC.001
  2057.  
  2058. [ This is part of RFC.001 and is a reposting of V5N65. -mod ]
  2059.  
  2060. Date: 02 Mar 86 05:47:32 +1100 (Sun)
  2061. From: Robert Elz <munnari!kre@SEISMO.CSS.GOV>
  2062. >Subject: localtime(), ctime() and timezones
  2063.  
  2064. It seems to me that this discussion is getting a bit overblown,
  2065. as far as P1003 is concerned, it doesn't really seem to be
  2066. as difficult or complex as some people are making out.
  2067.  
  2068. So, I'm going to propose something that could be inserted into
  2069. P1003 (with the obvious extra definitions that I'm going to
  2070. leave out on the assumption that everyone knows what they are,
  2071. like the definition of a "struct tm").
  2072.  
  2073. In some words of other, it would go like this (with hopefully
  2074. a lot of cleaning up of the typography to get rid of quotes
  2075. and things like that where I would really prefer to use italics
  2076. or bold):
  2077.  
  2078. Implementations shall provide the following functions:
  2079.  
  2080.     struct tm *gmttime(t) time_t *t;
  2081.     struct tm *localtime(t) time_t *t;
  2082.     int settz(p) char *p;
  2083.     char *asctime(tp) struct tm *tp;
  2084.     char *ctime(t) time_t *t;
  2085.  
  2086. gmttime: converts the time_t "*t" to a "struct tm" representing
  2087. the same time (in Universal Co-ordinated Time).  (waffle about
  2088. the returned value being in a static area, etc, goes here).
  2089.  
  2090. localtime: converts the time_t "*t" to a "struct tm" representing
  2091. the given time adjusted to represent some local time difference.
  2092. "local time" will be specified by a call to "settz", if no such
  2093. call has preceded the call to localtime(), localtime() will call
  2094. "settz(getenv("TZ"));".  Implementors should note that for any defined
  2095. past time (from midnight January 1, 1970 until the time the call is made)
  2096. the local time returned should be accurate (taking into account the effects
  2097. of daylight saving, if any).  For future times, the local time returned
  2098. should be as likely to be accurate as current projections of
  2099. future timezone rules and daylight saving time changes allow.
  2100.  
  2101. settz: enables users to specify the local time conversion to be
  2102. used by localtime.  The string is an implementation specific
  2103. representation of the timezone offset desired, with 2 special
  2104. cases..  The null pointer (t == (char *)0) will always select
  2105. the appropriate local time offset for the host executing the call.
  2106. A null string (t != (char *)0 && *t == '\0') will select
  2107. no local time transformations (making localtime() equivalent
  2108. to gmttime()).  Implementations should provide, and document,
  2109. some mechanism to allow users to select another timezone.
  2110. This mechanism is beyond the scope of the standard.  Implementors
  2111. should, if possible, allow users to define their own timezones,
  2112. and not restrict them to use one of some standard set.
  2113. If settz is called with an unrecognisable argument, the effect
  2114. is implementation defined.  (Users might expect any of three
  2115. "reasonable"? actions could be taken here -- use GMT, use local time,
  2116. or use local time in the area where the implementation was performed).
  2117. settz returns 0 if the timezone selected could be obtained, and
  2118. -1 otherwise.  settz can be called as many times as needed, each
  2119. call affects future calls of localtime, until another call to settz.
  2120.  
  2121. acstime: returns a 25 character string representing the time
  2122. specified by "*tp".  The format of the string is ... (you all know it).
  2123.  
  2124. ctime: is defined to be "asctime(localtime(t))".
  2125.  
  2126. ...................
  2127.  
  2128. Notes: this is (about) the right level of detail for the standard.
  2129. There is no need to specify what the form of the argument to
  2130. settz() is.  This enables things like the Sys V "EST5EDT" string,
  2131. and Arthur Olson's (elsie!ado) "localtime" "Eastern" etc, to all
  2132. be used with impunity - the implementor gets to choose whatever
  2133. is appropriate to him - just provided that he can satisfy the
  2134. needs of his customers (implementors who provide no means of getting
  2135. daylight saving right in the Southern hemisphere can probably
  2136. expect not to sell many copies there - but that's their choice).
  2137.  
  2138. In particular - this discourages programmers from writing programs
  2139. which "know" what the local time should be - there's no reason at
  2140. all why a program should ever need to do more than select GMT,
  2141. host local time, or a user specified time zone.  (nb: while localtime
  2142. uses the TZ environment variable in cases where the program has made
  2143. no call to settz(), there's nothing to stop a program getting the
  2144. argument to settz() from anywhere it pleases, including from several
  2145. different environment variables if it chooses, and needs to operate
  2146. in several timezones, or from an external configuration file, or
  2147. wherever is appropriate).
  2148.  
  2149. This works for existing programs (in general) - localtime() performs
  2150. the required call to settz() the first time it is called (directly
  2151. or via ctime()).  There's no need to worry about who sets TZ, if
  2152. its not set, getenv("TZ") will return (char *)0 and settz() will
  2153. then use the appropriate local time for the host.  How settz()
  2154. gets that information is an implementation matter.  The security
  2155. problems (people faking local time for programs that expect it
  2156. to be host local time, by setting TZ before running the program)
  2157. can easily solved by causing those (comparatively few) programs
  2158. to do "settz((char *)0)" before their first call to localtime().
  2159.  
  2160. What's missing:  So far here there is no mention of the "timezone name".
  2161. None of the standard mechanisms is really adequate here.  The V7
  2162. (and 4.xbsd) "timezone" function is clearly inadequate (although
  2163. 4.2 bsd allows users to set the environment variable TZNAME to anything
  2164. they like) since there can clearly be several possible names for the
  2165. same offset, and "timezone" has no way to discover which one is wanted.
  2166. Requiring the name to resice in the environment somewhere (Sys V) is also
  2167. inadequate (there are too many problems about making sure it is set
  2168. in all the right places).
  2169.  
  2170. Arthur Olson's scheme causes "localtime" to set a global variable
  2171. "tz_abbr" to the correct string name for the timezone just used.
  2172. I can't think of any cases where anything more than this is needed,
  2173. but it is less flexible then "timezone()" and it would require
  2174. programs that currently call timezone() to have to be altered.
  2175. (He also has his version of "ctime" (but not "asctime") include
  2176. the timezone in its output - I doubt if that is feasible for P1003,
  2177. too many existing programs know what every byte in the returned
  2178. string from ctime() contains.)
  2179.  
  2180. I solicit suggestions for what to do here - one might be to
  2181. retain "timezone" but not require that it be capable of returning
  2182. anything except the zone name corresponding to the last call of
  2183. localtime() - then with ado's implementation it could simply
  2184. ignore its arguments and return tz_abbr - I suspect that would
  2185. satisfy all existing uses (and the ones it doesn't are quite
  2186. likely not to work in general anyway).  Opinions?
  2187.  
  2188. There's also no discussion of how this relates to processes
  2189. and images.  Not because there's anything doubtful here,
  2190. but just because the necessary words take a lot of space.
  2191. (informally, "the first call to localtime" is intended to
  2192. be "the first after the program is exec'd, ignoring any
  2193. fork()'s it may have since performed, as long as there
  2194. has been no subsequent exec).  Getting this kind of thing
  2195. right is essential for a standatds document, its not essential
  2196. here.
  2197.  
  2198. ...................
  2199.  
  2200. A justification for all this ...  Today, just about 2 1/2 hours ago
  2201. (it's early on a Sun morning as I write this) the daylight saving
  2202. rules changed in at least 2 Australian states (no-one really seems
  2203. very sure of what happened, or really why).  The politicians gave
  2204. us less than a month's warning that it was coming (and the month
  2205. was February, which isn't a long month...).
  2206.  
  2207. If there's anyone who doesn't believe that some form of dynamic
  2208. timezone setting is required, they're welcome to come to Australia
  2209. and suffer our local politicians (this isn't the first time: a
  2210. couple of years ago New South Wales decided to extend daylight
  2211. saving for a month to try and save on power bills - the amount of
  2212. notice given was about the same - at that time, at least one local
  2213. site decided to scrap running on GMT and run on localtime (ala VMS)
  2214. instead.  They're still doing that, I think, and suffering because
  2215. of it).
  2216.  
  2217. I'm extremely grateful that Arthur Olson decided to try an implementation,
  2218. and donate it to the community - he made the task of converting things here
  2219. much easier than it otherwise would have been.  His implementation
  2220. meets the above specs (in fact, it inspired them...), and will work
  2221. for all the contorted exampes that people have been proposing (multiple
  2222. shifts in a year, multi-hour saving, even daylight wasting).
  2223.  
  2224. But note - there's no need for the standard to require this
  2225. generality, market pressures will do that - all the standard
  2226. needs to do is supply a suitable interface.  Arthur Olson's
  2227. implementation proves that the above reccomendation is
  2228. implementable (munnari is running his code, in libc, right now)
  2229. and effecient enough.
  2230.  
  2231. [ Your last sentence gives the reason that I've encouraged
  2232. discussions of implementations in the newsgroup:  it's good
  2233. to know that a proposed standard is implementable and handles
  2234. actual cases.  But you're right, of course, that the
  2235. P1003 standard doesn't need implementation details.  -mod ]
  2236.  
  2237. Jack Jansen's (mcvax!jack) somewhat similar, but slightly different scheme
  2238. would probably work just as well.
  2239.  
  2240. Bob Devine's (hao!asgb!devine) "I don't think its needed" attitude
  2241. can also fit the standard - if he's right then he's probably going
  2242. to have a very fast localtime() which will serve him well.
  2243. If he's wrong, then he's not going to get many customers.
  2244.  
  2245. That's good - the more the better - that gives us users (or us system
  2246. implementors perhaps) a wide choice of methods.
  2247.  
  2248. Robert Elz        kre%munnari.oz@seismo.css.gov    seismo!munnari!kre
  2249.  
  2250. Volume-Number: Volume 6, Number 31
  2251.  
  2252. From jsq  Thu Jul 17 18:08:42 1986
  2253. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  2254. Newsgroups: mod.std.unix
  2255. Subject: RFC.001 Timezone Examples
  2256. Message-Id: <5353@ut-sally.UUCP>
  2257. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  2258. Date: 17 Jul 86 23:06:37 GMT
  2259. Draft-9: TZ.RFC.001
  2260.  
  2261. [ This is part of RFC.001 and is a reposting of some examples from V5N57.
  2262. Note that the current version of Arthur Olsen's implementation
  2263. is to be found in the mod.sources archives, not in mod.std.unix.
  2264. This posting is intended merely to illustrate the variety of
  2265. possible timezones.  -mod ]
  2266.  
  2267. echo tzcomp.8 1>&2
  2268. cat >tzcomp.8 <<'End of tzcomp.8'
  2269. .TH TZCOMP 8
  2270. .SH NAME
  2271. tzcomp \- time zone compiler
  2272. .SH SYNOPSIS
  2273. .B tzcomp
  2274. [
  2275. .B \-d
  2276. directory ] filename ...
  2277. .SH DESCRIPTION
  2278. .I Tzcomp
  2279. reads text from the file(s) named on the command line
  2280. and creates the time zone information files specified in this input.
  2281. If a
  2282. .I filename
  2283. is
  2284. .BR ` - ',
  2285. the standard input is read.
  2286. .PP
  2287. This option is available:
  2288. .TP
  2289. .B \-d directory
  2290. Create time zone information files in the named directory rather than
  2291. in the standard directory named below.
  2292. .PP
  2293. A sharp characters (#) in the input introduces a comment which extends to
  2294. the end of the line the sharp character appears on.
  2295. Any line which is blank (after comment stripping) is ignored.
  2296. Non-blank lines are expected to be of one of three
  2297. types:  rule lines, zone lines, and link lines.
  2298. .PP
  2299. A rule line has the form
  2300. .nf
  2301. .B
  2302. .ti +.5i
  2303. .ta \w'Rule 'u +\w'MostNA 'u +\w'FROM 'u +\w'1973 'u +\w'TYPE 'u +\w'Apr 'u +\w'lastSun 'u +\w'2:00 'u +\w'SAVE 'u
  2304. .sp
  2305. Rule    NAME    FROM    TO    TYPE    IN    ON    AT    SAVE    LETTER/S
  2306. .sp
  2307. For example:
  2308. .ti +.5i
  2309. .sp
  2310. Rule    MostNA    1969    1973    -    Apr    lastSun    2:00    1:00    D
  2311. .sp
  2312. .fi
  2313. The fields that make up a rule line are:
  2314. .TP
  2315. .B NAME
  2316. Gives the (arbitrary) name of the set of rules this rule is part of.
  2317. .TP
  2318. .B FROM
  2319. Gives the first year in which the rule applies.
  2320. .TP
  2321. .B TO
  2322. Gives the last year in which the rule applies.
  2323. The word
  2324. .RB ` only '
  2325. may be used to repeat the value of the
  2326. .B
  2327. FROM
  2328. field.
  2329. .TP
  2330. .B TYPE
  2331. Gives the type of year in which the year applies.  If
  2332. .B TYPE
  2333. is
  2334. .B
  2335. "-"
  2336. then the rule is taken to apply in all years between
  2337. .B FROM
  2338. and
  2339. .B TO
  2340. inclusive.
  2341. If
  2342. .B TYPE
  2343. is something else, then the command
  2344. .B
  2345. .ti +.5i
  2346. years from to type
  2347. .br
  2348. is executed with arguments
  2349. .IR from ,
  2350. .IR to ,
  2351. and
  2352. .IR type
  2353. taken from the rule line; the rule is taken to apply only in those years
  2354. printed by the
  2355. .I years
  2356. command.
  2357.  
  2358. The distributed
  2359. .I years
  2360. command is a shell script that can handle year types
  2361. .B uspres
  2362. (United States presidential election years)
  2363. and
  2364. .B nonpres
  2365. (all other years);
  2366. other year types may be added by changing the script.
  2367. .TP
  2368. .B IN
  2369. Names the month in which the rule takes effect.  Month names may be
  2370. abbreviated.
  2371. .TP
  2372. .B ON
  2373. Gives the day on which the rule takes effect.
  2374. Recognized forms include:
  2375. .nf
  2376. .in +.5i
  2377. .sp
  2378. .ta \w'lastSun  'u
  2379. 5    the fifth of the month
  2380. lastSun    the last Sunday in the month
  2381. lastMon    the last Monday in the month
  2382. Sun>=8    first Sunday on or after the eighth
  2383. Sun<=25    last Sunday on or before the 25th
  2384. .fi
  2385. .in -.5i
  2386. .sp
  2387. Names of days of the week may be abbreviated or spelled out in full.
  2388. Note that there must be no spaces within the
  2389. .B ON
  2390. field 
  2391. (or within any other field).
  2392. .TP
  2393. .B AT
  2394. Gives the time of day at which the rule takes affect.
  2395. Recognized forms include:
  2396. .nf
  2397. .in +.5i
  2398. .sp
  2399. .ta \w'1:28:13  'u
  2400. 2    time in hours
  2401. 2:00    time in hours and minutes
  2402. 15:00    24-hour format time (for times after noon)
  2403. 1:28:14    time in hours, minutes, and seconds
  2404. .fi
  2405. .in -.5i
  2406. .sp
  2407. .TP
  2408. .B SAVE
  2409. Gives the amount of time to be added to local standard time when the rule is in
  2410. effect.  This field has the same format as the
  2411. .B AT
  2412. field.
  2413. .TP
  2414. .B LETTER/S
  2415. Gives the "variable part" (for example, the 'S' or 'D' in "EST" or "EDT")
  2416. of time zone abbreviations to be used when this rule is in effect.
  2417. If this field is
  2418. .B
  2419. "-",
  2420. the variable part is null.
  2421. .PP
  2422. A zone line has the form
  2423. .sp
  2424. .nf
  2425. .ti +.5i
  2426. .ta \w'Zone 'u +\w'Eastern 'u +\w'GMTOFF 'u +\w'MostNA 'u
  2427. Zone    NAME    GMTOFF    RULES    FORMAT
  2428. .sp
  2429. For example:
  2430. .sp
  2431. .ti +.5i
  2432. Zone    Eastern    -5:00    MostNA    E%sT
  2433. .sp
  2434. .fi
  2435. The fields that make up a zone line are:
  2436. .TP
  2437. .B NAME
  2438. The name of the time zone.
  2439. This is the name used in creating the time zone information file for the zone.
  2440. .TP
  2441. .B GMTOFF
  2442. The amount of time to add to GMT to get standard time in this zone.
  2443. This field has the same format as the
  2444. .B AT
  2445. and
  2446. .B SAVE
  2447. fields of rule lines;
  2448. begin the field with a minus sign if time must be subtracted from GMT.
  2449. .TP
  2450. .B RULES
  2451. The name of the rule(s) that apply in the time zone.
  2452. If this field contains
  2453. .B
  2454. "-"
  2455. then standard time always applies in the time zone.
  2456. .TP
  2457. .B FORMAT
  2458. The format for time zone abbreviations in this time zone.
  2459. The pairs of characters
  2460. .B
  2461. "%s"
  2462. is used to show where the "variable part" of the time zone abbreviation goes.
  2463. .PP
  2464. A link line has the form
  2465. .sp
  2466. .nf
  2467. .ti +.5i
  2468. .ta \w'Link 'u +\w'LINK-FROM 'u
  2469. Link    LINK-FROM    LINK-TO
  2470. .sp
  2471. For example:
  2472. .sp
  2473. .ti +.5i
  2474. Link    Eastern        EST5EDT
  2475. .sp
  2476. .fi
  2477. The
  2478. .B LINK-FROM
  2479. field should appear as the
  2480. .B NAME
  2481. field in some zone line;
  2482. the
  2483. .B LINK-TO
  2484. field is used as an alternate name for that zone.
  2485. .PP
  2486. Lines may appear in any order in the input.
  2487. .SH EXAMPLE
  2488. [Since a sample time zone file appears in the shell archive,
  2489. this section has been omitted.]
  2490. .SH FILES
  2491. /etc/tzdir    standard directory used for created files
  2492. .SH "SEE ALSO"
  2493. settz(3), tzfile(5)
  2494. .. @(#)tzcomp.8    1.4
  2495. End of tzcomp.8
  2496. echo tzinfo 1>&2
  2497. cat >tzinfo <<'End of tzinfo'
  2498. # @(#)tzinfo    1.5
  2499.  
  2500. # Rule    NAME    FROM    TO    TYPE    IN    ON    AT    SAVE    LETTER/S
  2501. Rule    MostNA    1969    1973    -    Apr    lastSun    2:00    1:00    D
  2502. Rule    MostNA    1969    1973    -    Oct    lastSun    2:00    0    S
  2503. Rule    MostNA    1974    only    -    Jan    6    2:00    1:00    D
  2504. Rule    MostNA    1974    only    -    Nov    24    2:00    0    S
  2505. Rule    MostNA    1975    only    -    Feb    23    2:00    1:00    D
  2506. Rule    MostNA    1975    only    -    Oct    26    2:00    0    S
  2507. Rule    MostNA    1976    2037    -    Apr    lastSun    2:00    1:00    D
  2508. Rule    MostNA    1976    2037    -    Oct    lastSun    2:00    0    S
  2509.  
  2510. # Almost surely wrong:
  2511.  
  2512. # Rule    NAME    FROM    TO    TYPE    IN    ON    AT    SAVE    LETTER/S
  2513. Rule    Oz-Eur    1969    1973    -    Apr    lastSun    2:00    1:00    S
  2514. Rule    Oz-Eur    1969    1973    -    Oct    lastSun    2:00    0    -
  2515. Rule    Oz-Eur    1974    only    -    Jan    6    2:00    1:00    S
  2516. Rule    Oz-Eur    1974    only    -    Nov    24    2:00    0    -
  2517. Rule    Oz-Eur    1975    only    -    Feb    23    2:00    1:00    S
  2518. Rule    Oz-Eur    1975    only    -    Oct    26    2:00    0    -
  2519. Rule    Oz-Eur    1976    2037    -    Apr    lastSun    2:00    1:00    S
  2520. Rule    Oz-Eur    1976    2037    -    Oct    lastSun    2:00    0    -
  2521.  
  2522. # New names
  2523.  
  2524. # Zone    NAME        GMTOFF    RULES    FORMAT
  2525. Zone    Atlantic    -4:00    MostNA    A%sT
  2526. Zone    Eastern        -5:00    MostNA    E%sT
  2527. Zone    Central        -6:00    MostNA    C%sT
  2528. Zone    Mountain    -7:00    MostNA    M%sT
  2529. Zone    Pacific        -8:00    MostNA    P%sT
  2530. Zone    Yukon        -9:00    MostNA    Y%sT
  2531. Zone    Hawaiian    -10:00    MostNA    H%sT
  2532. Zone    Newfoundland    -3:30    -    NST
  2533. Zone    Japan        9:00    -    JST
  2534. Zone    WET        0    Oz-Eur    WE%sT
  2535. Zone    MET        1     Oz-Eur    ME%sT
  2536. Zone    EET        2    Oz-Eur    EE%sT
  2537. Zone    AEST        10:00    Oz-Eur    AES%sT
  2538. Zone    ACST        9:30    Oz-Eur    ACS%sT
  2539. Zone    AWST        8:00    -    AWST    # No Daylight Saving here?
  2540.  
  2541. #
  2542. # A settz("") uses the code's built-in GMT without going to disk to get
  2543. # the information.  Still, we want things to work if somebody does a
  2544. # settz("GMT"), so. . .
  2545. #
  2546.  
  2547. Zone    GMT        0    -    GMT
  2548.  
  2549. # Old names
  2550.  
  2551. # Link    LINK-FROM    LINK-TO
  2552. Link    Eastern        EST5EDT
  2553. Link    Central        CST6CDT
  2554. Link    Mountain    MST7MDT
  2555. Link    Pacific        PST8PDT
  2556.  
  2557. # "Pacific Presidential Election Time" is being contemplated in Congress
  2558.  
  2559. # Rule    NAME    FROM    TO    TYPE    IN    ON    AT    SAVE    LETTER/S
  2560. Rule    Twilite    1969    1973    -    Apr    lastSun    2:00    1:00    D
  2561. Rule    Twilite    1969    1973    -    Oct    lastSun    2:00    0    S
  2562. Rule    Twilite    1974    only    -    Jan    6    2:00    1:00    D
  2563. Rule    Twilite    1974    only    -    Nov    24    2:00    0    S
  2564. Rule    Twilite    1975    only    -    Feb    23    2:00    1:00    D
  2565. Rule    Twilite    1975    only    -    Oct    26    2:00    0    S
  2566. Rule    Twilite    1976    2037    -    Apr    lastSun    2:00    1:00    D
  2567. Rule    Twilite    1976    1987    -    Oct    lastSun    2:00    0    S
  2568. Rule    Twilite    1988    2037    uspres    Oct    lastSun    2:00    1:00    PE
  2569. Rule    Twilite    1988    2037    uspres    Nov    Sun>=7    2:00    0    S
  2570. Rule    Twilite    1988    2037    nonpres    Oct    lastSun    2:00    0    S
  2571.  
  2572. # Zone    NAME        GMTOFF    RULES    FORMAT
  2573. Zone    New-Pacific    -8:00    Twilite    P%sT
  2574.  
  2575. # Next really belongs in a separate file
  2576.  
  2577. Link    Eastern        localtime
  2578. End of tzinfo
  2579. exit
  2580. --
  2581.     UUCP: ..decvax!seismo!elsie!ado    ARPA: elsie!ado@seismo.ARPA
  2582.     DEC, VAX and Elsie are Digital Equipment and Borden trademarks
  2583.  
  2584. Volume-Number: Volume 6, Number 32
  2585.  
  2586. From jsq  Thu Jul 17 18:11:54 1986
  2587. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  2588. Newsgroups: mod.std.unix
  2589. Subject: RFC.001 Timezone Proposal
  2590. Message-Id: <5354@ut-sally.UUCP>
  2591. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  2592. Date: 17 Jul 86 23:10:14 GMT
  2593. Draft-9: TZ.RFC.001
  2594.  
  2595. RFC.001 Proposal Form, 18 April 1986, submitted by John S. Quarterman.
  2596.  
  2597. Time Zone Proposal based on work by Robert Elz and Arthur Olsen.
  2598.  
  2599. Add 4.5.3 and 4.5.4 to the standard and perhaps also
  2600. document Arthur Olsen's implementation in an Appendix.
  2601.  
  2602. 4.5.3    Set Local Time Conversion
  2603. Function:  settz()
  2604.  
  2605. 4.5.3.1    Synopsis
  2606.     int settz(p)
  2607.     char *p;
  2608.  
  2609. 4.5.3.2    Description
  2610. The settz() function determines the conversion from GMT
  2611. of the local times returned by localtime() and ctime().
  2612. When called with a null pointer argument (p==0), settz
  2613. shall select the appropriate local time conversion for the
  2614. location of the host machine on which the call is executed.
  2615. When called with a null string (p!=0 && *p=='\0'), settz
  2616. shall select no conversion for localtime, making localtime()
  2617. and gmtime() equivalent and ctime() and asctime(gmtime())
  2618. equivalent.  When called with a non-null string (p!=0 && *p!='\0'),
  2619. settz may set the conversion according to that string.
  2620. The format of the string and the conversions it may specify
  2621. are implementation specific.  If an implementation accepts
  2622. non-null string arguments to settz, the implementation
  2623. should allow users to define their own conversions
  2624. rather than restricting conversions to a standard set.
  2625. If settz is called with a string for which the implementation
  2626. can not find a conversion, settz shall return -1, but the
  2627. conversion it sets is implementation defined and may be one of
  2628. GMT, the executing machine's local time, or local time for
  2629. the area where the implementation was performed.
  2630.  
  2631. 4.5.3.3    Returns
  2632. Upon successful completion, settz() returns 0, otherwise -1.
  2633.  
  2634. 4.5.4    Get Local Time
  2635. Functions:  localtime(), ctime()
  2636.  
  2637. 4.5.4.1    Synopsis
  2638. [ as in X3J11 ]
  2639.  
  2640. 4.5.4.2    Description
  2641. [ as in X3J11, plus: ]
  2642. The local time conversion is specified by a call on settz().
  2643. If localtime() or ctime() is called and settz() has not been called
  2644. since the last exec(), the localtime() or ctime() call shall call
  2645. settz(getenv("TZ")) before performing the local time conversion.
  2646. The local time conversion should be accurate for all times
  2647. from the base time of the time() function up to the time
  2648. the call is made.  Future times should be converted as accurately
  2649. as possible with available political information.  Daylight savings
  2650. time should be taken into account in both cases.
  2651.  
  2652. 4.5.4.3    Returns
  2653. [as in X3J11 ]
  2654.  
  2655. 4.5.4.4    Errors
  2656. [as in X3J11 ]
  2657.  
  2658. Volume-Number: Volume 6, Number 33
  2659.  
  2660. From jsq  Sat Jul 19 12:37:44 1986
  2661. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  2662. Newsgroups: mod.std.unix
  2663. Subject: Re: RFC.001 Timezone Interface
  2664. Message-Id: <5369@ut-sally.UUCP>
  2665. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  2666. In-Reply-To: <5352@ut-sally.UUCP>
  2667. Date: 19 Jul 86 17:36:06 GMT
  2668. Draft-9: TZ.RFC.001
  2669.  
  2670. From: ll-xn!s3sun!sdcsvax!ncr-sd!greg.@topaz.UUCP
  2671. Date: Fri, 18 Jul 86 15:47:39 PDT
  2672. Organization: NCR Corporation, Rancho Bernardo
  2673.  
  2674. Some comments about the timezone proposal to be submitted to P1003.
  2675. This is mostly nitpicking, but there are some loose ends that such
  2676. a proposal will need to specify.  I will comment from Elz's text;
  2677. the text of the proposal to P1003 follows this wording closely.
  2678.  
  2679. In article <5352@ut-sally.UUCP> Robert Elz writes:
  2680. >localtime: converts the time_t "*t" to a "struct tm" representing
  2681. >the given time adjusted to represent some local time difference.
  2682. >"local time" will be specified by a call to "settz", if no such
  2683. >call has preceded the call to localtime(), localtime() will call
  2684. >"settz(getenv("TZ"));".  ........
  2685.  
  2686. Note that this implies that there must be some way for the implementation
  2687. to tell (a) if settz has been previously called, and presumably, (b) what
  2688. value was provided by settz.  This information should be part of the
  2689. interface.  It is easy to imagine a utility logging subroutine that would
  2690. want to use the local time when inserting log entries without disturbing
  2691. other time-display calculations (the user might be running in a different
  2692. time zone), so this logging subroutine will need to be able to set and
  2693. potentially reset the time zone information.
  2694.  
  2695. [ Perhaps.  The assumption is that a process will either use the
  2696. same variety of localtime throughout, or that it will explicitly
  2697. set the kind it wants with settz before using localtime.
  2698. That still leaves the question of how localtime knows settz
  2699. has been used previously, but as long as it does, it's
  2700. not clear that an application writer needs to know how
  2701. it's done.  -mod ]
  2702.  
  2703. >If settz is called with an unrecognisable argument, the effect
  2704. >is implementation defined.  (Users might expect any of three
  2705. >"reasonable"? actions could be taken here -- use GMT, use local time,
  2706. >or use local time in the area where the implementation was performed).
  2707.  
  2708. Since I have been bitten too many times by having the default time zone
  2709. be that of the implementers, I feel that option three is unreasonable.
  2710. Presumably, since an attempt was made to set the time zone to a non-local
  2711. value, using GMT as a canonical non-local time zone is probably reasonable
  2712. (for everybody except those in England, of course -- perhaps it should be
  2713. called UCT when in this mode so as not to use the same abbreviation).
  2714.  
  2715. [ This is an example of something you'll find throughout 1003.1:
  2716. an attempt to not outlaw existing behavior of existing systems.
  2717. If option three were not included (ugly as it is), I doubt the committee
  2718. would be able to reach consensus on including settz.  -mod ]
  2719.  
  2720. >What's missing:  So far here there is no mention of the "timezone name".
  2721. >None of the standard mechanisms is really adequate here.  ......
  2722. >Arthur Olson's scheme causes "localtime" to set a global variable
  2723. >"tz_abbr" to the correct string name for the timezone just used.
  2724.  
  2725. I propose an extension of the System V mechanism.  That interface defines
  2726. "extern char *tzname[2]" for the time zone names and has a field in the
  2727. tm struct (tm_isdst) that is non-zero if daylight savings is in effect;
  2728. i.e., the current timezone name is tzname[tm.tm_isdst != 0].  I propose
  2729. that the standard add "extern char *tzname[]" (note that the length is
  2730. not specified; the bound would be implementation-defined) and have wording
  2731. that says that tzname[tm.tm_isdst] is the name of the relevant timezone.
  2732. Since the current System V implementation only sets tm_isdst to zero or
  2733. one, this is actually backward compatible.  (In fact, I just looked through
  2734. our System V sources for uses of tzname; most of the uses are of the latter
  2735. form rather than the former, so this proposal is even more compatible than
  2736. it looks.)
  2737.  
  2738. >....[problems simulating BSDs "timezone()" function] - one might be to
  2739. >retain "timezone" but not require that it be capable of returning
  2740. >anything except the zone name corresponding to the last call of
  2741. >localtime()  .......
  2742.  
  2743. With the above proposal, "timezone()" would return values selected from
  2744. the tzname array if the time zone was one covered by the last settz(), or
  2745. otherwise return a string of the form "+-hhmm".  This function probably
  2746. should not be part of the standard, since it is primarily present for
  2747. backward compatibility.  If it is present, it should be depreciated so
  2748. that it can go away in the future.
  2749.  
  2750. And while we're on backward compatibility, the SysV function tzset() could
  2751. be defined as "if(timezone_not_set) settz(getenv("TZ");" to be compatible
  2752. with the way it currently works; again, if this function is defined, its
  2753. usage should be depreciated.
  2754.  
  2755. [ I don't think tzset is in the standard, but that's a useful implementation
  2756. note.  -mod ]
  2757.  
  2758. System V also defines external variables for the current timezone and daylight
  2759. savings rule.  Are there any programs that actually use these?  Should they be
  2760. part of the interface as well?  (Or some equivalent functionality?)
  2761.  
  2762. -- 
  2763. -- Greg Noel, NCR Rancho Bernardo    Greg@ncr-sd.UUCP or Greg@nosc.ARPA
  2764.  
  2765.  
  2766. Volume-Number: Volume 6, Number 34
  2767.  
  2768. From jsq  Mon Jul 21 08:46:20 1986
  2769. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  2770. Newsgroups: mod.std.unix
  2771. Subject: Re: RFC.001 Timezone Interface
  2772. Message-Id: <5382@ut-sally.UUCP>
  2773. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  2774. In-Reply-To: <5369@ut-sally.UUCP>
  2775. Date: 21 Jul 86 13:46:02 GMT
  2776. Draft-9: TZ.RFC.001
  2777.  
  2778. Date: Mon, 21 Jul 86 01:23:29 edt
  2779. From: im4u!caip!mark@cbosgd.ATT.COM (Mark Horton)
  2780. Organization: AT&T Bell Laboratories, Columbus
  2781.  
  2782. >System V also defines external variables for the current timezone and daylight
  2783. >savings rule.  Are there any programs that actually use these?  Should they be
  2784. >part of the interface as well?  (Or some equivalent functionality?)
  2785.  
  2786. Yes, there's an important use.  If you're generating an RFC 822 compatible
  2787. >Date: line, you need to know the local offset from GMT or the time zone
  2788. name.  You can't just plug in the time zone name, because only the names
  2789. in the USA are allowed by 822, and if you try to extend that to the rest
  2790. of the world, you run into ambiguities.  In general, you can't assume that
  2791. someone in an arbitrary location in the world will understand your local
  2792. name for your time zone.  So you have to generate a zone like "+hhmm".
  2793.  
  2794. One might even claim that, in a zone like Japan, asking for the time zone
  2795. name should return "+0900" rather than "JST".  Probably not, but it's
  2796. a thought.
  2797.  
  2798.     Mark
  2799.  
  2800. Volume-Number: Volume 6, Number 35
  2801.  
  2802. From jsq  Tue Jul 22 20:01:34 1986
  2803. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  2804. Newsgroups: mod.std.unix
  2805. Subject: Re: RFC.001 Timezone Interface
  2806. Message-Id: <5387@ut-sally.UUCP>
  2807. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  2808. Date: 23 Jul 86 01:00:55 GMT
  2809. Draft-9: TZ.RFC.001
  2810.  
  2811. Date: 23 Jul 86 08:38:34 +1000 (Wed)
  2812. From: Robert Elz <munnari!kre@SEISMO.CSS.GOV>
  2813.  
  2814. I have (more than) a few comments about some comments
  2815. about the timezone proposal.
  2816.  
  2817. [ There's only one comment from the moderator in this article:
  2818. discussions are very useful, but to get in the standard it needs
  2819. exact wording.  In other words, anyone wanting changes to the
  2820. proposal form I posted should supply *exact wording changes*.
  2821. (An alternative would be to submit a complete new proposal.)
  2822. -mod ]
  2823.  
  2824. Quotes until stated otherwise are from Greg Noel (ncr-sd!greg)...
  2825.  
  2826. > Note that this implies that there must be some way for the implementation
  2827. > to tell (a) if settz has been previously called, and presumably, (b) what
  2828. > value was provided by settz.
  2829.  
  2830. I agree, I hadn't considered this.  However, its essential that when
  2831. there's an interface that sets some static state, there be some means
  2832. to determine the current value of that state - I've been frustrated
  2833. so many times by hardware with write only registers that I should
  2834. have seen this myself.
  2835.  
  2836. But, now after thinking about it for a few days, I'm not sure how it
  2837. should be done.  There would seem to be two quite different, but
  2838. equally possible approaches, though neither is ideal.  One would be
  2839. for settz() to save the arg string it is called with, and for a
  2840. new function (gettz() ?) to return it.  That sounds simple enough,
  2841. but unfortunately might be something of an implementation headache.
  2842. The string can be of arbitrary length, so no static buffer in settz
  2843. to hold it would be appropriate.  That means that settz would be
  2844. required to malloc() memory to hold this string, just on the off
  2845. chance that it might be needed later (which it very rarely will be).
  2846. I really have very limited enthusiasm for making library routines
  2847. at this level get involved in storage allocation.  (Settz could
  2848. presumably just remember the pointer to the string it was passed,
  2849. and gettz could return that pointer - but this has so many potential
  2850. problems that its not worth contemplating).
  2851.  
  2852. The (an?) other implementation would be to define two functions,
  2853. perhaps savetz() and restoretz().  Savetz would return (in some
  2854. manner not important here) the internal state that settz has
  2855. established.  restoretz() would restablish that state as settz
  2856. would have left it.  This might be handled by having savetz
  2857. copy the state into a buffer supplied by the caller, or perhaps
  2858. it would malloc some memory and return a pointer to that.  Malloc
  2859. here is not a problem, as its only being done by the specific
  2860. request of the user, its not a hidden side effect.
  2861.  
  2862. Of the two schemes, I think I prefer the latter, but I would
  2863. appreciate comments from readers, either to the list if you
  2864. (and the moderator) think there will be general interest in your
  2865. comments, or in mail to me.
  2866.  
  2867.  
  2868. I think John Quarterman (our friendly moderator) answered your
  2869. query about the "implementors timezone" default possibility
  2870. for settz.  I might just add that I can't imagine how a new
  2871. implementation could conceivably make that choice - its just
  2872. there to cope with old code.  To implement this proposal,
  2873. an implementation must be able to obtain both the hosts
  2874. local time, and GMT without being told anything externally
  2875. (ie: by being handed either (char *)0 or "" resp).  If it
  2876. can do that, it can also easily choose one of those as the
  2877. default in cases where it is given an invalid argument.
  2878.  
  2879.  
  2880. > I propose an extension of the System V mechanism....  I propose
  2881. > that the standard add "extern char *tzname[]" ... and have wording
  2882. > that says that tzname[tm.tm_isdst] is the name of the relevant timezone.
  2883.  
  2884. Yes, this would be nice, unfortunately it can't work.  You are assuming
  2885. that there is just one non-DST timezone name, and all the others are
  2886. names of various DST types.  This just isn't true in general.
  2887. Since tm_isdst must be zero for any tm_* that is not a daylight
  2888. savings time representation, your scheme would allow only one
  2889. non-DST zone name.  A new field could be added to struct tm to
  2890. be the tzname[] index, but this would break all existing code
  2891. that wants zone names, and if we're going to do that, perhaps we
  2892. should look and see exactly when a zone name is required.
  2893.  
  2894. To the best of my knowledge, the only sensible use of a timezone
  2895. name is to associate with a human visible date/time representation.
  2896. Since these things aren't unique, they are useless to hold any
  2897. internal representation of a timezone.  In effect, that means
  2898. that the only time a timezone name will (should) ever be needed
  2899. is when a date/time has been converted for external output, and
  2900. the zone that will be wanted will be the zone of the time that
  2901. was just converted.
  2902.  
  2903. If anyone has a counter-example, I would be pleased to learn of it.
  2904.  
  2905. Given this assumption, it seems that all that's needed is for
  2906. localtime() to arrange that the relevant zone name is available
  2907. somehow, either in an external "char *" variable, or as the
  2908. return value of a function.
  2909.  
  2910. For Sys V compatability, and implementation could provide
  2911. char *tzname[2] and set both pointers to the zone name
  2912. needed?  Is anyone aware of any code this would break?
  2913.  
  2914. For v7 conpatability, the timezone(3) function could be made
  2915. to ignore its args, and just return the selected zone name.
  2916.  
  2917.  
  2918. > And while we're on backward compatibility, the SysV function tzset() could
  2919. > be defined as "if(timezone_not_set) settz(getenv("TZ");" to be compatible
  2920. > with the way it currently works; again, if this function is defined, its
  2921. > usage should be depreciated.
  2922.  
  2923. Certainly, AT&T, and anyone who wants to be compatible with current
  2924. Sys V programs should provide tzset as indicated, and should make it,
  2925. as far as possible (note "tzname" difficulties as mentioned above)
  2926. compatible with the functionality of the Sys V tzset.
  2927.  
  2928. However, including definitions in the standard, along with wording
  2929. like "don't use this, it shouldn't be here, and is going away"
  2930. seems ludicrous to me.
  2931.  
  2932.  
  2933. > System V also defines external variables for the current timezone and daylight
  2934. > savings rule.
  2935.  
  2936. I don't know about daylight savings rule, I don't remember that one,
  2937. and my Sys V manual seems to have walked away, but "timezone" is
  2938. impossible to get right.  There's no doubt that its intended usage
  2939. is that tzset() should set this variable to the local standard timezone
  2940. offset.  But this assumes that there is such a thing as a "standard
  2941. timezone offset" that applies for all times in the zone.  This just
  2942. isn't true..  Eg: a couple of years ago now, Singapore (I think)
  2943. changed its timezone so it would be the same as Malaysia.  What
  2944. value should be put in "timezone" for Singapore?  The correct answer
  2945. depends on what time is being converted - if its a time before the
  2946. switch, then it should be their old zone, for one after, it should be
  2947. the new zone.  That is, its not a constant!
  2948.  
  2949.  
  2950. Following quotes are from Mark Horton (cbosgd!mark)...
  2951.  
  2952. [about uses of "timezone"]
  2953. > Yes, there's an important use.  If you're generating an RFC 822 compatible
  2954. > Date: line, you need to know the local offset from GMT...
  2955.  
  2956. Nonsense!  This isn't a use of the Sys V "timezone" variable at all.
  2957. That's not the information it provides.  What you need for an RFC822
  2958. Date: line is the numeric offset of the time that was converted.
  2959. That's not necessarily the hosts local time zone (which is what
  2960. "timezone" is supposed to contain).  And even in cases where host local
  2961. time is what is wanted, "timezone" isn't it - as the local time converted
  2962. might have been a daylight savings time.  To turn the Sys V "timezone"
  2963. into the correct thing in that case, one would need to imbed some
  2964. nonsense like "if (tm->tm_isdst) timezone += 60;"  (or maybe -= 60,
  2965. and maybe the number is 3600, details are irrelevant.  And no, I
  2966. wouldn't really modify "timezone").  Getting rid of assumptions about
  2967. things like DST being one hour forwards is one of the major aims of
  2968. all this.
  2969.  
  2970. What *is* needed is a method to obtain the timezone offset that is
  2971. appropriate for a given time.  That's a different problem entirely.
  2972. An interface to provide this information might be valuable.  If
  2973. there isn't such an interface, then the offset can easily calculated
  2974. in a portable manner by applications (see my posting to mod.sources,
  2975. vol 6 issue 12 "datediffs" for an example of doing approximately this).
  2976.  
  2977.  
  2978. > One might even claim that, in a zone like Japan, asking for the time zone
  2979. > name should return "+0900" rather than "JST".  Probably not, but it's
  2980. > a thought.
  2981.  
  2982. This was, of course, a joke (and not even a good one).
  2983.  
  2984.  
  2985. Robert Elz    seismo!munnari!kre   kre%munnari.oz@seismo.css.gov
  2986.  
  2987. Volume-Number: Volume 6, Number 36
  2988.  
  2989. From jsq  Fri Jul 25 10:20:27 1986
  2990. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  2991. Newsgroups: mod.std.unix
  2992. Subject: timezone implementation constraints
  2993. Message-Id: <5406@ut-sally.UUCP>
  2994. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  2995. Keywords: 1003.1 A.3
  2996. Date: 25 Jul 86 15:20:14 GMT
  2997. Draft-9: TZ
  2998.  
  2999. From: hplabs!hao!vianet!devine@pyramid.UUCP (Bob Devine)
  3000. Date: Thu, 24 Jul 86 23:13:44 mdt
  3001.  
  3002. [ This is really not directly related to IEEE 1003.1, since
  3003. it solely discusses the details of an *implementation* and
  3004. says nothing about the *interface*.  However, it does
  3005. address something which has been previously discussed
  3006. in this newsgroup, and I can't think of a better place for it.
  3007. However, please do detailed line-by-line discussions of this
  3008. through mail among interested parties.
  3009.  
  3010. Could we find a new topic?
  3011. -mod]
  3012.  
  3013.   Arthur Olson's recent posting to mod.sources included the updated
  3014. settz data tables.  This reply in mod.std.unix is to correct some
  3015. of the entries in the table and re-raise my points about what is the
  3016. best implementation.  I believe everyone has agreed on Robert Elz's
  3017. direction for the POSIX document wording.
  3018.  
  3019.   The lines beginning with "> " are from Arthur Olson.
  3020.  
  3021. > Bob Devine has written that ". . .your table is wrong for MostNA in 1974.
  3022. > The correct ending date is 10/27 not 11/24."  Yet on a 4.1bsd VAX/11-750
  3023. > system, compiling and executing the program
  3024. > [[[ program omitted ]]]
  3025. > results in the output
  3026. >    Fri Nov  1 22:40:00 1974
  3027. >    isdst: 1
  3028. > For now we'll stay with 4.1bsd's version.
  3029.  
  3030.   The date I gave is correct.  Any version of Unix that uses 11/24 is
  3031. simply wrong.  The dates for 1974 and 1975 DST rules are:
  3032.       1974   1/6  to 10/27
  3033.       1975   2/28 to 10/26
  3034.   Even the source for Xenix V that I just checked has it wrong.  Believe
  3035. me folks, this comes directly from Dept of Transportation.  (If you are
  3036. wondering why DOT has responsibility for such info, drop me a line. BD)
  3037.  
  3038. > Note also this from munnari!kre:
  3039. > "I recall also being told by someone once that Canada didn't have
  3040. > the DST variations in 74/75 that the US did, but I am not nearly
  3041. > sure enough of this to add anything."
  3042. > If Canada or Mexico decide not to follow the US change in DST that takes
  3043. > effect in 1987, additions had best be made below.
  3044.  
  3045. Canada did not follow the fuel follies for '4 and '5.
  3046. Please split the rules *by country*, not by continent, to avoid such problems.
  3047. The "MostNA" rules listed are incorrect for Canada and Mexico!
  3048.  
  3049. > Before the Uniform Time Act of 1966 took effect in 1967, observance of
  3050. > Daylight Saving Time in the US was by local option, except during wartime.
  3051.  
  3052.   This is the acid-test of all proposals for handling DST rules.  When I
  3053. submitted my suggestion to mod.std-unix last February (that now seems like
  3054. the distant past), I used the most common way of representing the changes.
  3055. The reason was I had examined all the world-wide rules and after silently
  3056. tearing my hair out trying to come up with a small table, decided to
  3057. go with the only way that I had any hope of getting right.  To represent
  3058. all of the worldwide rules for just +/- 5 years requires several hundred
  3059. lines.  No speed would ever be possible for a full table.  My way was to
  3060. just represent the current year.  At best, that simple formula would work
  3061. for many years; at worst, changes can't be handled (which is why folks
  3062. did fall in love with it).
  3063.  
  3064.   The US tried to standardize DST rules in that '66 Act.  But, of course,
  3065. there are still many exceptions.  Plus, checking dates prior to it is
  3066. painful.  Now imagine how the US was before 1967 and apply that to the
  3067. world.  You get the feeling of near chaos?
  3068.  
  3069.   I have since come to the conclusion that the best way to represent
  3070. DST and timezone information is a single rule plus an "exceptions database".
  3071. Only if the simple rule doesn't work (e.g., past or future years, other
  3072. timezones) is the database used.  This way, rules can be added as needed.
  3073. Or the entire database can be empty with the single rule used for all
  3074. conversions.
  3075.  
  3076.   DST is almost like the (jeez, I forgot who said it) quote about the
  3077. universe "being more complicated that can be possibly imagined".
  3078. This is not an exact analogy, but, at least physical laws are controlled
  3079. by Congress!
  3080.  
  3081.  
  3082. ># Rule    NAME    FROM    TO    TYPE    IN    ON    AT    SAVE    LETTER/S
  3083. >Rule    MostNA    1967    1973    -    Apr    lastSun    2:00    1:00    D
  3084. >Rule    MostNA    1967    1973    -    Oct    lastSun    2:00    0    S
  3085.  
  3086. Note: the rules for 1967 - 1973 depend on what state/territory you are in.
  3087. For example, Michigan is an exception to the rule for 1969-72 but not for
  3088. 1967-68.  Eastern Indiana is another tricky one for this period.  Again,
  3089. note that this is *after* the '66 Act that tried to standardize DST.
  3090.  
  3091. >Rule    MostNA    1974    only    -    Jan    6    2:00    1:00    D
  3092. >Rule    MostNA    1974    only    -    Nov    24    2:00    0    S
  3093.  
  3094. Should be ====>                         Oct     27
  3095.  
  3096. ># New names
  3097. >Zone    Newfoundland    -3:30    -    NST    # Is DST now observed here?
  3098.                         ># If so, when did it start?
  3099.  
  3100. Newfoundland observes DST by the same rules as the rest of Canada -- the
  3101. last Sunday in April to the last Sunday in October.  It has followed this
  3102. pattern since 1951.  Changeover time is 2am.
  3103.  
  3104. Saskatchewan is another matter...part in EST; part in CST which doesn't use DST.
  3105.  
  3106. ># Nonstandard mainland areas:
  3107.  
  3108. These rules are impossible to formulate.  The amazing variety of
  3109. different DST rules makes such a tabularizing absurd.  The rules vary
  3110. by state, by regions within states, by areas that have not yet even
  3111. been admitted to the union, by county, by city, and seemingly by whim.
  3112.  
  3113. >Rule    SomeUS    1918    1919    -    Mar    lastSun    2:00    1:00    D
  3114. >Rule    SomeUS    1918    1919    -    Oct    lastSun    2:00    0    S
  3115. >Rule    SomeUS    1942    only    -    Feb    9    2:00    1:00    W # War
  3116. >Rule    SomeUS    1945    only    -    Sep    30    2:00    0    S
  3117. >
  3118. >Zone    East-Indiana    -5:00    SomeUS    E%sT # Usually standard near South Bend
  3119. >Zone    Arizona        -7:00    SomeUS    M%sT # Usually standard in Arizona
  3120. >
  3121. ># And then there's Hawaii.
  3122. >Rule    Hawaii    1947    only    -    Jun    8    2:00    0    S
  3123.  
  3124. The information I have does not show any DST changes in 1947.  DST was
  3125. not observed in the period 1946-present.
  3126.  
  3127. Bob Devine
  3128.  
  3129. Volume-Number: Volume 6, Number 37
  3130.  
  3131. From jsq  Sat Jul 26 23:35:50 1986
  3132. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3133. Newsgroups: mod.std.unix
  3134. Subject: Re: timezone implementation constraints
  3135. Message-Id: <5422@ut-sally.UUCP>
  3136. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  3137. Date: 27 Jul 86 04:35:36 GMT
  3138. Draft-9: TZ
  3139.  
  3140. From: sun!gorodish!guy@utastro.UUCP (Guy Harris)
  3141. Date: Sat, 26 Jul 86 17:19:08 PDT
  3142.  
  3143. > This is really not directly related to IEEE 1003.1, since
  3144. > it solely discusses the details of an *implementation* and
  3145. > says nothing about the *interface*.
  3146.  
  3147. There is one point, though, that is a concern of the interface; what times
  3148. can "localtime" convert and, more generally, what times can a "time_t"
  3149. represent?  The P1003.1 standard refers to the definition of "localtime" in
  3150. the X3J11 C standard.  That standard doesn't say anything about the meaning
  3151. of the value returned by "time".  The P1003.1 standard defines it as UNIX
  3152. time, namely the number of seconds since January 1, 1970, 00:00 GMT.
  3153.  
  3154. Existing UNIX implementations at least make an attempt to convert times not
  3155. in the current year; programs such as "ls" depend on this.  If the current
  3156. standard can be interpreted as permitting "localtime", etc. not to make
  3157. their best effort to convert times not in the current year, the proposal
  3158. must tighten the wording so that this is required.  It may be possible to
  3159. permit "best effort" to mean "use this year's rules", although I suspect
  3160. people would not be at all happy with such an implementation.  An
  3161. implementation must specify what sort of effort it will make to convert
  3162. times, so that if somebody doesn't want to get stuck with an implementation
  3163. that can't convert times outside the current year they can avoid them.
  3164.  
  3165. Obviously, times in the future can't be converted with absolute certainty.
  3166. There's not much point in worrying about the inability to predict future
  3167. changes to daylight savings time rules.
  3168.  
  3169. I suspect all the debates about conversion of times in 1947 may be
  3170. completely irrelevant, since the UNIX epoch starts in 1970.  The use of the
  3171. word "since" indicates to me that only positive values of a "time_t" are
  3172. valid.  Either the standard should require this, or should indicate that
  3173. "time_t" may be negative.  I see no reason to permit negative values for
  3174. times; the difference *between* times can, however, be negative.  As such,
  3175. if "time_t" is to be used in programs for P1003.1 systems to represent the
  3176. difference between two times, it should not be an unsigned type.  If one
  3177. restricts times (as opposed to time differences) to be positive, the largest
  3178. possible differences (both positive and negative) between two times will fit
  3179. in a "time_t".
  3180.  
  3181. I propose that:
  3182.  
  3183.     1) the specification of "time" should be tightened to indicate
  3184.        that it will not return a negative value.
  3185.  
  3186.     2) the specification of "stat" should also indicate that the
  3187.        modification, access, and inode-change times shall never
  3188.        be negative.
  3189.  
  3190.     3) the "utime" call be required to return EINVAL if an attempt
  3191.        is made to set the access or modification times of a file
  3192.        to negative values.
  3193.  
  3194. If "time" is to return a valid time value, it will never return a negative
  3195. value since 1970 has already passed.  Since UNIX came out in 1971, if "stat"
  3196. or "fstat" were to return a valid time value for access, modification, or
  3197. inode-change time, it will never be negative since there weren't UNIX
  3198. systems (or any other flavor of P1003.1-compliant system) before 1970.
  3199. Thus, the only way times can be negative are if the system clock is set to a
  3200. negative value - since P1003.1 specifies no system call to set the system
  3201. clock, this is out of its control, although a caveat about this should
  3202. perhaps be included - or if "utime" is used to set the clock to such a
  3203. value, which P1003.1 can forbid.
  3204.  
  3205. Volume-Number: Volume 6, Number 38
  3206.  
  3207. From jsq  Mon Aug 11 09:46:36 1986
  3208. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3209. Newsgroups: mod.std.unix
  3210. Subject: time_t range
  3211. Message-Id: <5534@ut-sally.UUCP>
  3212. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  3213. Date: 11 Aug 86 14:46:25 GMT
  3214. Draft-9: time_t TZ
  3215.  
  3216. From: dan@BBN-PROPHET.ARPA 
  3217. Date:     Thu, 7 Aug 86 10:24:40 EDT
  3218.  
  3219. I agree that time_t need not be able to represent times before 1970.
  3220. However, I think it's rather short-sighted to say that time_t should never
  3221. have its high-order bit set.  That restricts it to representing times
  3222. before January 2038.  "UNIX will be dead by then!" you say; well, people
  3223. have been predicting the death of Fortran and COBOL for a long time now,
  3224. and it still hasn't happened, nor does it show any sign of happening.  In
  3225. UNIX's case the fact that it's the first portable operating system is
  3226. likely to cause it to continue to exist in some form for MANY years.  Even
  3227. if UNIX itself doesn't last until 2038, it will certainly last long enough
  3228. that application programmers will find it useful to be able to store and
  3229. manipulate future time values later than 2038.  They would undoubtedly
  3230. appreciate it greatly if the system library routines supplied with UNIX
  3231. worked for those time values.
  3232.  
  3233. Personally I believe that time_t ought to be an unsigned long, rather than
  3234. signed, but that would probably break a lot of existing code.  Still, we
  3235. should avoid later problems by specifying that library routines that work
  3236. with time_t values should treat it as unsigned, and should work for the
  3237. entire range of possible values.  This at least makes it possible for
  3238. careful programmers to get their code right.
  3239.  
  3240. Most of the time-related facilities in UNIX have long been marked by
  3241. an amazing short-sightedness.  Let's not perpetuate it.
  3242.  
  3243.     Dan
  3244.  
  3245. Volume-Number: Volume 6, Number 39
  3246.  
  3247. From jsq  Mon Aug 18 13:23:56 1986
  3248. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3249. Newsgroups: mod.std.unix
  3250. Subject: Access to UNIX-Related Organizations and Publications
  3251. Message-Id: <5581@ut-sally.UUCP>
  3252. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  3253. Date: 18 Aug 86 18:23:36 GMT
  3254. Draft-9: Access.User.Groups
  3255.  
  3256. This the latest in a series of similar mod.std.unix articles.
  3257. Comments are solicited.
  3258.  
  3259. Access information is given for the following:
  3260. user groups:    USENIX, /usr/group, EUUG
  3261. newsletters:    ;login:, commUNIXations, EUUG
  3262. standards:    IEEE 1003.1 (POSIX), 1003.2 (shell/tools), 1003.3 (verification)
  3263.         X3J11 (C language), /usr/group Standard,
  3264.         System V Interface Definition, X/OPEN PORTABILITY GUIDE
  3265. magazines:    UNIX REVIEW, UNIX/WORLD
  3266.  
  3267.  
  3268. This article will be adapted for ";login:  The USENIX Association Newsletter".
  3269. That newsletter is sent free of charge to all members of the USENIX Association,
  3270. whose address is
  3271.  
  3272.     USENIX Association
  3273.     P.O. Box 7
  3274.     El Cerrito, CA 94530
  3275.     415-528-8649
  3276.     {ucbvax,decvax}!usenix!office
  3277.  
  3278. USENIX sponsors two USENIX Conferences a year, featuring technical papers.
  3279. The next one is in Washington, D.C., 20-23 January 1987.
  3280.  
  3281. I (John Quarterman) am the Institutional Delegate from USENIX to the
  3282. IEEE 1003 committee (see below) and one of my functions as such is to
  3283. get comments from the USENIX membership and the general public to the
  3284. committee.  One of the ways I try to do that is by moderating this
  3285. newsgroup (currently known as mod.std.unix, eventually as comp.std.unix).
  3286. I'm also currently on the USENIX Board of Directors.
  3287.  
  3288.  
  3289. Another large group related to the UNIX System is /usr/group,
  3290.  
  3291.     /usr/group
  3292.     4655 Old Ironsides Drive, Suite 200
  3293.     Santa Clara, California 95054
  3294.     408-986-8840
  3295.  
  3296. They publish a newsletter called CommUNIXations.  The May/June 1986
  3297. issue contains a report by Heinz Lycklama (the /usr/group Institutional
  3298. Delegate to IEEE 1003) on the /usr/group Technical Committee working
  3299. groups which met in February 1986 on the areas of Networking,
  3300. Internationalization, Graphics, Realtime, Database, Performance,
  3301. and the proposed new group on Security.  I will post contact
  3302. information for these working groups as taken from that article
  3303. in a later mod.std.unix article.
  3304.  
  3305. The annual Uniforum Conferences are sponsored by /usr/group
  3306. and feature a large trade show.  The next one is in D.C.
  3307. at the same time as the next USENIX Conference.  USENIX
  3308. and /usr/group have held several concurrent conferences
  3309. in the past and will probably do so in the future.
  3310.  
  3311.  
  3312. Both USENIX and /usr/group also have tutorials at their
  3313. conferences and both sponsor other meeting activities
  3314. in addition to their regular conferences.
  3315.  
  3316.  
  3317. In Europe there is the European UNIX systems Users Group.
  3318.  
  3319.     EUUG secretariat
  3320.     Owles Hall
  3321.     Buntingford
  3322.     Herts SG9 9PL
  3323.     England
  3324.     seismo!mcvax!euug
  3325.  
  3326. They have a newsletter and hold two conferences a year.  The next one is
  3327.  
  3328.                EUUG Autumn'1986 Workshop
  3329.                       on
  3330.                Distributed UNIX Systems
  3331.  
  3332.                   Manchester, England
  3333.                22nd-25th September, 1986
  3334.  
  3335.  
  3336. There are similar groups in other parts of the world, such as Australia,
  3337. Japan, and Korea.  If such a group wishes to be included in later versions
  3338. of this access list, they should please send me information.
  3339.  
  3340.  
  3341. The IEEE 1003 Portable Operating System for Computer Environments Committee
  3342. is sometimes known colloquially as the UNIX Standards Committee.
  3343. They have recently produced the 1003.1 "POSIX" Trial Use Standard.
  3344. According to its Foreword:
  3345.  
  3346.     The purpose of this document is to define a standard
  3347.     operating system interface and environment based on the
  3348.     UNIX Operating System documentation to support application
  3349.     portability at the source level.  This is intended for
  3350.     systems implementors and applications software developers.
  3351.  
  3352. Published copies are available at $19.95,
  3353. with bulk purchasing discounts available.  Contact:
  3354.  
  3355.     IEEE Service Center
  3356.     445 Hoes Ln.
  3357.     Piscataway, NJ 08854
  3358.     714-821-8380
  3359.  
  3360. Ask for "IEEE 1003.1 Trial Use Standard" - stock number SH10546 (Book #967).
  3361.  
  3362. The Trial Use Standard will be available for comments for a period
  3363. such as a year.  The current target for a Full Use Standard is Fall 1987.
  3364. IEEE has initiated the process to have the 1003.1 effort brought into
  3365. the International Standards Organization (ISO) arena.
  3366.  
  3367. There is a paper mailing list by which interested parties may get
  3368. copies of drafts of the standard.  To get on it, or to submit comments
  3369. directly to the committee, mail to:
  3370.  
  3371.     James Isaak
  3372.     Chairperson, IEEE/CS P1003
  3373.     Charles River Data Systems
  3374.     983 Concord St.
  3375.     Framingham, MA 01701
  3376.     decvax!frog!jim
  3377.  
  3378. Sufficiently interested parties may join the working group.
  3379. The next scheduled meetings of the working group of the committee are
  3380.  
  3381.     17-19 September 1986    Palo Alto, CA    hosts: Amdahl, HP and Sun
  3382.     9-11 December 1986    Atlantic City NJ with X3J11
  3383.     2-6 March 1987        Toronto, ON
  3384.         June 1987        Phoenix, AZ    the week of USENIX
  3385.         September 1987    New Orleans, LA
  3386.  
  3387. There is also a balloting group (which intersects with the working group).
  3388. This is more difficult.  Contact the committee chair for details.
  3389. I will repost them in this newsgroup if there is sufficient interest.
  3390.  
  3391. Related working groups are
  3392.     group    subject        co-chairs
  3393.     1003.2    shell and tools    Hal Jesperson (Amdahl), Don Cragun (Sun)
  3394.     1003.3    verification    Roger Martin (NBS), Carol Raye (AT&T)
  3395.  
  3396. Both will meet concurrently with 1003.1 in Palo Alto in September,
  3397. and inquiries should go to the same address as for 1003.1.
  3398.  
  3399.  
  3400. The Abstract of the 1003.1 Trial Use Standard adds:
  3401.  
  3402.     This interface is a complement to the C Programming Language
  3403.     in the C Information Bulletin prepared by Technical Committee X3J11
  3404.     of the Accredited Standards Committee X3, Information Processing
  3405.     Systems, further specifying an environment for portable application
  3406.     software.
  3407.  
  3408. The liaison from X3J11 (sometimes known as the C Standards Committee)
  3409. to P1003 is
  3410.  
  3411.     Don Kretsch
  3412.     AT&T
  3413.     190 River Road
  3414.     Summit, NJ 07901
  3415.  
  3416. A contact for information regarding publications and working groups is
  3417.  
  3418.     Thomas Plum
  3419.     Vice Chair, X3J11 Committee
  3420.     Plum Hall Inc.
  3421.     1 Spruce Avenue
  3422.     Cardiff, New Jersey 08232
  3423.  
  3424. There is frequent discussion of X3J11 in the USENET newsgroup mod.std.c,
  3425. which see.  (That newsgroup will eventually be known as comp.std.c.)
  3426.  
  3427.  
  3428. The /usr/group Standard is the principle ancestor of P1003.1:
  3429.  
  3430.     /usr/group Standards Committee
  3431.     4655 Old Ironsides Drive, Suite 200
  3432.     Santa Clara, California 95050
  3433.  
  3434. It was $15.00 as of January, 1985.
  3435.  
  3436.  
  3437. The System V Interface Definition (The Purple Book).
  3438. This is the AT&T standard and is one of the most frequently-used
  3439. references of the IEEE 1003 committee.
  3440.  
  3441.     System V Interface Definition, Issue 2
  3442.     Select Codes 320-011 (Volume 1) and 320-012 (Volume 2)
  3443.     or Select Code 307-127 (both volumes).
  3444.     AT&T Customer Information Center
  3445.     2833 North Franklin Road
  3446.     Indianapolis, IN 46219
  3447.     1-800-432-6600, operator 77.
  3448.     
  3449.  
  3450. The price is about 37 U.S. dollars for each volume or $52 for the pair.
  3451. Major credit cards are accepted for telephone orders:  mail orders
  3452. should include a check or money order.  Previous SVID owners should
  3453. have received a discount coupon to upgrade to Release 2 for only $37.
  3454.  
  3455. Volume 1 is essentially equivalent to the whole previous SVID;
  3456. Volume 2 is mostly commands and a few add-ons (e.g. curses).
  3457. A third volume is expected in the last quarter of 1986 to cover new
  3458. items in System V Release 3, such as streams and networking.  There may
  3459. be an upgrade discount similar to the previous one.  A draft copy is
  3460. reputed to be available now to source licensees.
  3461.  
  3462.  
  3463. The X/OPEN PORTABILITY GUIDE (The Green Book)
  3464. is another reference frequently used by IEEE 1003.
  3465.  
  3466. X/OPEN is "A Group of European Computer Manufacturers" who have produced
  3467. a document intended to promote the writing of portable facilities.
  3468. (They now have member computer manufacturers from outside Europe.)
  3469. Their flyer remarks (in five languages), "Now we all speak the same
  3470. language in Europe."
  3471.  
  3472. The book is published by
  3473.  
  3474.     Elsevier Science Publishers
  3475.     Book Order Department
  3476.     PO Box 211
  3477.     1000 AE Amsterdam
  3478.     The Netherlands
  3479.  
  3480. or, for those in the U.S.A. or Canada:
  3481.  
  3482.     Elsevier Science Publishers Co Inc.
  3483.     PO Box 1663
  3484.     Grand Central Station
  3485.     New York, NY 10163
  3486.  
  3487. The price is Dfl 275,00 or USD 75.00.  According to the order form,
  3488. "This price includes the costs of one update which will be mailed
  3489. automatically upon publication."  They take a large number of credit
  3490. cards and other forms of payment.
  3491.  
  3492.  
  3493. The two main general circulation magazines about the UNIX system are
  3494.  
  3495.     UNIX REVIEW            UNIX/WORLD
  3496.     Miller Freeman Publications Co.    Tech Valley Publishing
  3497.     500 Howard Street        444 Castro St.
  3498.     San Francisco, CA 94105        Mountain View, CA 94041
  3499.     415-397-1881            415-940-1500
  3500.  
  3501.  
  3502. Corrections and additions to this article are solicited.
  3503. Oh, yes:  "UNIX is a Registered Trademark of AT&T."
  3504.  
  3505. Volume-Number: Volume 6, Number 40
  3506.  
  3507. From jsq  Fri Aug 29 13:51:32 1986
  3508. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3509. Newsgroups: mod.std.unix
  3510. Subject: negative time_t values
  3511. Message-Id: <5638@ut-sally.UUCP>
  3512. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  3513. Keywords: RFC.001, timezones
  3514. Date: 29 Aug 86 18:51:09 GMT
  3515. Draft-9: TZ.time_t
  3516.  
  3517. From: elsie!ado@seismo.UUCP 
  3518. Date: Mon, 25 Aug 86 18:35:05 EDT
  3519. Subject: negative time_t values
  3520.  
  3521. While it's true that no UNIX files date back to before January 1, 1970,
  3522. there *are* uses for times before that epoch:  in personnel data bases where
  3523. birth dates are recorded; in data bases recording astronomical events;
  3524. in stock market price data bases (as used by chartist fanatics); and elsewhere.
  3525. (And what of all those old 7094 executables that are being used on IBM machines
  3526. running UNIX or a cousin?  :-))
  3527.  
  3528. I see more use in the short run for being able to record times between
  3529. 1901 and 1970 that I see for being able to record times after 2038.
  3530. And if we do make it into the twenty-first century, I imagine we'll be working
  3531. on machines with 256-bit registers where time_t will have a type that allows
  3532. it to represent times into the very distant future; if it's defined properly,
  3533. time_t variables will also be able to represent times into the very distant
  3534. past.
  3535.  
  3536. In summary:  I'd recommend retaining the ability for time_t variables to
  3537. represent times before 1970.
  3538. --
  3539. UNIX is an AT&T registered trademark.
  3540. Time is a Time/Life Incorporated trademark.
  3541. IBM is an IBM trademark.
  3542. --
  3543.     UUCP: ..decvax!seismo!elsie!ado   ARPA: elsie!ado@seismo.ARPA
  3544.     DEC, VAX, Elsie & Ado are Digital, Borden & Ampex trademarks.
  3545.  
  3546.  
  3547. Volume-Number: Volume 6, Number 41
  3548.  
  3549. From jsq  Wed Sep  3 22:42:17 1986
  3550. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3551. Newsgroups: mod.std.unix
  3552. Subject: Re: negative time_t values
  3553. Message-Id: <5661@ut-sally.UUCP>
  3554. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  3555. Date: 4 Sep 86 03:42:05 GMT
  3556. Draft-9: TZ.time_t
  3557.  
  3558. From: sun!gorodish!guy@utastro.UUCP (Guy Harris)
  3559. Date: Sat, 30 Aug 86 20:39:06 PDT
  3560.  
  3561. > While it's true that no UNIX files date back to before January 1, 1970,
  3562. > there *are* uses for times before that epoch:
  3563.  
  3564. Yes, but there are other representations for such dates and times; there's
  3565. no particular need to have "time_t" objects represent dates in 4004 BCE, for
  3566. example.  Most of the time, they are represented as mixed-radix numbers,
  3567. giving year, month, day, etc., or year, day of year, etc..  The standard
  3568. arithmetic functions on dates (date1 - date2, date1 + offset, etc.) are
  3569. possible, if slightly less convenient, as are comparisons of dates.  Most of
  3570. the examples given don't currently use "time_t", as they're not done on UNIX
  3571. systems, and there's no good reason to change them and not much reason to
  3572. use "time_t" for future programs of those sorts.  ("time_t" is an especially
  3573. poor choice for astronomical event databases; many interesting such events
  3574. occurred more than 68 years before 1970....)
  3575.  
  3576. > I see more use in the short run for being able to record times between
  3577. > 1901 and 1970 that I see for being able to record times after 2038.
  3578.  
  3579. Yes, but is there a use for recording UNIX file modification times between
  3580. 1901 and 1970?  Other times can be recorded in forms other than a "time_t".
  3581.  
  3582. > In summary:  I'd recommend retaining the ability for time_t variables to
  3583. > represent times before 1970.
  3584.  
  3585. It's not a case of "retaining".  The 1003.1 Trial-Use Standard says that the
  3586. result of "time" represents "the value of times in seconds *since* 00:00:00
  3587. GMT, January 1, 1970" (italics mine), and that the values of the time fields
  3588. in a "stat" structure are also times since the epoch.  All definitions of
  3589. "since" in the Webster's Third in my office indicate that it refers to times
  3590. in the future of the associated event, so March 25, 1967, 18:00:00 GMT is
  3591. not a time since the epoch and is not a value that "time" will return, nor
  3592. is it a time that will appear in a "struct stat" time field.
  3593.  
  3594. Assigning a meaning to negative "time_t" values may be straightforward in
  3595. that it's done by replacing "since" with "before, at, or since"; however, it
  3596. does involve changes to existing UNIX implementations to permit them to be
  3597. interpreted as local times (even with table-driven time zone conversion
  3598. routines, one has to get the tables right!).  Few, if any, existing programs
  3599. deliberately store negative values in "time_t" variables; many of those
  3600. programs are likely to want to store times more than +/- 68 years from the
  3601. epoch, so liberalizing the meaning of "time_t" isn't going to help them.
  3602. They'll have to wait for the hypothetical time in the future when "time_t"
  3603. is made a "long long int" or when all 32-bit machines have been replaced by
  3604. 64-bit machines to make "time_t" useful to them.
  3605.  
  3606. Volume-Number: Volume 6, Number 42
  3607.  
  3608. From jsq  Wed Sep  3 23:00:15 1986
  3609. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3610. Newsgroups: mod.std.unix
  3611. Subject: Re: negative time_t values
  3612. Message-Id: <5663@ut-sally.UUCP>
  3613. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  3614. Keywords: RFC.001
  3615. Summary: disagree with ado
  3616. In-Reply-To: <5638@ut-sally.UUCP>
  3617. Date: 4 Sep 86 03:59:55 GMT
  3618. Draft-9: TZ.time_t
  3619.  
  3620. From: hadron!jsdy@seismo.UUCP (Joseph S. D. Yao)
  3621. Date: Tue, 2 Sep 86 04:14:29 edt
  3622. Organization: Hadron, Inc., Fairfax, VA
  3623.  
  3624. In article <5638@ut-sally.UUCP> you write:
  3625. >From: elsie!ado@seismo.UUCP 
  3626. >While it's true that no UNIX files date back to before January 1, 1970,
  3627. >there *are* uses for times before that epoch:  in personnel data bases where
  3628. >birth dates are recorded; in data bases recording astronomical events;
  3629. >in stock market price data bases (as used by chartist fanatics); and elsewhere.
  3630.  
  3631. These should be recorded in the DATE format of your DBMS, not as a
  3632. longint!  If your DBMS has no DATE format (tsk!), it should be recorded
  3633. as three [or six] ints.  Yes, I know you'll have to compare via a
  3634. procedure instead of an op; see the (tsk!) above.
  3635.  
  3636. >(And what of all those old 7094 executables that are being used on IBM machines
  3637. >running UNIX or a cousin?  :-))
  3638.  
  3639. What of them?
  3640.  
  3641. >I see more use in the short run for being able to record times between
  3642. >1901 and 1970 that I see for being able to record times after 2038.
  3643.  
  3644. Possibly.  But I plan to be living (and making plans) well into the
  3645. 2000's.  I don't want to run up against a wall.  (I already have, in
  3646. that versions of Unix today don't allow such dates, and I have -- I
  3647. don't remember why! -- tried to use them.)
  3648.  
  3649. In addition, you would not be "retaining" any capability -- the systems
  3650. I know tend to turn negative dates into something on the order of:
  3651.     Sat Feb  5 01:28:16 2^A06
  3652. (This is -(60*60*24): the '^A' is, yes, a control-A.)
  3653. Any date after 31 Dec 1999 up to some value >> 2^31 loses everything
  3654. after the '2' in the year:  I think the second char of the year is
  3655. being converted to a control-@, or NUL character.
  3656.  
  3657. (Results from 4BSD and Ultrix on VAX and 680x0 processors.  I haven't
  3658. tried this on the s5/VAX.)
  3659. -- 
  3660.  
  3661.     Joe Yao        hadron!jsdy@seismo.{CSS.GOV,ARPA,UUCP}
  3662.             jsdy@hadron.COM (not yet domainised)
  3663.  
  3664. Volume-Number: Volume 6, Number 43
  3665.  
  3666. From jsq  Fri Sep  5 17:46:54 1986
  3667. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3668. Newsgroups: mod.std.unix
  3669. Subject: Re: negative time_t values
  3670. Message-Id: <5673@ut-sally.UUCP>
  3671. References: <5663@ut-sally.UUCP>
  3672. Reply-To: campbell%maynard.UUCP@harvisr.HARVARD.EDU (Larry Campbell)
  3673. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  3674. Keywords: RFC.001
  3675. Summary: not all unix libraries are broken
  3676. Date: 5 Sep 86 22:46:42 GMT
  3677. Draft-9: TZ.time_t
  3678.  
  3679. From: campbell%maynard.UUCP@HARVISR.HARVARD.EDU (Larry Campbell)
  3680. Date: Fri, 5 Sep 86 01:51:09 EDT
  3681. Organization: The Boston Software Works, Inc.
  3682.  
  3683. >From: hadron!jsdy@seismo.UUCP (Joseph S. D. Yao)
  3684. >
  3685. >In addition, you would not be "retaining" any capability -- the systems
  3686. >I know tend to turn negative dates into something on the order of:
  3687. >    Sat Feb  5 01:28:16 2^A06
  3688. > ...
  3689. >(Results from 4BSD and Ultrix on VAX and 680x0 processors.  I haven't
  3690. >tried this on the s5/VAX.)
  3691.  
  3692. For what it's worth, I tried several interesting values on my VENIX 2.0
  3693. (V7-based) system.  It handles negative values "properly" (that is, it
  3694. prints reasonable dates prior to 1970);  for instance, 0xC0000000 yields
  3695. "1935 Dec 23 05:22:56".  And it also handles dates beyond 2000 correctly;
  3696. 0x70000000 yields "2029 Jul 18 01:49:52".
  3697. -- 
  3698. Larry Campbell                             The Boston Software Works, Inc.
  3699. ARPA: campbell%maynard.uucp@harvard.ARPA   120 Fulton Street, Boston MA 02109
  3700. UUCP: {alliant,wjh12}!maynard!campbell     (617) 367-6846
  3701.  
  3702. [ Depends on what you call broken.
  3703.  
  3704. Another example where time values outside the currently supported
  3705. (or proposed) range would be useful:  some of us like to play with
  3706. genealogical software;  I have known ancestors back to the thirteenth
  3707. century and frequently work with data to the sixteenth century.
  3708. But time_t probably isn't the appropriate format to keep such dates,
  3709. considering Julian vs. Gregorian calendars, old and new style new years,
  3710. etc.  -mod ]
  3711.  
  3712. Volume-Number: Volume 6, Number 44
  3713.  
  3714. From jsq  Sat Sep  6 11:27:03 1986
  3715. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3716. Newsgroups: mod.std.unix
  3717. Subject: Access to UNIX User Groups and Publications
  3718. Message-Id: <5678@ut-sally.UUCP>
  3719. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  3720. Date: 6 Sep 86 16:26:48 GMT
  3721. Draft-9: Access.User.Groups
  3722.  
  3723. This is the latest in a series of similar mod.std.unix articles.  The
  3724. information previously posted in one article has been broken into two:
  3725. one about user groups and publications (this one), the other about standards.
  3726.  
  3727.  
  3728. Access information is given in this article for the following:
  3729. user groups:    USENIX, /usr/group, EUUG, AUUG
  3730. newsletters:    ;login:, CommUNIXations, EUUG, AUUGN
  3731. magazines:    UNIX REVIEW, UNIX/WORLD
  3732.  
  3733.  
  3734. USENIX is "The Professional and Technical UNIX(R) Association."
  3735.  
  3736.     USENIX Association
  3737.     P.O. Box 7
  3738.     El Cerrito, CA 94530
  3739.     415-528-8649
  3740.     {ucbvax,decvax}!usenix!office
  3741.  
  3742. USENIX sponsors two USENIX Conferences a year, featuring technical papers.
  3743. The next one is in Washington, D.C., 20-23 January 1987.
  3744. They publish ";login:  The USENIX Association Newsletter"
  3745. which is sent free of charge to all their members.
  3746.  
  3747.  
  3748. /usr/group is "the commercially oriented UNIX system users organization."
  3749.  
  3750.     /usr/group
  3751.     4655 Old Ironsides Drive, Suite 200
  3752.     Santa Clara, California 95054
  3753.     408-986-8840
  3754.  
  3755. They publish a newsletter called CommUNIXations.
  3756.  
  3757. The annual Uniforum Conferences are sponsored by /usr/group
  3758. and feature a large trade show.  The next one is in D.C.
  3759. at the same time as the next USENIX Conference.  USENIX
  3760. and /usr/group have held several concurrent conferences
  3761. in the past and will probably do so in the future.
  3762.  
  3763.  
  3764. Both USENIX and /usr/group also have tutorials at their
  3765. conferences and both sponsor other meeting activities
  3766. in addition to their regular conferences.
  3767.  
  3768.  
  3769. EUUG is the European UNIX systems Users Group.
  3770.  
  3771.     EUUG secretariat
  3772.     Owles Hall
  3773.     Buntingford
  3774.     Herts SG9 9PL
  3775.     England
  3776.     seismo!mcvax!euug
  3777.  
  3778. They have a newsletter and hold two conferences a year.  The next one is
  3779.  
  3780.                EUUG Autumn 1986 Workshop
  3781.                       on
  3782.                Distributed UNIX Systems
  3783.  
  3784.                   Manchester, England
  3785.                22nd-25th September, 1986
  3786.  
  3787.  
  3788. AUUG is the Australian UNIX systems users Group.
  3789.  
  3790.     AUUG
  3791.     P.O. Box 366
  3792.     Kensington
  3793.     N.S.W.    2033
  3794.     Australia
  3795.  
  3796.     seismo!munnari!auug
  3797.     auug@munnari.oz.au
  3798.  
  3799. Phone contact can occasionally be made at +61 3 344 5225
  3800.  
  3801. AUUG holds biennial conferences, usually of 2 days each:
  3802. the next one will probably be in late February 1986.
  3803. They publish a newsletter (AUUGN) at a frequency defined
  3804. to be every 2 months.
  3805.  
  3806.  
  3807. There are similar groups in other parts of the world, such as Japan and
  3808. Korea.  If such a group wishes to be included in later versions of this
  3809. access list, they should please send me information.
  3810.  
  3811.  
  3812. The two main general circulation magazines about the UNIX system are
  3813.  
  3814.     UNIX REVIEW            UNIX/WORLD
  3815.     Miller Freeman Publications Co.    Tech Valley Publishing
  3816.     500 Howard Street        444 Castro St.
  3817.     San Francisco, CA 94105        Mountain View, CA 94041
  3818.     415-397-1881            415-940-1500
  3819.  
  3820.  
  3821. Corrections and additions to this article are solicited.
  3822. Oh, yes:  "UNIX is a Registered Trademark of AT&T."
  3823.  
  3824. Volume-Number: Volume 6, Number 45
  3825.  
  3826. From jsq  Sat Sep  6 11:29:38 1986
  3827. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  3828. Newsgroups: mod.std.unix
  3829. Subject: Access to UNIX-Related Standards
  3830. Message-Id: <5679@ut-sally.UUCP>
  3831. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  3832. Date: 6 Sep 86 16:29:14 GMT
  3833. Draft-9: Access.Standards
  3834.  
  3835. This is the latest in a series of similar mod.std.unix articles.  The
  3836. information previously posted in one article has been broken into two:
  3837. one about user groups and publications, the other about standards (this one).
  3838.  
  3839.  
  3840. Access information is given in this article for the following standards:
  3841. IEEE 1003.1 (POSIX), 1003.2 (shell/tools), 1003.3 (verification)
  3842. /usr/group working groups on networking, graphics, database,
  3843.     internationalization, performance measurements, realtime, and security
  3844. X3J11 (C language)
  3845. /usr/group Standard
  3846. System V Interface Definition
  3847. X/OPEN PORTABILITY GUIDE
  3848.  
  3849.  
  3850. The IEEE P1003 Portable Operating System for Computer Environments Committee
  3851. is sometimes known colloquially as the UNIX Standards Committee.
  3852. They have recently produced the 1003.1 "POSIX" Trial Use Standard.
  3853. According to its Foreword:
  3854.  
  3855.     The purpose of this document is to define a standard
  3856.     operating system interface and environment based on the
  3857.     UNIX Operating System documentation to support application
  3858.     portability at the source level.  This is intended for
  3859.     systems implementors and applications software developers.
  3860.  
  3861. Published copies are available at $19.95,
  3862. with bulk purchasing discounts available.  Contact:
  3863.  
  3864.     IEEE Service Center
  3865.     445 Hoes Ln.
  3866.     Piscataway, NJ 08854
  3867.     714-821-8380
  3868.  
  3869. Ask for "IEEE 1003.1 Trial Use Standard" - stock number SH10546 (Book #967).
  3870.  
  3871. The Trial Use Standard will be available for comments for a period
  3872. such as a year.  The current target for a Full Use Standard is Fall 1987.
  3873. IEEE has initiated the process to have the 1003.1 effort brought into
  3874. the International Organization for Standardization (ISO) arena.
  3875.  
  3876. There is a paper mailing list by which interested parties may get
  3877. copies of drafts of the standard.  To get on it, or to submit comments
  3878. directly to the committee, mail to:
  3879.  
  3880.     James Isaak
  3881.     Chairperson, IEEE/CS P1003
  3882.     Charles River Data Systems
  3883.     983 Concord St.
  3884.     Framingham, MA 01701
  3885.     decvax!frog!jim
  3886.  
  3887. Sufficiently interested parties may join the working group.
  3888. The next scheduled meetings of the working group of the committee are
  3889.  
  3890.     17-19 September 1986    Palo Alto, CA    hosts: Amdahl, HP and Sun
  3891.     9-11 December 1986    Atlantic City NJ with X3J11
  3892.     2-6 March 1987        Toronto, ON
  3893.         June 1987        Phoenix, AZ    the week of USENIX
  3894.         September 1987    New Orleans, LA
  3895.  
  3896. There is also a balloting group (which intersects with the working group).
  3897. This is more difficult.  Contact the committee chair for details.
  3898. I will repost them in this newsgroup if there is sufficient interest.
  3899.  
  3900. Related working groups are
  3901.     group    subject        co-chairs
  3902.     1003.2    shell and tools    Hal Jespersen (Amdahl), Don Cragun (Sun)
  3903.     1003.3    verification    Roger Martin (NBS), Carol Raye (AT&T)
  3904.  
  3905. Both will meet concurrently with 1003.1 in Palo Alto in September
  3906. (though 1003.2 will meet concurrently only on the morning of the 17th),
  3907. and inquiries should go to the same address as for 1003.1.
  3908.  
  3909. There are two Institutional Representatives to P1003:  John Quarterman
  3910. from USENIX and Heinz Lycklama from /usr/group.  As the one from USENIX,
  3911. one of my functions is to get comments from the USENIX membership and
  3912. the general public to the committee.  One of the ways I try to do that
  3913. is by moderating this newsgroup (currently known as mod.std.unix,
  3914. eventually as comp.std.unix).  An article related to this one will
  3915. appear in the September/October 1986 ;login: (The USENIX Association
  3916. Newsletter).  I'm also currently on the USENIX Board of Directors.
  3917.  
  3918. The May/June 1986 issue of CommUNIXations (the /usr/group newsletter)
  3919. contains a report by Heinz Lycklama on the /usr/group Technical Committee
  3920. working groups which met in February 1986 on the areas of Networking,
  3921. Internationalization, Graphics, Realtime, Database, Performance, and
  3922. the proposed new group on Security.  Here is contact information for
  3923. those working groups as taken from that article (if you are interested
  3924. in starting another working group, contact Heinz Lycklama at the address
  3925. below):
  3926.  
  3927. /usr/group Working Group on Networking:
  3928.     Dave Buck
  3929.     D.L. Buck & Associates, Inc.
  3930.     6920 Santa Teresa Bldg, #108
  3931.     San Jose, CA 95119
  3932.     (408)972-2825
  3933.  
  3934. /usr/group Working Group on Internationalization:
  3935.     Brian Boyle            Karen Barnes
  3936.     Novon Research Group        Hewlett-Packard Co.
  3937.     537 Panorama Dr.        19447 Pruneridge Ave.
  3938.     San Francisco, CA 94131        M/S 47U2
  3939.     (415)641-9800            Cupertino, CA 95014
  3940.                     (408) 725-8111, ext 2438
  3941.  
  3942. /usr/group Working Group on Graphics:
  3943.     Heinz Lycklama
  3944.     Interactive Systems Corp.
  3945.     2401 Colorado Ave., 3rd Fl.
  3946.     Santa Monica, CA 90404
  3947.     (213)453-8649
  3948.  
  3949. /usr/group Working Group on Realtime:
  3950.     Bill Corwin            Ben Patel
  3951.     Intel Corp.            EDS Corp.
  3952.     5200 Elam Young Pkwy        P.O. Box 5121
  3953.     Hillsboro, OR 97123        23077 Greenfield
  3954.     (503)640-7588            Southfield, MI 48075
  3955.                     (313)443-3460
  3956.  
  3957. /usr/group Working Group on Database:
  3958.     Val Skalabrin
  3959.     Unify Corp.
  3960.     1111 Howe Ave.
  3961.     Sacramento, CA 95825
  3962.     (916)920-9092
  3963.  
  3964. /usr/group Working Group on Performance Measurements:
  3965.     Ram Celluri            Dave Hinant
  3966.     AT&T Computer Systems        SCI Systems, Inc.
  3967.     Room E15B            Ste 325, Pamlico Bldg
  3968.     4513 Western Ave.        Research Triangle Pk, NC 27709
  3969.     Lisle, IL 60532            (919)549-8334
  3970.     (312)810-6223
  3971.  
  3972. /usr/group Working Group on Security:
  3973.     Steve Sutton
  3974.     Computer Systems Div.
  3975.     Gould Inc.
  3976.     1101 East University
  3977.     Urbana, IL 61801
  3978.     (217)384-8500
  3979.  
  3980.  
  3981. The Abstract of the 1003.1 Trial Use Standard adds:
  3982.  
  3983.     This interface is a complement to the C Programming Language
  3984.     in the C Information Bulletin prepared by Technical Committee X3J11
  3985.     of the Accredited Standards Committee X3, Information Processing
  3986.     Systems, further specifying an environment for portable application
  3987.     software.
  3988.  
  3989. X3J11 is sometimes known as the C Standards Committee.  Their liaison to
  3990. P1003 is
  3991.  
  3992.     Don Kretsch
  3993.     AT&T
  3994.     190 River Road
  3995.     Summit, NJ 07901
  3996.  
  3997. A contact for information regarding publications and working groups is
  3998.  
  3999.     Thomas Plum
  4000.     Vice Chair, X3J11 Committee
  4001.     Plum Hall Inc.
  4002.     1 Spruce Avenue
  4003.     Cardiff, New Jersey 08232
  4004.  
  4005. There is frequent discussion of X3J11 in the USENET newsgroup mod.std.c,
  4006. which see.  (That newsgroup will eventually be known as comp.std.c.)
  4007.  
  4008.  
  4009. The /usr/group Standard is the principle ancestor of P1003.1:
  4010.  
  4011.     /usr/group Standards Committee
  4012.     4655 Old Ironsides Drive, Suite 200
  4013.     Santa Clara, California 95050
  4014.  
  4015. The price is still $15.00.
  4016.  
  4017.  
  4018. The System V Interface Definition (The Purple Book).
  4019. This is the AT&T standard and is one of the most frequently-used
  4020. references of the IEEE 1003 committee.
  4021.  
  4022.     System V Interface Definition, Issue 2
  4023.     Select Codes 320-011 (Volume 1) and 320-012 (Volume 2)
  4024.     or Select Code 307-127 (both volumes).
  4025.     AT&T Customer Information Center
  4026.     2833 North Franklin Road
  4027.     Indianapolis, IN 46219
  4028.     1-800-432-6600, operator 77.
  4029.  
  4030. The price is about 37 U.S. dollars for each volume or $52 for the pair.
  4031. Major credit cards are accepted for telephone orders:  mail orders
  4032. should include a check or money order.  Previous SVID owners should
  4033. have received a discount coupon to upgrade to Release 2 for only $37.
  4034.  
  4035. Volume 1 is essentially equivalent to the whole previous SVID;
  4036. Volume 2 is mostly commands and a few add-ons (e.g. curses).
  4037. A third volume is expected in the last quarter of 1986 to cover new
  4038. items in System V Release 3, such as streams and networking.  There may
  4039. be an upgrade discount similar to the previous one.  A draft copy is
  4040. reputed to be available now to source licensees.
  4041.  
  4042.  
  4043. The X/OPEN PORTABILITY GUIDE (The Green Book)
  4044. is another reference frequently used by IEEE 1003.
  4045.  
  4046. X/OPEN is "A Group of European Computer Manufacturers" who have produced
  4047. a document intended to promote the writing of portable facilities.
  4048. (They now have member computer manufacturers from outside Europe.)
  4049. Their flyer remarks (in five languages), "Now we all speak the same
  4050. language in Europe."
  4051.  
  4052. The book is published by
  4053.  
  4054.     Elsevier Science Publishers
  4055.     Book Order Department
  4056.     PO Box 211
  4057.     1000 AE Amsterdam
  4058.     The Netherlands
  4059.  
  4060. or, for those in the U.S.A. or Canada:
  4061.  
  4062.     Elsevier Science Publishers Co Inc.
  4063.     PO Box 1663
  4064.     Grand Central Station
  4065.     New York, NY 10163
  4066.  
  4067. The price is Dfl 275,00 or USD 75.00.  According to the order form,
  4068. "This price includes the costs of one update which will be mailed
  4069. automatically upon publication."  They take a large number of credit
  4070. cards and other forms of payment.
  4071.  
  4072.  
  4073. Corrections and additions to this article are solicited.
  4074. Oh, yes:  "UNIX is a Registered Trademark of AT&T."
  4075. Volume-Number: Volume 6, Number 46
  4076.  
  4077. From news  Mon Sep 15 09:57:17 1986
  4078. From: std-unix%ut-sally.UUCP@sally (Moderator, John Quarterman)
  4079. Newsgroups: mod.std.unix
  4080. Subject: Re: negative time_t values
  4081. Message-Id: <5728@ut-sally.UUCP>
  4082. References: <5673@ut-sally.UUCP> <5663@ut-sally.UUCP>
  4083. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  4084. Keywords: RFC.001, time zones
  4085. Date: 15 Sep 86 14:57:00 GMT
  4086. Draft-9: TZ.time_t
  4087.  
  4088. From: cbosgd!cbosgd.ATT.COM!mark@seismo.UUCP (Mark Horton)
  4089. Date: Wed, 10 Sep 86 12:40:40 edt
  4090. Organization: AT&T Bell Laboratories, Columbus
  4091.  
  4092. There are many uses for dates, on which you'd like to be able
  4093. to do arithmetic.  I don't see where the assumption that time_t
  4094. is only useful for file modification times got made.  We have
  4095. an application that needs to be able to store birth dates of
  4096. people living today, and of their parents.  We would like to be
  4097. able to use the same format for parents' birth dates and for
  4098. machine generated time stamps.  And we'd like to be able to
  4099. easily add or subtract 3 hours, for example, from such a quantity.
  4100.  
  4101. Note that all the UNIX routines to deal with dates, such as ctime,
  4102. localtime, gmtime, and asctime, deal with time_t quantities.  There
  4103. are no operations provided to manipulate a struct tm.  This means
  4104. there's a huge penalty for any application that needs to manipulate
  4105. times that might be before 1970 or after 2038.  They must implement
  4106. a set of primitives to manipulate a struct tm or other data structure
  4107. (such as an ISO format time string, which is also broken into year,
  4108. month, day, etc.)
  4109.  
  4110. Even if you offered us dates back to 1901, it wouldn't be enough for
  4111. our application.  We have to go back to about 1850.  But I would hope
  4112. to see some facilities added to manipulate a more general date/time
  4113. format than a time_t.  Maybe the 4.2BSD struct timeval needs to have
  4114. another field added to indicate a base year (defaulting to 1970.)
  4115.  
  4116.     Mark
  4117.  
  4118. [ There are manipulation (adding, subtracting) routines for timeval
  4119. in the 4.2BSD kernel, by the way, though they never seem to have been
  4120. brought out into a user-accessible library, even in 4.3BSD (except
  4121. for timerisset, timercmp, and timerclear in <sys/time.h>).  -mod ]
  4122.  
  4123. Volume-Number: Volume 6, Number 47
  4124.  
  4125. From news  Mon Sep 15 11:17:56 1986
  4126. From: std-unix%ut-sally.UUCP@sally (Moderator, John Quarterman)
  4127. Newsgroups: mod.std.unix
  4128. Subject: negative time_t values
  4129. Message-Id: <5729@ut-sally.UUCP>
  4130. References: <5663@ut-sally.UUCP> <5673@ut-sally.UUCP>
  4131. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  4132. Keywords: RFC.001, time zones
  4133. Date: 15 Sep 86 16:17:41 GMT
  4134. Draft-9: TZ.time_t
  4135.  
  4136. From: mnetor!utzoo!dciem!msb@seismo.UUCP  (Mark Brader)
  4137. Date: Thu, 11 Sep 86 18:37:22 edt
  4138.  
  4139. > Another example where time values outside the currently supported
  4140. > (or proposed) range would be useful:  some of us like to play with
  4141. > genealogical software;  I have known ancestors back to the thirteenth
  4142. > century and frequently work with data to the sixteenth century.
  4143. > But time_t probably isn't the appropriate format to keep such dates,
  4144. > considering Julian vs. Gregorian calendars, old and new style new years,
  4145.  
  4146. I would say that time_t WOULD be the appropriate format, for PRECISELY
  4147. those reason, if the range was available.  To say otherwise is to say
  4148. that time_t is inappropriate for the way it's normally used because of
  4149. time zones and daylight and standard time.
  4150.  
  4151. [ Not precisely, since the form a date is recorded in may vary according
  4152. to not only present location but national origin of the recorder or of the
  4153. person whose date it is, since there are relatively odd formats (1617/18
  4154. is a common format, being used with a date between Jan 1 and Mar 15),
  4155. since many dates are incomplete (e.g., only year is known), and since
  4156. accuracy to the hour is very rare, not to even mention minutes or seconds.
  4157.  
  4158. Incidentally, the Mormon Church is coordinating the development of
  4159. something called GEDCOM (GEnealogical Data COMmunications), which is
  4160. a genealogical data interchange format.  (It looks rather like a network
  4161. presentation layer to me, even resembling XDR a bit.)  They must have
  4162. produced some standard for genealogical dates.  I believe I will write
  4163. off for a copy for myself.  The address (if anyone else is interested)
  4164. is probably
  4165.  
  4166.     Genealogical Department
  4167.     Ancestral File Operations Unit
  4168.     50 E. North Temple St.
  4169.     Salt Lake City, UT 84150
  4170.  
  4171. However, I suspect that general discussions on genealogy belong in
  4172. another newsgroup, so submissions to mod.std.unix related to genealogy
  4173. should probably be kept related to date formats or other implementation
  4174. issues.  -mod ]
  4175.  
  4176. While I'm writing I must correct the common assertion that time_t represents
  4177. a time in the UT (GMT) system.  It doesn't.  It represents a time in seconds
  4178. from a certain epoch.  The time in time_t form at the moment, for instance, is
  4179. 526,841,748.  The corresponding time in UT is 4:55:48 pm.  Granted that
  4180. the latter is derived from the former by slightly simpler arithmetic than
  4181. is my local zone time, that doesn't mean that a time_t represents a time
  4182. in UT in particular.
  4183.  
  4184. I don't think this is of sufficient interest to post to mod.std.unix,
  4185. but you may post any or all if you wish.
  4186.  
  4187. Mark Brader, utzoo!dciem!msb
  4188.     If ... it seems easier to subvert UNIX systems than most other systems,
  4189.     the impression is a false one.  The subversion techniques are the same.
  4190.     It is just that it is often easier to write, install, and use programs
  4191.     on UNIX systems than on most other systems, and that is why the UNIX
  4192.     system was designed in the first place.
  4193.                 -- Frederick T. Grampp & Robert H. Morris
  4194.  
  4195. Volume-Number: Volume 6, Number 48
  4196.  
  4197. From news  Mon Sep 15 11:43:23 1986
  4198. From: std-unix%ut-sally.UUCP@sally (Moderator, John Quarterman)
  4199. Newsgroups: mod.std.unix
  4200. Subject: IEEE 1003.1, POSIX and ISO/TC97
  4201. Message-Id: <5730@ut-sally.UUCP>
  4202. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  4203. Date: 15 Sep 86 16:42:55 GMT
  4204. Draft-9: ISO/TC97
  4205.  
  4206. From: genrad!mit-eddie!frog!jim (Jim Isaak)
  4207. Date: Tue, 9 Sep 86 10:09:00 EDT
  4208.  
  4209. The US technical advisory group (TAG) for ISO/TC97 has agreed to propose
  4210. an ISO work item based on the IEEE 1003.1 POSIX effort.  This is the
  4211. formal process needed to initiate an ISO standards activity.  This
  4212. effort would be CLOSELY coordinated with the 1003.1 effort to assure that
  4213. we have a Single Standard.  Individuals and Institutions outside of the
  4214. US are encouraged to contact their ISO TC97 representatives and let them
  4215. know of their interest, ideally to encourage both an Approval of the
  4216. work item; and an agreement to participate in the project.  (Many countries
  4217. will be hesitant to participate if they don't know who inside the country
  4218. is capable of providing technical input -- so these contacts can aid both
  4219. the ISO representatives, and also potentially the individuals who are willing
  4220. to participate in their countries "TAGs".)
  4221.  
  4222. Volume-Number: Volume 6, Number 49
  4223.  
  4224. From news  Mon Sep 15 13:58:20 1986
  4225. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  4226. Newsgroups: mod.std.unix
  4227. Subject: Access to UNIX-Related Standards
  4228. Message-Id: <5733@ut-sally.UUCP>
  4229. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  4230. Date: 15 Sep 86 18:58:01 GMT
  4231. Draft-9: Access.Standards
  4232.  
  4233. This is the latest in a series of similar mod.std.unix articles.  The
  4234. information previously posted in one article has been broken into two:
  4235. one about user groups and publications, the other about standards (this one).
  4236. This posting clears up some problems with the IEEE 1003.1 Trial Use Standard
  4237. ordering information.
  4238.  
  4239.  
  4240. Access information is given in this article for the following standards:
  4241. IEEE 1003.1 (POSIX), 1003.2 (shell/tools), 1003.3 (verification)
  4242. /usr/group working groups on networking, graphics, database,
  4243.     internationalization, performance measurements, realtime, and security
  4244. X3J11 (C language)
  4245. /usr/group Standard
  4246. System V Interface Definition
  4247. X/OPEN PORTABILITY GUIDE
  4248.  
  4249.  
  4250. The IEEE P1003 Portable Operating System for Computer Environments Committee
  4251. is sometimes known colloquially as the UNIX Standards Committee.
  4252. They have recently produced the 1003.1 "POSIX" Trial Use Standard.
  4253. According to its Foreword:
  4254.  
  4255.     The purpose of this document is to define a standard
  4256.     operating system interface and environment based on the
  4257.     UNIX Operating System documentation to support application
  4258.     portability at the source level.  This is intended for
  4259.     systems implementors and applications software developers.
  4260.  
  4261. Published copies are available at $19.95,
  4262. with bulk purchasing discounts available.
  4263. Call the IEEE Computer Society in Los Angeles
  4264.  
  4265.     714-821-8380
  4266.  
  4267. and ask for Book #967.  Or contact:
  4268.  
  4269.     IEEE Service Center
  4270.     445 Hoes Ln.
  4271.     Piscataway, NJ 08854
  4272.  
  4273. and ask for "IEEE 1003.1 Trial Use Standard" - stock number SH10546.
  4274.  
  4275. The Trial Use Standard will be available for comments for a period
  4276. such as a year.  The current target for a Full Use Standard is Fall 1987.
  4277. IEEE has initiated the process to have the 1003.1 effort brought into
  4278. the International Organization for Standardization (ISO) arena.
  4279.  
  4280. There is a paper mailing list by which interested parties may get
  4281. copies of drafts of the standard.  To get on it, or to submit comments
  4282. directly to the committee, mail to:
  4283.  
  4284.     James Isaak
  4285.     Chairperson, IEEE/CS P1003
  4286.     Charles River Data Systems
  4287.     983 Concord St.
  4288.     Framingham, MA 01701
  4289.     decvax!frog!jim
  4290.  
  4291. Sufficiently interested parties may join the working group.
  4292. The next scheduled meetings of the working group of the committee are
  4293.  
  4294.     17-19 September 1986    Palo Alto, CA    hosts: Amdahl, HP and Sun
  4295.     9-11 December 1986    Atlantic City NJ with X3J11
  4296.     2-6 March 1987        Toronto, ON
  4297.         June 1987        Phoenix, AZ    the week of USENIX
  4298.         September 1987    New Orleans, LA
  4299.  
  4300. There is also a balloting group (which intersects with the working group).
  4301. This is more difficult.  Contact the committee chair for details.
  4302. I will repost them in this newsgroup if there is sufficient interest.
  4303.  
  4304. Related working groups are
  4305.     group    subject        co-chairs
  4306.     1003.2    shell and tools    Hal Jespersen (Amdahl), Don Cragun (Sun)
  4307.     1003.3    verification    Roger Martin (NBS), Carol Raye (AT&T)
  4308.  
  4309. Both will meet concurrently with 1003.1 in Palo Alto in September
  4310. (though 1003.2 will meet concurrently only on the morning of the 17th),
  4311. and inquiries should go to the same address as for 1003.1.
  4312.  
  4313. There are two Institutional Representatives to P1003:  John Quarterman
  4314. from USENIX and Heinz Lycklama from /usr/group.  As the one from USENIX,
  4315. one of my functions is to get comments from the USENIX membership and
  4316. the general public to the committee.  One of the ways I try to do that
  4317. is by moderating this newsgroup (currently known as mod.std.unix,
  4318. eventually as comp.std.unix).  An article related to this one will
  4319. appear in the September/October 1986 ;login: (The USENIX Association
  4320. Newsletter).  I'm also currently on the USENIX Board of Directors.
  4321.  
  4322. The May/June 1986 issue of CommUNIXations (the /usr/group newsletter)
  4323. contains a report by Heinz Lycklama on the /usr/group Technical Committee
  4324. working groups which met in February 1986 on the areas of Networking,
  4325. Internationalization, Graphics, Realtime, Database, Performance, and
  4326. the proposed new group on Security.  Here is contact information for
  4327. those working groups as taken from that article (if you are interested
  4328. in starting another working group, contact Heinz Lycklama at the address
  4329. below):
  4330.  
  4331. /usr/group Working Group on Networking:
  4332.     Dave Buck
  4333.     D.L. Buck & Associates, Inc.
  4334.     6920 Santa Teresa Bldg, #108
  4335.     San Jose, CA 95119
  4336.     (408)972-2825
  4337.  
  4338. /usr/group Working Group on Internationalization:
  4339.     Brian Boyle            Karen Barnes
  4340.     Novon Research Group        Hewlett-Packard Co.
  4341.     537 Panorama Dr.        19447 Pruneridge Ave.
  4342.     San Francisco, CA 94131        M/S 47U2
  4343.     (415)641-9800            Cupertino, CA 95014
  4344.                     (408) 725-8111, ext 2438
  4345.  
  4346. /usr/group Working Group on Graphics:
  4347.     Heinz Lycklama
  4348.     Interactive Systems Corp.
  4349.     2401 Colorado Ave., 3rd Fl.
  4350.     Santa Monica, CA 90404
  4351.     (213)453-8649
  4352.  
  4353. /usr/group Working Group on Realtime:
  4354.     Bill Corwin            Ben Patel
  4355.     Intel Corp.            EDS Corp.
  4356.     5200 Elam Young Pkwy        P.O. Box 5121
  4357.     Hillsboro, OR 97123        23077 Greenfield
  4358.     (503)640-7588            Southfield, MI 48075
  4359.                     (313)443-3460
  4360.  
  4361. /usr/group Working Group on Database:
  4362.     Val Skalabrin
  4363.     Unify Corp.
  4364.     1111 Howe Ave.
  4365.     Sacramento, CA 95825
  4366.     (916)920-9092
  4367.  
  4368. /usr/group Working Group on Performance Measurements:
  4369.     Ram Celluri            Dave Hinant
  4370.     AT&T Computer Systems        SCI Systems, Inc.
  4371.     Room E15B            Ste 325, Pamlico Bldg
  4372.     4513 Western Ave.        Research Triangle Pk, NC 27709
  4373.     Lisle, IL 60532            (919)549-8334
  4374.     (312)810-6223
  4375.  
  4376. /usr/group Working Group on Security:
  4377.     Steve Sutton
  4378.     Computer Systems Div.
  4379.     Gould Inc.
  4380.     1101 East University
  4381.     Urbana, IL 61801
  4382.     (217)384-8500
  4383.  
  4384.  
  4385. The Abstract of the 1003.1 Trial Use Standard adds:
  4386.  
  4387.     This interface is a complement to the C Programming Language
  4388.     in the C Information Bulletin prepared by Technical Committee X3J11
  4389.     of the Accredited Standards Committee X3, Information Processing
  4390.     Systems, further specifying an environment for portable application
  4391.     software.
  4392.  
  4393. X3J11 is sometimes known as the C Standards Committee.  Their liaison to
  4394. P1003 is
  4395.  
  4396.     Don Kretsch
  4397.     AT&T
  4398.     190 River Road
  4399.     Summit, NJ 07901
  4400.  
  4401. A contact for information regarding publications and working groups is
  4402.  
  4403.     Thomas Plum
  4404.     Vice Chair, X3J11 Committee
  4405.     Plum Hall Inc.
  4406.     1 Spruce Avenue
  4407.     Cardiff, New Jersey 08232
  4408.  
  4409. There is frequent discussion of X3J11 in the USENET newsgroup mod.std.c,
  4410. which see.  (That newsgroup will eventually be known as comp.std.c.)
  4411.  
  4412.  
  4413. The /usr/group Standard is the principle ancestor of P1003.1:
  4414.  
  4415.     /usr/group Standards Committee
  4416.     4655 Old Ironsides Drive, Suite 200
  4417.     Santa Clara, California 95050
  4418.  
  4419. The price is still $15.00.
  4420.  
  4421.  
  4422. The System V Interface Definition (The Purple Book).
  4423. This is the AT&T standard and is one of the most frequently-used
  4424. references of the IEEE 1003 committee.
  4425.  
  4426.     System V Interface Definition, Issue 2
  4427.     Select Codes 320-011 (Volume 1) and 320-012 (Volume 2)
  4428.     or Select Code 307-127 (both volumes).
  4429.     AT&T Customer Information Center
  4430.     2833 North Franklin Road
  4431.     Indianapolis, IN 46219
  4432.     1-800-432-6600, operator 77.
  4433.  
  4434. The price is about 37 U.S. dollars for each volume or $52 for the pair.
  4435. Major credit cards are accepted for telephone orders:  mail orders
  4436. should include a check or money order.  Previous SVID owners should
  4437. have received a discount coupon to upgrade to Release 2 for only $37.
  4438.  
  4439. Volume 1 is essentially equivalent to the whole previous SVID;
  4440. Volume 2 is mostly commands and a few add-ons (e.g. curses).
  4441. A third volume is expected in the last quarter of 1986 to cover new
  4442. items in System V Release 3, such as streams and networking.  There may
  4443. be an upgrade discount similar to the previous one.  A draft copy is
  4444. reputed to be available now to source licensees.
  4445.  
  4446.  
  4447. The X/OPEN PORTABILITY GUIDE (The Green Book)
  4448. is another reference frequently used by IEEE 1003.
  4449.  
  4450. X/OPEN is "A Group of European Computer Manufacturers" who have produced
  4451. a document intended to promote the writing of portable facilities.
  4452. (They now have member computer manufacturers from outside Europe.)
  4453. Their flyer remarks (in five languages), "Now we all speak the same
  4454. language in Europe."
  4455.  
  4456. The book is published by
  4457.  
  4458.     Elsevier Science Publishers
  4459.     Book Order Department
  4460.     PO Box 211
  4461.     1000 AE Amsterdam
  4462.     The Netherlands
  4463.  
  4464. or, for those in the U.S.A. or Canada:
  4465.  
  4466.     Elsevier Science Publishers Co Inc.
  4467.     PO Box 1663
  4468.     Grand Central Station
  4469.     New York, NY 10163
  4470.  
  4471. The price is Dfl 275,00 or USD 75.00.  According to the order form,
  4472. "This price includes the costs of one update which will be mailed
  4473. automatically upon publication."  They take a large number of credit
  4474. cards and other forms of payment.
  4475.  
  4476.  
  4477. Corrections and additions to this article are solicited.
  4478. Oh, yes:  "UNIX is a Registered Trademark of AT&T."
  4479. And POSIX is a trademark of IEEE.
  4480.  
  4481. Volume-Number: Volume 6, Number 50
  4482.  
  4483. From news  Mon Sep 15 14:04:29 1986
  4484. From: std-unix%ut-sally.UUCP@SALLY.UTEXAS.EDU (Moderator, John Quarterman)
  4485. Newsgroups: mod.std.unix
  4486. Subject: End of Volume 6
  4487. Message-Id: <5734@ut-sally.UUCP>
  4488. Organization: IEEE 1003 Portable Operating System for Computer Environments Committee
  4489. Date: 15 Sep 86 19:04:13 GMT
  4490. Draft-9: mod.std.unix
  4491.  
  4492. This is the end of Volume 6 of mod.std.unix.  Volume changes are
  4493. purely administrative:  this one is so I can print a copy of the
  4494. volume to take to the committee meeting this week.  Posting will
  4495. resume next week when I return.  Submissions in the meantime will
  4496. presumably wait in my mailbox.
  4497.  
  4498. Volume-Number: Volume 6, Number 51
  4499.  
  4500.