home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / volume.25 < prev    next >
Internet Message Format  |  1991-11-17  |  364KB

  1. From: Sean Eric Fagan <sef@uunet.uu.net>
  2. Subject: Policy and Guidelines for comp.std.unix
  3. Message-Id: <1991Sep3.170324.3351@uunet.uu.net>
  4. Originator: sef@uunet.UU.NET
  5. Nntp-Posting-Host: uunet.uu.net
  6. Reply-To: std-unix@uunet.uu.net
  7. X-Submissions: std-unix@uunet.uu.net
  8. Organization: UUNET Communications Services
  9. Date: Tue, 3 Sep 1991 16:54:34 GMT
  10. To: std-unix@uunet.uu.net
  11. Sender: Network News <news@kithrup.com>
  12. Source-Info:  From (or Sender) name not authenticated.
  13.  
  14. Submitted-by: sef@uunet.uu.net (Sean Eric Fagan)
  15.  
  16. This is a policy statement for comp.std.unix.
  17.  
  18. This is Volume 25 of comp.std.unix.
  19. These volumes are purely for administrative convenience.
  20. Feel free to continue any previous discussion or to start new ones.
  21.  
  22. Topic.
  23.  
  24. The USENET newsgroup comp.std.unix, also known as the mailing list
  25. std-unix@uunet.uu.net, is for discussions of standards related to
  26. the UNIX operating system, particularly of IEEE P1003, or POSIX,
  27. including IEEE 1003.1, 1003.2, etc.
  28.  
  29. Other related standards bodies and subjects include but are not limited to
  30.     IEEE 1201 and IEEE 1238,
  31.     ISO/IEC JTC1 SC22 WG15 (the ISO and IEC version of POSIX),
  32.     the U.S. and other Technical Advisory Groups (TAGs) to WG15,
  33.     the X3.159 Programming Language C Standard by the ANSI X3J11 committee,
  34.     ISO/IEC JTC1 SC22 WG14 (the ISO and IEC version of X3.159),
  35.     ANSI X3J16 on the C++ programming language,
  36.     ANSI X3B11.1 on WORM File Systems,
  37.     the National Institute of Standards and Technology (NIST),
  38.     and their Federal Information Processing Standards (FIPS),
  39.     X/Open and their X/Open Portability Guide (XPG),
  40.     the Open Software Foundation (OSF),
  41.     UNIX International (UI),
  42.     the UniForum Technical Committee,
  43.     the AFUU Working Groups,
  44.     PortSoft,
  45.     AT&T System V Interface Definition (SVID),
  46.     System V Release 3, System V Release 4,
  47.     4.2BSD, 4.3BSD, 4.4BSD,
  48.     Tenth Edition UNIX, Plan 9 from Bell Labs,
  49.     Mach, Chorus, Amoeba, GNU,
  50.     and the USENIX Standards Watchdog Committee.
  51.  
  52. Moderator.
  53.  
  54. The newsgroup comp.std.unix and the mailing list std-unix@uunet.uu.net
  55. is moderated.  The moderator is Sean Eric Fagan.
  56.  
  57. Disclaimer.
  58.  
  59. Postings by any committee member in this newsgroup do not represent 
  60. any position (including any draft, proposed or actual, of a standard) 
  61. of the committee as a whole or of any subcommittee unless explicitly 
  62. stated otherwise in such remarks.  Postings and comments by the moderator
  63. do not necessarily reflect any person's or organization's opinions.
  64.  
  65. * UNIX is a Registered Trademark of AT&T.
  66. ** IEEE is a Trademark of the Institute for Electrical and Electronics
  67.     Engineers, Inc.
  68. *** POSIX is not a trademark.
  69. Various other names mentioned above may be trademarks.
  70. I hope their owners will not object if I do not list them all here.
  71.  
  72.  
  73. Postings.
  74.  
  75. Submissions for posting to the newsgroup and comments about the newsgroup
  76. (including requests to subscribe or unsubscribe to the mailing list)
  77. should go to two different addresses:
  78.  
  79.         DNS address            UUCP source route
  80. Submissions    std-unix@uunet.uu.net        uunet!std-unix
  81. Comments    std-unix-request@uunet.uu.net    uunet!std-unix-request
  82.  
  83. In addition to those addresses, I can be reached (electronically) as sef at
  84. either uunet.uu.net, kithrup.com, or cygnus.com (e.g., sef@kithrup.COM).  If
  85. you get a bounce from one of those addresses, or do not get a reply within a
  86. week, send mail to one or more of the others.
  87. Permission to post to the newsgroup is assumed for mail to std-unix.
  88. Permission to post is not assumed for mail to std-unix-request,
  89. unless explicitly granted in the mail.  Mail to my personal addresses
  90. will be treated like mail to std-unix-request if it obviously refers
  91. to the newsgroup.
  92.  
  93. The mailing list is distributed on the Internet, UUCP, and elsewhere.
  94. There is a redistribution list on BITNET for BITNET, EARN, and NetNorth.
  95. Please send submissions from those networks to std-unix@uunet.uu.net
  96. nonetheless, because messages sent to the BITNET LISTSERV will not reach
  97. the whole list.
  98.  
  99. If you have access to USENET, it is better (more efficient, cheaper,
  100. less effort for me to manage) to subscribe to the newsgroup comp.std.unix
  101. than to the mailing list.  Submissions should still go to the above
  102. addresses, although many (perhaps most) USENET hosts will forward
  103. attempts to post directly to the newsgroup to the moderator.
  104.  
  105. Posted articles may originate from uunet.uu.net, kithrup.com, or cygnus.com.
  106. There are also occasional guest moderators, who may post from still other 
  107. machines.  Guest moderators are announced in advance by the regular moderator.
  108.  
  109. Archives.
  110.  
  111. Archives for comp.std.unix or std-unix@uunet.uu.net may be found on UUNET.
  112. Most of them are compressed, so if you don't have compress, get it first
  113. (it's in the comp.sources.unix archives).
  114.  
  115. The comp.std.unix archives may be retrieved by anonymous FTP over the Internet.
  116. Connect to uunet.uu.net with FTP and log in as user anonymous with password
  117. guest.
  118.  
  119. The current volume is in the file
  120.         ~ftp/usenet/comp.std.unix/archive
  121. or
  122.         ~ftp/usenet/comp.std.unix/volume.25
  123. The previous volume may be retrieved as 
  124.         ~ftp/usenet/comp.std.unix/volume.24.Z
  125. and so forth for more ancient volumes.
  126.  
  127. For hosts with direct UUCP connections to UUNET, UUCP transfer from
  128. host uunet should work with, for example,
  129.         uucp uunet!'~ftp/usenet/comp.std.unix/archive' archive
  130. You will have to put a backslash before the ! (i.e., \!)
  131. if you're using the C shell.
  132.  
  133. The output of "cd ~ftp/usenet/comp.std.unix; ls -l" is in
  134.         ~ftp/usenet/comp.std.unix/list
  135. and the output of "cd ~ftp/comp.std.unix; ls -l *" is in
  136.         ~ftp/comp.std.unix/longlist
  137.  
  138. For further details, retrieve the file
  139.         ~ftp/comp.std.unix/README
  140.  
  141.  
  142. General submission acceptance policy.
  143.  
  144. Submissions are never ignored (although they might be overlooked).
  145. If you don't see your article posted and you don't get a mailed
  146. response from the moderator, your submission probably didn't arrive.
  147. However, travel schedules and other business sometimes intervene
  148. (and for that matter it can take many hours for a submission to
  149. get to the moderator and the posted message to get back to the poster),
  150. so you may sometimes not see anything for a few days.  If you wait
  151. and still don't see anything, try sending again.
  152.  
  153. The previous moderator claimed a 90% acceptance rate; however, as moderator,
  154. I retain the right to reject submissions.  If a submission does not
  155. appear relevant to comp.std.unix, it is sent back to the submittor with
  156. a note saying why it is not appropriate.  Usually this is because it
  157. just doesn't fit the topic of the newsgroup, in which case I suggest
  158. another newsgroup.  Sometimes it is because someone else has already
  159. given the same answer to a question, in which case I ask if the
  160. submittor really wants it posted.  Occasionally I suggest editing that
  161. would make an article more appropriate to the newsgroup.  If a message
  162. appears to be directed towards me, I will reply; if I am unsure, I wil ask
  163. the sender if posting is really necessary or desired.
  164.  
  165. Very occasionally I may reject an article outright:  this will most likely
  166. be because it contains ad hominem attacks, which are never permitted
  167. in this technical newsgroup.  There are many other potential reasons
  168. for rejection, however, such as inclusion of copyrighted material.
  169. Fortunately, most such problems have not come up.
  170.  
  171. Note that while technical postings on technical subjects are encouraged,
  172. postings about the politics of standardization are also appropriate,
  173. since it is impossible to separate politics from standards.
  174.  
  175. Crosspostings are discouraged.  Submissions such as ``how do I find
  176. xyz piece of software'' or ``is the x implementation better than the
  177. y implementation'' that come in for multiple newsgroups usually get
  178. sent back to the submittor with a suggestion to resubmit without
  179. comp.std.unix in the Newsgroups: line.  Sometimes I'll crosspost if
  180. there's clear relevance to comp.std.unix, but I always add a
  181. Followup-To: line in an attempt to direct further discussion to a
  182. single newsgroup, usually comp.std.unix.  This policy is useful because
  183. crossposting often produces verbose traffic of little relevance to
  184. comp.std.unix.
  185.  
  186.  
  187.  
  188. Editorial policy.
  189.  
  190. When posting a submission, I sometimes make changes to it.  These
  191. are of three types:  headers and trailers; comments; and typographical.
  192.  
  193. Headers and trailers
  194.  
  195. Header changes include:
  196. + Cleaning up typos, particularly in Subject: lines.
  197. + Rationalizing From: lines to contain only one address syntax,
  198.     either hosta!hostb!host!user or, preferably, user@domain.
  199.     Very occasionally, this might cause an improper address
  200.     to be generated.  If this occurrs, and you think you may
  201.     submit an article again, send me a note, and I will attempt
  202.     to use an address you suggest next time.
  203. + Adding a Reply-To: line.  This usually points to the newsgroup
  204.     submission address in the mailing list, but to the submitter
  205.     in the newsgroup, for reasons too messy to detail here.
  206. + Adding the Approved: line.
  207. + Deleting any Distribution: line, as detailed in the next paragraph.
  208.  
  209. The only distribution used in comp.std.unix is no distribution, i.e.,
  210. worldwide.  If it's not of worldwide interest, it doesn't belong in
  211. comp.std.unix.  Anything pertaining to the IEEE/CS TCOS standards
  212. or committees (e.g., IEEE 1003, IEEE 1201), the ANSI X3.159 Programming
  213. Language C Standard (X3J11), or the ISO 9945 POSIX work (ISO/IEC JTC1
  214. SC22 WG15) is of worldwide interest.  If a submission arrives with a
  215. Distribution:  line, such as na or us, I delete that line.
  216.  
  217. Every article has a trailing line of the form
  218. >    Volume-Number: Volume 22, Number 42
  219. This allows the reader to notice articles lost in transmission and
  220. permits the moderator to more easily catalog articles in the archives.
  221. Volumes usually change after about 100 articles, but are purely for
  222. administrative convenience; discussions begun in one volume should
  223. be continued into the next volume.
  224.  
  225. Also, signatures that are excessively long may be truncated.
  226.  
  227.  
  228.  
  229. Comments
  230.  
  231. Comments by the moderator are sometimes added to clarify obscure
  232. issues.  These are always enclosed in square brackets with the
  233. closing mark ``-mod,'' [ like this -mod ].  Sometimes entire articles
  234. appear that are written by the moderator:  these always end with
  235. a signature that includes the words ``moderator, comp.std.unix.''
  236.  
  237. Comments by the editor of the USENIX Standards Watchdog Reports
  238. sometimes appear in those reports.  Such comments are always
  239. enclosed in square brackets and begin with the word ``Editor:''
  240. [ Editor: like this ].
  241.  
  242. Comments by the publisher of the USENIX Standards Watchdog Reports
  243. sometimes appear in those reports.  Such comments are always
  244. enclosed in square brackets and end with the mark ``-pub,''
  245. [ like this -pub ].
  246.  
  247. Entire articles may appear by the editor or publisher of the
  248. Watchdog Reports, and those are always identified by the signature.
  249.  
  250. Typographical
  251.  
  252. People submitting articles sometimes enclose parenthetical comments
  253. in brackets [] instead of parentheses ().  I usually change these
  254. to parentheses to avoid confusion with the above conventions for
  255. comments by the moderator, editor, or publisher.
  256.  
  257. Obvious misspellings, such as ``it's'' for the possesive or
  258. ``its'' as a contraction of ``it is'' are corrected.
  259.  
  260. Excess white space is deleted.
  261.  
  262. Lines longer than 80 characters are reformatted.
  263.  
  264. Redundant quoted headers are often omitted.
  265.  
  266. Very long quotations of previous articles are sometimes shortened.
  267.  
  268.  
  269.  
  270. Common kinds of postings.
  271.  
  272. There are several sets of postings that reoccur in comp.std.unix
  273. at more or less regular intervals.  Here are three of the most common.
  274.  
  275. Calendar of UNIX-Related Events
  276.  
  277. Susanne W. Smith <sws@calvin.wa.com> of Windsound Consulting of Edmonds,
  278. Washington and John S. Quarterman <jsq@tic.com> of Texas Internet Consulting
  279. (TIC) of Austin, Texas publish a combined calendar of planned conferences,
  280. workshops, or standards meetings related to the UNIX operating system.
  281. These appear about every other month in four articles with these titles:
  282.     Calendar of UNIX-related Events
  283.     Access to UNIX User Groups
  284.     Access to UNIX-Related Publications
  285.     Access to UNIX-Related Standards
  286. The first three are posted to
  287.     comp.std.unix,comp.unix.questions,comp.org.usenix
  288. The one about standards is posted only to comp.std.unix.
  289.  
  290. These calendar postings are a private project of Windsound and TIC,
  291. although they are coordinated with various groups such as USENIX, EUUG,
  292. AUUG, JUS, UniForum, and IEEE TCOS.  Smith and Quarterman encourage
  293. others to reuse this information, but ask for proper acknowledgment.
  294.  
  295. USENIX Standards Watchdog Reports
  296.  
  297. The USENIX Association sponsors a set of reports after each quarterly
  298. meeting of the IEEE 1003 and IEEE 1201 standards committees.  These
  299. reports are written by volunteers who are already attending committee
  300. meetings and are edited by the Watchdog Report Editor, who is Jeffrey
  301. S. Haemer <jsh@usenix.org>.  Reports on other committees, such as X3J11,
  302. are also included when available.  These reports are published in
  303. comp.std.unix/std-unix@uunet.uu.net and ;login:  The Newsletter of the
  304. USENIX Association.  They are also available for publication elsewhere.
  305.  
  306. EUUG/USENIX ISO Monitor Project
  307.  
  308. The European UNIX systems Users Group (EUUG) and the USENIX Association
  309. jointly sponsor an observer to the ISO/IEC JTC1 SC22 WG15 (ISO POSIX)
  310. standards committee.  This observer, Dominic Dunlop <domo@tsa.co.uk>,
  311. writes a report after each WG15 meeting, of which there are usually
  312. two a year.  These reports are published in the EUUG Newsletter
  313. (EUUGN), :login;, and comp.std.unix.  They are also available for
  314. publication elsewhere.
  315.  
  316. Archives of the EUUG/USENIX ISO Monitor Reports, the USENIX Standards
  317. Watchdog Reports, and the Windsound/TIC Calendar of UNIX-Related Events
  318. may be found on uunet.uu.net.  Retrieve ~ftp/comp.std.unix/README for
  319. details.
  320.  
  321. Sean Eric Fagan, moderator, comp.std.unix and std-unix@uunet.uu.net.
  322.  
  323. Volume-Number: Volume 25, Number 1
  324.  
  325. From std-unix-request@uunet.uu.net  Wed Sep  4 15:58:16 1991
  326. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  327.     (5.61/UUNET-uucp-primary) id AA19300; Wed, 4 Sep 91 15:58:16 -0400
  328. Received: from kithrup.com by relay1.UU.NET with SMTP 
  329.     (5.61/UUNET-internet-primary) id AA14832; Wed, 4 Sep 91 15:58:14 -0400
  330. Newsgroups: comp.std.unix
  331. From: Brian Matthews <polari!6sigma2>
  332. Subject: Re: Democracy Triumphs in Disk Units
  333. Message-Id: <1991Sep4.195142.11944@uunet.uu.net>
  334. Originator: sef@uunet.UU.NET
  335. Sender: UseNet News <usenet@uunet.uu.net>
  336. Nntp-Posting-Host: uunet.uu.net
  337. X-Submissions: std-unix@uunet.uu.net
  338. Organization: Seattle Online Public Unix (206) 328-4944
  339. References: <1991Aug29.190057.25838@uunet.uu.net> <1991Sep2.214221.26606@uunet.uu.net> <1991Sep2.230739.914@uunet.uu.net>
  340. Date: Tue, 3 Sep 1991 17:25:06 GMT
  341. Reply-To: std-unix@uunet.uu.net
  342. To: std-unix@uunet.uu.net
  343.  
  344. In article <1991Sep2.230739.914@uunet.uu.net> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  345. |Instead of selecting one arbitrarily, it
  346. |would make more sense to allow it to fit the system characteristics
  347. |(i.e., use the system's minimum disk block size, which could be any
  348. |positive size, and typically is either 512B or 4096B)
  349.  
  350. Gak.  Over the course of any random month I work on perhaps ten different
  351. "UNIX" systems.  I have absolutely no idea what the "system's minimum
  352. disk block size" is, and in many cases the people owning the computer
  353. don't know either.  I suppose I could write a little test program that
  354. wrote various sized files and exec'd du's to figure out what size
  355. blocks du is using, but should I have to?
  356.  
  357. |or to allow the
  358. |user to scale the units according to his own needs.
  359.  
  360. Whatever happens, this is a necessity.  Luckily, GNU du already allows
  361. this.
  362. -- 
  363. Brian L. Matthews    blm@6sceng.UUCP
  364.  
  365.  
  366. Volume-Number: Volume 25, Number 2
  367.  
  368. From std-unix-request@uunet.uu.net  Wed Sep  4 15:58:25 1991
  369. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  370.     (5.61/UUNET-uucp-primary) id AA19370; Wed, 4 Sep 91 15:58:25 -0400
  371. Received: from kithrup.com by relay1.UU.NET with SMTP 
  372.     (5.61/UUNET-internet-primary) id AA14854; Wed, 4 Sep 91 15:58:22 -0400
  373. Newsgroups: comp.std.unix
  374. From: Donn Terry <donn@hpfcrn.fc.hp.com>
  375. Subject: Re: POSIX.1 stream functions
  376. Message-Id: <1991Sep4.195321.12167@uunet.uu.net>
  377. Originator: sef@uunet.UU.NET
  378. Sender: UseNet News <usenet@uunet.uu.net>
  379. Nntp-Posting-Host: uunet.uu.net
  380. X-Submissions: std-unix@uunet.uu.net
  381. Organization: UUNET Communications Services
  382. Date: Tue, 3 Sep 1991 23:43:44 GMT
  383. Reply-To: std-unix@uunet.uu.net
  384. To: std-unix@uunet.uu.net
  385.  
  386. Submitted-by: donn@hpfcrn.fc.hp.com (Donn Terry)
  387.  
  388. >I have POSIX 1003.1-1988 and 1990 in front of me.
  389. >Section 8.2.3 (Interaction with C stream functions) has some major changes.
  390.  
  391. >Why was the requirement that fclose() set the file descriptor offset
  392. >to the stream offset removed? Note the 1990 rational is wrong.
  393. >This means applications have to do it themselves with
  394. >    fflush(fp);
  395. >    fseek(fp, 0L, SEEK_CUR);
  396.  
  397. >I understand why fflush is no longer required to invalidate input buffers,
  398. >but is a 1990 implementation required to leave input buffers untouched
  399. >on non-seekable files? For example, can I write
  400. >    fgetc(stdin);        /* first byte */
  401. >    fflush(stdin);
  402. >    [fork(), child does not use stdin but does exit()]
  403. >    fgetc(stdin);        /* second byte */
  404. >without concern that stdin may be a pipe?
  405. >Or do I have to conditionalize the fflush with
  406. >    if (!seekable(fileno(stdin))
  407. >If so, how can I write seekable(), allowing for implementations
  408. >that have non-seekable devices other that ttys and pipes?
  409.  
  410. >Or, when using fork(), is it required to use _exit() and explicit fflush()s?
  411.  
  412. >        Eric Gisin, eric@mks.com
  413.  
  414.  
  415. Speaking for myself (but with a LOT of insight into the -1990 balloting
  416. process :-) ):  the wording in the -1988 standard was weak, and it was 
  417. possible (actually probable) that some system vendors would misread it.
  418.  
  419. At least one did, and consequently created a ballot objection that
  420. claimed that it was impossible to implement the requirement in -1988
  421. correctly.  At the time, it was necessary to remove the requirement to
  422. remove the balloting objection, and since it was supported by a
  423. prestigeous body, it could not be ignored.  (Yes, I intended not to use
  424. any names in that sentence!)
  425.  
  426. At least one vendor has implemented the intended semantics, and it does
  427. work completely transparently to existing applications, including use
  428. in all AT&T-provided commands.
  429.  
  430. -1990 was written to permit the intended correct operation, and to require
  431. vendors to tell you whether it does or not (see the "implementation-defined").
  432. The 1003.1a revision restores the previous intent, and contains much clearer
  433. wording, and some detailed rationale about how to implement it. 
  434. (Whether that will pass standardization remains to be seen.)
  435.  
  436.  
  437. Donn Terry
  438.  
  439. Speaking only for myself, but with a certain amount of experience as
  440. 1003.1 chair.
  441.  
  442. Volume-Number: Volume 25, Number 4
  443.  
  444. From std-unix-request@uunet.uu.net  Wed Sep  4 15:58:26 1991
  445. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  446.     (5.61/UUNET-uucp-primary) id AA19381; Wed, 4 Sep 91 15:58:26 -0400
  447. Received: from kithrup.com by relay1.UU.NET with SMTP 
  448.     (5.61/UUNET-internet-primary) id AA14862; Wed, 4 Sep 91 15:58:24 -0400
  449. Newsgroups: comp.std.unix
  450. From: Peter da Silva <peter@ficc.ferranti.com>
  451. Subject: Re: Democracy Triumphs in Disk Units
  452. Message-Id: <1991Sep4.195228.12038@uunet.uu.net>
  453. Originator: sef@uunet.UU.NET
  454. Sender: UseNet News <usenet@uunet.uu.net>
  455. Nntp-Posting-Host: uunet.uu.net
  456. Reply-To: Peter da Silva <peter@ficc.ferranti.com>
  457. X-Submissions: std-unix@uunet.uu.net
  458. Organization: Xenix Support, FICC
  459. References: <1991Aug29.190057.25838@uunet.uu.net> <1991Sep2.214221.26606@uunet.uu.net> <1991Sep2.230739.914@uunet.uu.net>
  460. Date: Tue, 3 Sep 1991 18:07:48 GMT
  461. To: std-unix@uunet.uu.net
  462.  
  463. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  464.  
  465. In article <1991Sep2.230739.914@uunet.uu.net> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  466. > Your STRAW MAN argument about allocating individual bits would perhaps
  467. > be "silly", but I did not make that argument.  I did note that not all
  468. > file sizes (expressed as number of bits) are exactly divisible by 8,
  469. > which would make the 8-bit byte rather a silly unit of measure.  And
  470. > other-size bytes more appropriate for such systems aren't necessarily
  471. > any more useful.  While a 9-bit byte may be ideal for an 18-bit system,
  472. > what would you use on a 60-bit system?
  473.  
  474. Blue sky time...
  475.  
  476. I would say it would be desirable to get the size in all the following units:
  477.  
  478.     bits
  479.     characters (yes, that may mean 16 or 32 bit charactars under
  480.             Unicode or ISO10646)
  481.     integers (16-, 18-, 32-, 36-, or 60 bit chunks)
  482.     floats (32-, 36-, 48-, 60-, 96-, and so on bit chunks)
  483.     words (minimal unit of memory storage)
  484.     blocks (minimum unit of storage allocation)
  485.  
  486. There should also be a program to convert between these units:
  487.  
  488.     units [from [to]]
  489.  
  490. Back to reality...
  491.  
  492. > I don't think there is a large advantage to using bit sizing, although
  493. > it does permit CORRECT, PRECISE information to be given in all cases.
  494.  
  495. That depends. It doesn't tell you how many pages of your book can be stored
  496. in that space. You need to know how many bits per character for the file
  497. system and hardware in question. This may be a hard question to answer if
  498. you just remote-mounted a Unisys file system containing both ASCII and
  499. Fielddata elements.
  500.  
  501. Practically, how many systems out there still use non-octet-oriented memory?
  502. The Unisys 1100 series is the last that I can think of, and they don't
  503. support UNIX.
  504.  
  505. > However, the argument that 1024 8-bit bytes is somehow an optimum unit
  506. > of measurement for file sizes needs to be shot down.  It's just one of
  507. > many possible arbitrary choices.
  508.  
  509. It's no worse than any other, and has the advantage that it's meaningful
  510. to most people. People expect file sizes to be expressed in kilobytes, on
  511. both SysV and BSD. I use SysV myself, and I wish I didn't have to divide
  512. displayed sizes by a factor of 2 all the time.
  513.  
  514. Sure, that means you may be inaccurate in some cases, and underestimate the
  515. storage available.
  516. -- 
  517. Peter da Silva
  518. Ferranti International Controls Corporation
  519. Sugar Land, TX  77487-5012;  +1 713 274 5180
  520. "Have you hugged your wolf today?"
  521.  
  522.  
  523.  
  524. Volume-Number: Volume 25, Number 3
  525.  
  526. From std-unix-request@uunet.uu.net  Wed Sep  4 15:58:31 1991
  527. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  528.     (5.61/UUNET-uucp-primary) id AA19420; Wed, 4 Sep 91 15:58:31 -0400
  529. Received: from kithrup.com by relay1.UU.NET with SMTP 
  530.     (5.61/UUNET-internet-primary) id AA14888; Wed, 4 Sep 91 15:58:28 -0400
  531. Newsgroups: comp.std.unix
  532. From: Donn Terry <donn@hpfcrn.fc.hp.com>
  533. Subject: Re: Voting
  534. Message-Id: <1991Sep4.195435.12273@uunet.uu.net>
  535. Originator: sef@uunet.UU.NET
  536. Sender: UseNet News <usenet@uunet.uu.net>
  537. Nntp-Posting-Host: uunet.uu.net
  538. X-Submissions: std-unix@uunet.uu.net
  539. Organization: UUNET Communications Services
  540. Date: Wed, 4 Sep 1991 00:03:29 GMT
  541. Reply-To: std-unix@uunet.uu.net
  542. To: std-unix@uunet.uu.net
  543.  
  544. Submitted-by: donn@hpfcrn.fc.hp.com (Donn Terry)
  545.  
  546. I wanted to observe that although the "voting" results may be more-or-less
  547. accurate, I have some concerns about the accuracy of the population that
  548. is doing the voting.
  549.  
  550. The set of people reached on the net is a rather small subset of the
  551. really serious UNIX users, in that it omits all the non-connected systems,
  552. and many of the connected systems do not include people who would read
  553. this notes group, who would respond (or in some cases would be allowed
  554. to respond).
  555.  
  556. Since several manufacturers sell systems which claim conformance to the
  557. SVID, and many of these systems are small systems which are probably
  558. not connected, the "current usage" set of people is improperly represented.
  559. (I refer specifically to SCO's product and to vendors like (the old) NCR.)
  560.  
  561. My guess is that over half of the current UNIX population uses systems
  562. which use 512 byte blocks, and they *might* be chagrined to find that POSIX
  563. had "fixed" the problem for them.
  564.  
  565. I distrust the "voting" as rather poor sample of the actual population.
  566.  
  567.  
  568. My personal opinion on the technological issue is completely distinct from
  569. the observation made above.  (And it may or may not favor 512 byte blocks.)
  570.  
  571. Donn Terry
  572.  
  573.  
  574. P.S.  Any whining about not being able to participate in the POSIX process
  575. is simply explicit proof of ignorance.   The process is completely open,
  576. and anyone can participate by simply taking the time to do so.
  577.  
  578. (IEEE or Computer Society membership gives your vote more "clout", but
  579. it's not very expensive and there are a lot of benefits beyond the extra
  580. clout.  However, no opinion can be simply, out of hand, ignored because
  581. it does not come from and IEEE member.  Not only does IEEE audit that
  582. (well above the "POSIX" level, but ANSI re-audits it!)  (Copies of the
  583. document aren't free, but somebody has to pay for the copying; it's not
  584. free either.)
  585.  
  586.  
  587. Volume-Number: Volume 25, Number 2
  588.  
  589. From std-unix-request@uunet.uu.net  Wed Sep  4 15:58:36 1991
  590. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  591.     (5.61/UUNET-uucp-primary) id AA19445; Wed, 4 Sep 91 15:58:36 -0400
  592. Received: from kithrup.com by relay1.UU.NET with SMTP 
  593.     (5.61/UUNET-internet-primary) id AA14928; Wed, 4 Sep 91 15:58:33 -0400
  594. Newsgroups: comp.std.unix
  595. From: Donn Terry <donn@hpfcrn.fc.hp.com>
  596. Subject: Re: "voting"
  597. Message-Id: <1991Sep4.195520.12358@uunet.uu.net>
  598. Originator: sef@uunet.UU.NET
  599. Sender: UseNet News <usenet@uunet.uu.net>
  600. Nntp-Posting-Host: uunet.uu.net
  601. X-Submissions: std-unix@uunet.uu.net
  602. Organization: UUNET Communications Services
  603. Date: Wed, 4 Sep 1991 00:03:29 GMT
  604. Reply-To: std-unix@uunet.uu.net
  605. To: std-unix@uunet.uu.net
  606.  
  607. Submitted-by: donn@hpfcrn.fc.hp.com (Donn Terry)
  608.  
  609. I wanted to observe that although the "voting" results may be more-or-less
  610. accurate, I have some concerns about the accuracy of the population that
  611. is doing the voting.
  612.  
  613. The set of people reached on the net is a rather small subset of the
  614. really serious UNIX users, in that it omits all the non-connected systems,
  615. and many of the connected systems do not include people who would read
  616. this notes group, who would respond (or in some cases would be allowed
  617. to respond).
  618.  
  619. Since several manufacturers sell systems which claim conformance to the
  620. SVID, and many of these systems are small systems which are probably
  621. not connected, the "current usage" set of people is improperly represented.
  622. (I refer specifically to SCO's product and to vendors like (the old) NCR.)
  623.  
  624. My guess is that over half of the current UNIX population uses systems
  625. which use 512 byte blocks, and they *might* be chagrined to find that POSIX
  626. had "fixed" the problem for them.
  627.  
  628. I distrust the "voting" as rather poor sample of the actual population.
  629.  
  630.  
  631. My personal opinion on the technological issue is completely distinct from
  632. the observation made above.  (And it may or may not favor 512 byte blocks.)
  633.  
  634. Donn Terry
  635.  
  636.  
  637. P.S.  Any whining about not being able to participate in the POSIX process
  638. is simply explicit proof of ignorance.   The process is completely open,
  639. and anyone can participate by simply taking the time to do so.
  640.  
  641. (IEEE or Computer Society membership gives your vote more "clout", but
  642. it's not very expensive and there are a lot of benefits beyond the extra
  643. clout.  However, no opinion can be simply, out of hand, ignored because
  644. it does not come from and IEEE member.  Not only does IEEE audit that
  645. (well above the "POSIX" level, but ANSI re-audits it!)  (Copies of the
  646. document aren't free, but somebody has to pay for the copying; it's not
  647. free either.)
  648.  
  649.  
  650. Volume-Number: Volume 25, Number 5
  651.  
  652. From std-unix-request@uunet.uu.net  Wed Sep  4 15:58:41 1991
  653. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  654.     (5.61/UUNET-uucp-primary) id AA19512; Wed, 4 Sep 91 15:58:41 -0400
  655. Received: from kithrup.com by relay1.UU.NET with SMTP 
  656.     (5.61/UUNET-internet-primary) id AA14990; Wed, 4 Sep 91 15:58:39 -0400
  657. Newsgroups: comp.std.unix
  658. From: Rahul Dhesi <dhesi@cirrus.com>
  659. Subject: Re: Democracy Triumphs in Disk Units
  660. Message-Id: <1991Sep4.195627.12445@uunet.uu.net>
  661. Originator: sef@uunet.UU.NET
  662. Sender: UseNet News <usenet@uunet.uu.net>
  663. Nntp-Posting-Host: uunet.uu.net
  664. X-Submissions: std-unix@uunet.uu.net
  665. Organization: Cirrus Logic Inc.
  666. References: <1991Aug29.190057.25838@uunet.uu.net> <1991Sep2.214221.26606@uunet.uu.net>
  667. Date: Wed, 4 Sep 1991 01:02:41 GMT
  668. Reply-To: std-unix@uunet.uu.net
  669. To: std-unix@uunet.uu.net
  670.  
  671. Submitted-by: dhesi@cirrus.com (Rahul Dhesi)
  672.  
  673. Most people don't much care about "blocks" and "block size", except
  674. when they happen to be writing tapes.  They are usually interested more
  675. in the slightly different concept of "disk space" when they use
  676. utilities such as "du" and "df".
  677.  
  678. What units should be used when reporting disk space?  Kilobytes and
  679. megabytes come to mind immediately as likely possibilities.  Units of
  680. 512 bytes do not.
  681.  
  682. I assume that the original purpose of reporting disk space in blocks
  683. was that doing so allows for disk space wasted due to fragmentation.
  684. But block size can vary from filesystem to filesystem, and filesystem
  685. organization may be more complex than a single block size can describe
  686. (e.g., consider fragments in the BSD filesystem).
  687.  
  688. Therefore "df" and "du" should simply report disk space in kilobytes
  689. and avoid picking any block size at all.
  690.  
  691. -- 
  692. Rahul Dhesi <dhesi@cirrus.COM>
  693. UUCP:  oliveb!cirrusl!dhesi
  694. "You're even nuttier than we've come to expect of you." -- Doug Gwyn
  695.  
  696.  
  697. Volume-Number: Volume 25, Number 6
  698.  
  699. From std-unix-request@uunet.uu.net  Wed Sep  4 15:58:47 1991
  700. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  701.     (5.61/UUNET-uucp-primary) id AA19533; Wed, 4 Sep 91 15:58:47 -0400
  702. Received: from kithrup.com by relay1.UU.NET with SMTP 
  703.     (5.61/UUNET-internet-primary) id AA15028; Wed, 4 Sep 91 15:58:44 -0400
  704. Newsgroups: comp.std.unix
  705. From: Stefan Esser <se@ikp.uni-koeln.de>
  706. Subject: Re: Democracy Triumphs in Disk Units
  707. Message-Id: <1991Sep4.195720.12563@uunet.uu.net>
  708. Originator: sef@uunet.UU.NET
  709. Sender: UseNet News <usenet@uunet.uu.net>
  710. Nntp-Posting-Host: uunet.uu.net
  711. X-Submissions: std-unix@uunet.uu.net
  712. Organization: Institute of Nuclear Physics, University of Cologne, Germany
  713. References: <1991Aug29.190057.25838@uunet.uu.net> <1991Sep2.214221.26606@uunet.uu.net> <1991Sep2.230739.914@uunet.uu.net> <1991Sep2.230739.914@uunet.uu.net>,
  714. Date: Tue, 3 Sep 1991 17:48:55 GMT
  715. Reply-To: std-unix@uunet.uu.net
  716. To: std-unix@uunet.uu.net
  717.  
  718. Submitted-by: se@IKP.Uni-Koeln.DE (Stefan Esser)
  719.  
  720. In article <1991Sep2.230739.914@uunet.uu.net>, gwyn@smoke.brl.mil (Doug Gwyn) writes:
  721.  
  722. |> If a single size is nonetheless selected for the standard, it must
  723. |> make technical sense -- since many important systems allocate files
  724. |> in integral (perhaps odd) multiples of 512B, and those units can be
  725. |> used to correctly and accurately express sizes of files on systems
  726. |> that allocate in integral multiples of 1024B, while the reverse is
  727. |> NOT TRUE, obviously 512B would be better than 1024B for a standard
  728. |> that must accommodate both kinds of systems.  But flexibility would
  729. |> be better yet.
  730. There's a 'zoo' of UNIX systems in this institute, but *none* of them is 
  731. capable of allocating a single 512 byte sector for a file !
  732. All our BSD FFS are configured as 8k/1k (or 8k/8k) blocksize/fragmsize.
  733. The one lonely left over Sys.V system (a Compaq 386/25 running 386/ix)
  734. has a file system based on 1k blocks for years now ...
  735. Are there really many systems allocating 512 bytes at a time, to be 
  736. expected in the future ?
  737. In my opinion they are nearly gone, today ...
  738. Why take the ballast of an arbitrary unit of file size (block), if you already 
  739. have one 'portable' unit (Byte) that is widely understood ?
  740.  
  741. |> I must say that attempts to force "solutions" based on popularity
  742. |> polls rather than careful reasoning about the actual relevant
  743. |> factors is disgusting.  Demagogues would do us all a favor by staying
  744. |> out of the standardization process.
  745. I think careful reasoning will show, that there is a big number of systems 
  746. with 'du' and 'df' showing KB for years now, and that either we invent 
  747. a way to control the behaviour (how about an environment variable :-) 
  748. that is required by the standard, or we choose one of the ways in which 
  749. du/df are behaving now and make this the standard.
  750. Being the sysadmin of a network of Suns, DECs, HPs and 386s (MACH 
  751. and Sys V.3) I know what I'd prefer ...
  752. [The bad thing in HP-UX is, that 'df' is the Sys.V one (showing blocks).
  753.  The good thing is, that bdf is the BSD 'df' showing KB. 
  754.  Guess which one is being used (aliased to 'df' :-) here ... ]
  755.  
  756. Its true, that not every number 512 byte blocks can be expressed as an 
  757. integral number of KB, but since I'm mostly looking for sizes of directory 
  758. trees when using 'du' and its acceptable to be 512Byte off for a large 
  759. directory, that really (IMHO) doesn't matter.
  760. If I were going to sum up all this subdirectory sizes and expecting to end 
  761. at the disk size, I might be disappointed, but I'm usually not counting 
  762. blocks to be sure none has been lost ...
  763.  
  764. |.            Demagogues would do us all a favor by staying
  765. |> out of the standardization process.
  766. Yes, that seems a reasonable idea. 
  767. But didn't your comment sound a bit demagogic as well ?
  768.  
  769. Stefan Esser
  770. -- 
  771.  Stefan Esser,  Institute of Nuclear Physics,  University of Cologne,  Germany
  772.  se@IKP.Uni-Koeln.DE                                           [134.95.192.50]
  773.  
  774.  
  775. Volume-Number: Volume 25, Number 7
  776.  
  777. From std-unix-request@uunet.uu.net  Wed Sep  4 16:09:54 1991
  778. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  779.     (5.61/UUNET-uucp-primary) id AA23777; Wed, 4 Sep 91 16:09:54 -0400
  780. Received: from kithrup.com by relay1.UU.NET with SMTP 
  781.     (5.61/UUNET-internet-primary) id AA18449; Wed, 4 Sep 91 16:09:53 -0400
  782. Control: cancel <1991Sep4.195435.12273@uunet.uu.net>
  783. Newsgroups: comp.std.unix.ctl
  784. From: Sean Eric Fagan <sef@kithrup.com>
  785. Subject: Re: Voting
  786. Organization: Kithrup Enterprises, Ltd.
  787. Message-Id: <1991Sep04.200301.843@kithrup.COM>
  788. Date: Wed, 04 Sep 1991 20:03:01 GMT
  789. Sender: Sean Eric Fagan <sef@kithrup.com>
  790. Source-Info:  From (or Sender) name not authenticated.
  791. Apparently-To: <std-unix-archive@uunet.uu.net>
  792.  
  793. This one got out by accident, so I'm cancelling it.  I'm also
  794. sef@uunet.uu.net.
  795.  
  796. -- 
  797. Sean Eric Fagan  | "Never irritate someone in charge
  798. sef@kithrup.COM  |       of  another dimension."
  799. -----------------+              -- Rod Darian
  800. Any opinions expressed are my own, and generally unpopular with others.
  801.  
  802. From std-unix-request@uunet.uu.net  Wed Sep  4 16:12:30 1991
  803. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  804.     (5.61/UUNET-uucp-primary) id AA24707; Wed, 4 Sep 91 16:12:30 -0400
  805. Received: from kithrup.com by relay1.UU.NET with SMTP 
  806.     (5.61/UUNET-internet-primary) id AA19068; Wed, 4 Sep 91 16:12:27 -0400
  807. Newsgroups: comp.std.unix
  808. From: Peter da Silva <peter@ficc.ferranti.com>
  809. Subject: Re: what units should df and du use?
  810. Message-Id: <1991Sep4.200613.13103@uunet.uu.net>
  811. Originator: sef@uunet.UU.NET
  812. Keywords: POSIX
  813. Sender: UseNet News <usenet@uunet.uu.net>
  814. Nntp-Posting-Host: uunet.uu.net
  815. Reply-To: Peter da Silva <peter@ficc.ferranti.com>
  816. X-Submissions: std-unix@uunet.uu.net
  817. Organization: Xenix Support, FICC
  818. References: <1991Aug23.010957.11231@uunet.uu.net> <1991Sep3.164924.2376@uunet.uu.net>
  819. Date: Wed, 4 Sep 1991 17:41:08 GMT
  820. To: std-unix@uunet.uu.net
  821.  
  822. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  823.  
  824. In article <1991Sep3.164924.2376@uunet.uu.net> hansen@pegasus.att.com (Tony L Hansen) writes:
  825. > "A block is a block is a block" and "A block consists of 512 bytes".
  826.  
  827. We're running Xenix, UNIX System V, BSD UNIX, MS-DOS, and VAX/VMS. And our
  828. UNIX tools can see all of them.
  829.  
  830. I have some tools that talk in 512 byte blocks, some in 1K blocks, and some
  831. look at the file system and use its block size. I have file systems with 1K
  832. blocks, 512 byte blocks, and 2K blocks. I have file systems with file
  833. granularity varying from 256 bytes up to 8K. Currently, one "du" I use
  834. reports in 1K blocks, one in 512 byte blocks. I have a "df" that reports in
  835. 1K always, one that looks at the file system, and one that falls back on
  836. "bytes".
  837.  
  838. A block isn't always a block, and even when it is it's rarely 512 bytes.
  839.  
  840. At least a byte is always 8 bits: our mainframes don't support RFS or NFS. If
  841. they did, we'd have to deal with some weird block size... some non-power-of-2
  842. multiple of 36 bit words, with either 4 9-bit characters or 6 6-bit characters
  843. in each word...
  844.  
  845.     (Sperry and Burroughs: you take 36 bit computers, and 48 bit
  846.      computers, and mix them together... so why is their slogan
  847.      "Unisys: the power of 2"?)
  848.  
  849. > >Which of these two alternatives would you prefer, and how much?
  850. > >* df and du output is in units of 1024.
  851. > >* df and du is in units of 512 unless you use -k.
  852.  
  853. df and du in "bytes" or "1k blocks", preferably switchable.
  854. -- 
  855. Peter da Silva
  856. Ferranti International Controls Corporation
  857. Sugar Land, TX  77487-5012;  +1 713 274 5180
  858. "Have you hugged your wolf today?"
  859.  
  860.  
  861.  
  862. Volume-Number: Volume 25, Number 8
  863.  
  864. From std-unix-request@uunet.uu.net  Wed Sep  4 16:12:34 1991
  865. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  866.     (5.61/UUNET-uucp-primary) id AA24745; Wed, 4 Sep 91 16:12:34 -0400
  867. Received: from kithrup.com by relay1.UU.NET with SMTP 
  868.     (5.61/UUNET-internet-primary) id AA19092; Wed, 4 Sep 91 16:12:30 -0400
  869. Newsgroups: comp.std.unix
  870. From: Peter da Silva <peter@ficc.ferranti.com>
  871. Subject: Re: what units should df and du use?
  872. Message-Id: <1991Sep4.200809.13251@uunet.uu.net>
  873. Originator: sef@uunet.UU.NET
  874. Sender: UseNet News <usenet@uunet.uu.net>
  875. Nntp-Posting-Host: uunet.uu.net
  876. Reply-To: Peter da Silva <peter@ficc.ferranti.com>
  877. X-Submissions: std-unix@uunet.uu.net
  878. Organization: Xenix Support, FICC
  879. References: <1991Aug23.010957.11231@uunet.uu.net> <1991Aug31.202615.11996@uunet.uu.net> <1991Sep3.165021.2483@uunet.uu.net>
  880. Date: Wed, 4 Sep 1991 17:48:43 GMT
  881. To: std-unix@uunet.uu.net
  882.  
  883. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  884.  
  885. In article <1991Sep3.165021.2483@uunet.uu.net> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
  886. >     BLOCK_UNIT=1        # for me
  887. >     BLOCK_UNIT=512        # for 512ists
  888. >     BLOCK_UNIT=1024        # for 1024ists
  889. >     # no assignment        # for people who want POSIX behaviour
  890.  
  891. My god, a rational, intelligent solution. Someone shoot this man, he's
  892. obviously dangerous.
  893.  
  894. > Ideally, that would be ``locale''-specific.  A simple approach would just be
  895. > to display
  896. > Filesystem          size/512    used   avail capacity  Mounted on
  897.  
  898. Ack, no. Dump it out in a format that can be parsed! There are too many DF
  899. format as is, anyway, but there's no point in having a header in there...
  900.  
  901. /xxx    (/dev/dsk/whatever)    9999 K    9999 inodes
  902.  
  903. > Of course, the Right Answer is that 'df' should be a relation, not a
  904. > program, and df itself should be a trivial AWK script on top of that.
  905.  
  906. Or at least a program that dumps a relation:
  907.  
  908. /xxx:/dev/dsk/whatever:3000000:999000:9999
  909. -- 
  910. Peter da Silva
  911. Ferranti International Controls Corporation
  912. Sugar Land, TX  77487-5012;  +1 713 274 5180
  913. "Have you hugged your wolf today?"
  914.  
  915. [ I think this subject is about beaten to death.  Unless you have something
  916.   new to say, please refrain from feuling the fire.  Thanks -- mod ]
  917.  
  918. Volume-Number: Volume 25, Number 9
  919.  
  920. From std-unix-request@uunet.uu.net  Wed Sep  4 16:12:40 1991
  921. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  922.     (5.61/UUNET-uucp-primary) id AA24817; Wed, 4 Sep 91 16:12:40 -0400
  923. Received: from kithrup.com by relay1.UU.NET with SMTP 
  924.     (5.61/UUNET-internet-primary) id AA19121; Wed, 4 Sep 91 16:12:34 -0400
  925. Newsgroups: comp.std.unix
  926. From: Karl Heuer <karl@ima.isc.com>
  927. Subject: Error detection
  928. Message-Id: <1991Sep4.201137.13461@uunet.uu.net>
  929. Summary: Must a POSIX implementation detect wrong-direction I/O attempts?
  930. Originator: sef@uunet.UU.NET
  931. Sender: UseNet News <usenet@uunet.uu.net>
  932. Nntp-Posting-Host: uunet.uu.net
  933. X-Submissions: std-unix@uunet.uu.net
  934. Organization: Interactive Systems, Cambridge, MA 02138-5302
  935. Date: Wed, 4 Sep 1991 20:06:08 GMT
  936. Reply-To: std-unix@uunet.uu.net
  937. To: std-unix@uunet.uu.net
  938.  
  939. Submitted-by: karl@ima.isc.com (Karl Heuer)
  940.  
  941. A certain vendor's test suite for POSIX compliance expects that code like
  942.     fp=fopen(fname, "w"); c=getc(fp); /* attempted read from output stream */
  943. must cause a run-time error (EBADF, I think).  I claim that the behavior is
  944. undefined.  Who's right?
  945.  
  946. The reason this is an issue, is that the common AT&T implementation of
  947. getc() as a macro doesn't always catch this error.  It merely extracts a
  948. byte from the buffer, and doesn't notice that it's dealing with an output
  949. buffer rather than an input buffer.  Our implementation currently follows
  950. AT&T's, and it is failing the test suite.
  951.  
  952. The person in charge of fixing this problem wants to make getc() a function
  953. call instead of a macro, and add the additional check on each call.  I
  954. believe that if we follow this route, we'll end up with an implementation
  955. that passes the test suite but that nobody wants to use.
  956.  
  957. My own preference, of course, is that the test suite be ruled incorrect.  If
  958. in fact POSIX does require this error to be detected, or if it turns out to
  959. be politically infeasible to ignore the error, or if user demand suggests
  960. that the feature would be useful anyway, then I would prefer a solution that
  961. fixes the problem without affecting the efficiency of getc().  For example,
  962. we could reimplement the FILE structure to have separate _icnt and _ocnt
  963. variables.  However, this solution may have its own semi-political problems,
  964. if we're committed to following an ABI that spells out the shape of the FILE
  965. structure.
  966.  
  967. Karl W. Z. Heuer (karl@ima.isc.com or uunet!ima!karl), The Walking Lint
  968.  
  969.  
  970.  
  971. Volume-Number: Volume 25, Number 10
  972.  
  973. From rbj  Wed Sep  4 19:41:04 1991
  974. Received: by uunet.uu.net (5.61/UUNET-uucp-primary)
  975.     id AA04132; Wed, 4 Sep 91 19:41:04 -0400
  976. Date: Wed, 4 Sep 91 19:41:04 -0400
  977. From: rbj (Root Boy Jim)
  978. Message-Id: <9109042341.AA04132@uunet.uu.net>
  979. To: std-unix-archive
  980. Subject: TEST
  981.  
  982. IGNORE
  983.  
  984. From rbj  Wed Sep  4 19:43:41 1991
  985. Received: by uunet.uu.net (5.61/UUNET-uucp-primary)
  986.     id AA04957; Wed, 4 Sep 91 19:43:41 -0400
  987. Date: Wed, 4 Sep 91 19:43:41 -0400
  988. From: rbj (Root Boy Jim)
  989. Message-Id: <9109042343.AA04957@uunet.uu.net>
  990. To: std-unix-archive
  991. Subject: TESTING
  992.  
  993. IGNORING
  994.  
  995. From std-unix-request@uunet.uu.net  Fri Sep  6 14:50:46 1991
  996. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  997.     (5.61/UUNET-uucp-primary) id AA01979; Fri, 6 Sep 91 14:50:46 -0400
  998. Received: from kithrup.com by relay1.UU.NET with SMTP 
  999.     (5.61/UUNET-internet-primary) id AA03084; Fri, 6 Sep 91 14:50:39 -0400
  1000. Newsgroups: comp.std.unix
  1001. From: Peter Collinson <pc@hillside.co.uk>
  1002. Subject: Standards Update, Editorial
  1003. Message-Id: <1991Sep6.184426.8789@uunet.uu.net>
  1004. Originator: sef@uunet.UU.NET
  1005. Sender: UseNet News <usenet@uunet.uu.net>
  1006. Nntp-Posting-Host: uunet.uu.net
  1007. X-Submissions: std-unix@uunet.uu.net
  1008. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1009. Date: Thu, 5 Sep 1991 08:53:29 GMT
  1010. Reply-To: std-unix@uunet.uu.net
  1011. To: std-unix@uunet.uu.net
  1012.  
  1013. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1014.  
  1015. The Five Great Myths of Open Systems Standards
  1016. USENIX Standards Watchdog Committee
  1017. Stephen R. Walli <stephe@usenix.org>, Report Editor
  1018.  
  1019.  
  1020. I recently read a column where the author described computer people at
  1021. cocktail parties as the doctors of the 90's.  Instead of everyone
  1022. wanting to discuss their aches and pains with some poor medical
  1023. practitioner while they're trying to sip scotch and nibble hors
  1024. d'oeuvres, computer people are plagued with the latest chat from
  1025. computer literate business people.
  1026.  
  1027. No longer are you merely cornered by DOS know-it-alls, now you get to
  1028. deal with the sweeping issues of GUI Wars, and whether UNIX will
  1029. displace DOS on the desktop. Open systems are in vogue. Standards are
  1030. ``sexy''.
  1031.  
  1032. With all of this comes the new ``Open Systems'' know-it-all.  These
  1033. are people who can spell POSIX, but can't pronounce it. They've all
  1034. been taken to lunch recently by their favourite marketing rep from one
  1035. of those lavish companies whose name is a regulation three letter
  1036. acronym, let's call them TLA for short.
  1037.  
  1038. I started discerning certain patterns in all of this idle gossip and
  1039. chatter, and now present to you the Five Great Myths of Open Systems
  1040. Standards:
  1041.  
  1042. Myth #1
  1043.  
  1044. ``Vendor TLA IS the standard.'' This is the traditional mix-up between
  1045. de jure standards, and de facto standards. Or REAL standards and
  1046. market share. De jure standards are built by accredited standards
  1047. development bodies. There is a fair process involved to ensure all
  1048. points of view are heard. It is a consensus process, not a majority
  1049. one.
  1050.  
  1051. De facto standards are mostly under the limited control of a single
  1052. organization.  They are often trade marked. If they are available at
  1053. all outside of their controlling organization, the technology is often
  1054. licensed. The holder of the license effectively controls where they
  1055. want to take the technology. They accept input from some form of user
  1056. constituency, but ultimately they run the show. I look at this as the
  1057. difference between a POSIX standard interface, and a UNIX operating
  1058. system.
  1059.  
  1060. Myth #2
  1061.  
  1062. ``Vendor TLA is part of the standards development group, and they're
  1063. donating this technology to the standard.'' Always a knee slapper. As
  1064. if all it took to make a standard was for a vendor to donate part of
  1065. its technology, obviously out of the goodness of its heart for
  1066. mankind. These people have not participated in the excitement of a
  1067. Threads Wars, or the current painful GUI Wars.
  1068.  
  1069. Many vendors would love to have their specification as a standard.  It
  1070. gives them an instant product to sell into the hot ``standards''
  1071. market. They just have to get past the rest of the standards working
  1072. group, made up of various backgrounds and biases.
  1073.  
  1074. Then comes a balloting group, a superset of the working group. These
  1075. people haven't necessarily had the benefit of participating in the
  1076. discussions that led to a decision. The popularity of publishing the
  1077. rationale for decisions helps alleviate this problem, but not always.
  1078. There will always be people in a balloting group that know their
  1079. solution is the technically correct one. It's a whole lot easier to
  1080. disagree with the committee, balloting a draft you didn't help make,
  1081. than in the working group sessions where the talking is done face to
  1082. face.
  1083.  
  1084. Other vendors don't want their technology to be a public controlled
  1085. standard.  They lose control of their own specification. If they have
  1086. a large market share, i.e.  they're a de facto standard, they may want
  1087. nothing to do with becoming a de jure standard.
  1088.  
  1089. Myth #3
  1090.  
  1091. ``Vendor TLA sells a POSIX conforming system.'' Wrong. No one sells a
  1092. ``POSIX'' conforming system. Indeed, POSIX conformance is the real
  1093. myth here.
  1094.  
  1095. POSIX.3 is a standard which defines the test methodology used to
  1096. measure conformance to POSIX. It has recently become a standard, IEEE
  1097. 1003.3-1991. An accompanying document, still in the balloting process
  1098. and therefore unstable, is POSIX.3.1. This document contains the test
  1099. methods themselves for POSIX.1, (the base system interface standard),
  1100. which everyone refers to as ``POSIX''.
  1101.  
  1102. By definition, POSIX.3.1 is not yet a standard, hence no POSIX.1
  1103. conformance test suite actually exists.
  1104.  
  1105. There is a United States government procurement profile of POSIX.1
  1106. called FIPS 151-1, or in today's open systems circus, simply ``THE
  1107. FIPS.'' FIPS 151-1 chooses certain options within the standard.  It
  1108. even defines certain behaviour that in the standard is left as
  1109. implementation defined. It was written against the original POSIX.1
  1110. standard, IEEE 1003.1-1988, not the current one, (IEEE 1003.1-1990.)
  1111. In fact it was written prior to the completion of the standard.
  1112.  
  1113. In theory, nothing changed in POSIX.1, between 1988 and 1990, except
  1114. for the reformatting to make it ISO acceptable, and ``bug fixes''.
  1115. The removal of cuserid() was a ``bug fix''.
  1116.  
  1117. Because of the obvious buying power of the U.S. government, most major
  1118. vendors are implementing FIPS 151-1. It is a profile or subset of
  1119. POSIX.1.
  1120.  
  1121. Test suites exist to test conformance against FIPS 151-1.  These must
  1122. use the test methods described in POSIX.3.1 (still in ballot.) One of
  1123. them was written to an early draft of POSIX.3.1.  Another was written
  1124. by using the AT&T UNIX System V Verification Suite (SVVS) as a base.
  1125. SVVS dependencies are still being discovered and weeded out of this
  1126. one. It is quite possible to implement something different from the
  1127. FIPS, which would fail the FIPS test suites miserably, yet would
  1128. technically conform to the standard.  (If only there was a way to
  1129. prove it.)
  1130.  
  1131. Myth #4
  1132.  
  1133. ``POSIX isn't important - it's source code portability that's
  1134. important.'' Well, no and yes. One vendor is notorious for this game.
  1135.  
  1136. Yes, absolutely, source code portability is what it's all about. This
  1137. is typically one of the banners that's waved around in many people's
  1138. definitions of open systems.
  1139.  
  1140. POSIX is a family of standards designed to provide source code
  1141. portability. The interface was derived from the many UNIX system
  1142. interfaces that existed. UNIX was/is a de facto operating system in
  1143. many arenas. Many vendors are implementing the POSIX interface on
  1144. their non-UNIX derivative proprietary operating systems.
  1145.  
  1146. No, POSIX is not UNIX. Many UNIX developers mourn and despise what has
  1147. happened to the UNIX interface. They shouldn't. First of all, the base
  1148. technology, which is close enough that they are already familiar with
  1149. it, is becoming available on a huge installed base of technology. The
  1150. demand will far outstrip the supply of technologists familiar with it.
  1151. Second, nothing is preventing them from continuing on in their current
  1152. preferred environment. It is different enough that they can continue
  1153. developing software as they always have. It's just not as portable.
  1154.  
  1155. There are other software development environments which ensure
  1156. software portability. VMS on a VAX architecture guarantees portability
  1157. of source (and executables) across the entire line of VAX hardware.
  1158. This is fine if that's where your business lays.  Likewise, IBM's SAA
  1159. will provide similar source portability benefits across disparate IBM
  1160. architectures. They're really muddying the waters by also implementing
  1161. some of the other ``open system'' interfaces on the SAA platforms.
  1162. Again, it all depends where you as a software developer want to draw
  1163. the portability line. POSIX is becoming the path to widest portability.
  1164.  
  1165. Myth #5
  1166.  
  1167. ``Open systems technologies will revolutionize the way software is
  1168. developed.'' Yet another silver bullet contestant.  Everyone remember
  1169. the marketing hype around 4GLs? CASE? These are all good useful
  1170. technologies. They simply need to be applied in their proper forum.
  1171. They do not remove the responsibility of thought, i.e. creative
  1172. design, careful development, and inventive testing of a problem's
  1173. solution.
  1174.  
  1175. The current ``promise'' of open systems technologies has us living in
  1176. a completely networked corporation of resources.  Applications running
  1177. where the optimal appropriate processing resource is.  Information
  1178. available everywhere at once, both properly protected and with its
  1179. true location completely irrelevant. All of it interfaced via some
  1180. wonderful intuitive graphic user interface.
  1181.  
  1182. I do believe this is where we're going. The technology is often
  1183. commercially available already, but with some very real constraints on
  1184. it. Often these constraints involve how new the technology is, and the
  1185. lack of standardization.
  1186.  
  1187. It is a great vision, but before it's available in completely
  1188. heterogeneous networked environments, the technology has to stabilize
  1189. enough for standards to be created. No matter how dazzling the
  1190. technology seems to be, a standard cannot be wrestled on to it too
  1191. early, or it becomes a straight jacket on the creative forces shaping
  1192. it.
  1193.  
  1194. Networked system administration at this level is in its infancy. A
  1195. corporation's information and application architecture is often
  1196. weighted down in a heavy history of legacy systems.  (That's if the
  1197. corporation can even draw its architectures!) These are a couple of
  1198. the ``minor'' problems that need to be dealt with before marketing
  1199. sells the ``promise'' too fully.
  1200.  
  1201. Conclusions
  1202.  
  1203. So there they are. My five favourite myths of open systems standards.
  1204. I'm sure this is just the beginning. (I don't get to a lot of cocktail
  1205. parties. I have small children.)
  1206.  
  1207. I'd love to hear other additions to this. No matter how outrageous.
  1208.  
  1209. Volume-Number: Volume 25, Number 11
  1210.  
  1211. From std-unix-request@uunet.uu.net  Fri Sep  6 14:50:55 1991
  1212. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  1213.     (5.61/UUNET-uucp-primary) id AA02038; Fri, 6 Sep 91 14:50:55 -0400
  1214. Received: from kithrup.com by relay1.UU.NET with SMTP 
  1215.     (5.61/UUNET-internet-primary) id AA03110; Fri, 6 Sep 91 14:50:45 -0400
  1216. Newsgroups: comp.std.unix
  1217. From: Peter Collinson <pc@hillside.co.uk>
  1218. Subject: Standards Update, POSIX.0: Guide to Open Systems Environments
  1219. Message-Id: <1991Sep6.184552.8965@uunet.uu.net>
  1220. Originator: sef@uunet.UU.NET
  1221. Sender: UseNet News <usenet@uunet.uu.net>
  1222. Nntp-Posting-Host: uunet.uu.net
  1223. X-Submissions: std-unix@uunet.uu.net
  1224. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1225. Date: Thu, 5 Sep 1991 08:53:29 GMT
  1226. Reply-To: std-unix@uunet.uu.net
  1227. To: std-unix@uunet.uu.net
  1228.  
  1229. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1230.  
  1231. USENIX Standards Watchdog Committee
  1232. Stephen R. Walli <stephe@usenix.org>, Report Editor
  1233. POSIX.0: Guide to Open Systems Environments
  1234.  
  1235.  
  1236. Kevin Lewis <klewis@gucci.enet.dec.com> reports on the July 8-12, 1991
  1237. meeting in Santa Clara, CA:
  1238.  
  1239. The July meeting of POSIX.0 saw a different approach to the week's
  1240. work.  Instead of abiding by the draft agenda, the group trashed it
  1241. and took what might be called a ``fish or cut bait'' approach.
  1242. POSIX.0 looked at each major section and determined whether or not it
  1243. was ready for mock ballot, or could be made ready by the October
  1244. meeting.
  1245.  
  1246. Accomplishing the latter required individuals to step up to the task
  1247. of editting sections during the meeting, with some degree of plenary
  1248. review before the week's end.  This required a commitment from the
  1249. group at large to refrain from any super ethereal or journalistically
  1250. based editorial discussions. This has sometimes been hard to avoid in
  1251. the past.  The group stuck to its guns, however, and a great deal of
  1252. headway was made.
  1253.  
  1254. The sections within the guide that remain undecided for mock ballot
  1255. are:
  1256.  
  1257.    - networking,
  1258.  
  1259.    - security,
  1260.  
  1261.    - graphics (GKS, etc.),
  1262.  
  1263.    - command user interface,
  1264.  
  1265.    - system administration,
  1266.  
  1267.    - fault management.
  1268.  
  1269. Should the group decide that a section is not ready, we will simply
  1270. not include it in the mock ballot. It will be included in the formal
  1271. ballot.
  1272.  
  1273. As it currently stands, the group plans to start the mock ballot early
  1274. in November, bringing all ballot comments to the January meeting.
  1275. This appears to be very feasible.
  1276.  
  1277. The POSIX.0 project was reviewed at this meeting by the TCOS-SS
  1278. Project Management Committee.  The review determined there was the
  1279. need for other TCOS-SS working groups to better coordinate with and
  1280. contribute to the POSIX.0 guide.
  1281.  
  1282. This was mandated through an SEC resolution.  The greatest concern
  1283. among the other standards working groups is ``how in the world are
  1284. they going to find time to do that.'' The groups are already concerned
  1285. about their current work loads.
  1286.  
  1287. I believe that once we go through the preparation at the October
  1288. meeting, and get into the mock ballot, many of the loops that are
  1289. still open will be closed.  That is not to say that there will be no
  1290. outstanding issues, but the major concerns should be laid to rest.
  1291.  
  1292. Volume-Number: Volume 25, Number 12
  1293.  
  1294. From std-unix-request@uunet.uu.net  Fri Sep  6 14:51:05 1991
  1295. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  1296.     (5.61/UUNET-uucp-primary) id AA02146; Fri, 6 Sep 91 14:51:05 -0400
  1297. Received: from kithrup.com by relay1.UU.NET with SMTP 
  1298.     (5.61/UUNET-internet-primary) id AA03155; Fri, 6 Sep 91 14:50:57 -0400
  1299. Newsgroups: comp.std.unix
  1300. From: Peter Collinson <pc@hillside.co.uk>
  1301. Subject: Standards Update, POSIX.3: POSIX Test Methods and Conformance
  1302. Message-Id: <1991Sep6.184743.9124@uunet.uu.net>
  1303. Originator: sef@uunet.UU.NET
  1304. Sender: UseNet News <usenet@uunet.uu.net>
  1305. Nntp-Posting-Host: uunet.uu.net
  1306. X-Submissions: std-unix@uunet.uu.net
  1307. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1308. Date: Thu, 5 Sep 1991 08:53:29 GMT
  1309. Reply-To: std-unix@uunet.uu.net
  1310. To: std-unix@uunet.uu.net
  1311.  
  1312. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1313.  
  1314. USENIX Standards Watchdog Committee
  1315. Stephen R. Walli <stephe@usenix.org>, Report Editor
  1316. Report on POSIX.3: POSIX Test Methods and Conformance
  1317.  
  1318. Andrew Twigger <att@root.co.uk> reports on the July 8-12, 1991 meeting
  1319. in Santa Clara, CA:
  1320.  
  1321. The Santa Clara meeting could in many ways be considered to be one of
  1322. the less eventful of the recent POSIX.3 meetings.
  1323.  
  1324. Draft 5 of the POSIX.3.2 document was distributed at the meeting, with
  1325. the majority of the test assertions having been aligned with the text
  1326. of POSIX.2 (Shell and Utilities) Draft 11.  This alignment was
  1327. exquisitely timed to coincide with the production of Draft 11.1 of
  1328. POSIX.2, immediately rendering parts of Draft 5 out of date!  Perhaps
  1329. the documents can be synchronized for the next meeting, or the one
  1330. after that, or ....
  1331.  
  1332. The majority of the POSIX.3 working group spent most of the meeting
  1333. writing assertions with POSIX.2.  Having already dealt with the
  1334. ``simpler'' utilities, some of the more complex utilities (make, pax,
  1335. ls) were tackled during the week.  The next draft should contain
  1336. assertions for about 95% of the utilities, however the remaining 5%
  1337. could take 95% of the time!
  1338.  
  1339. The ballot review group for POSIX.3.1 met briefly during the week to
  1340. look over the objections received during the last ballot
  1341. recirculation.  Most of these had been resolved prior to the meeting
  1342. and it was expected that the remaining items could be resolved by the
  1343. end of August.  Another brief recirculation ballot is expected in the
  1344. Autumn, with possibly another standard being completed by the end of
  1345. the year.
  1346.  
  1347. The SCCT met twice during the week and finally approved some of the
  1348. test method development plans submitted by the other working groups.
  1349. The rumour that this was only in response to moans from the other
  1350. working groups that the SCCT had rejected every plan submitted in the
  1351. previous nine months is not entirely without foundation!  Most of the
  1352. other working groups, however, are getting geared up to produce test
  1353. methods with their documents.
  1354.  
  1355. Several members of POSIX.3 spent time in assisting other working
  1356. groups to develop test methods for their standards.  Much of this time
  1357. was spent in helping the working groups to understand how significant
  1358. a task this is and in helping the working groups to develop a
  1359. reasonable strategy for test methods.  Some time was also spent in
  1360. reviewing the work that had already been done by work group members.
  1361. There seems to be an increased awareness of the problems and an ever
  1362. improving quality to the test methods that the working group are
  1363. producing.
  1364.  
  1365. Volume-Number: Volume 25, Number 14
  1366.  
  1367. From std-unix-request@uunet.uu.net  Fri Sep  6 14:51:03 1991
  1368. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  1369.     (5.61/UUNET-uucp-primary) id AA02129; Fri, 6 Sep 91 14:51:03 -0400
  1370. Received: from kithrup.com by relay1.UU.NET with SMTP 
  1371.     (5.61/UUNET-internet-primary) id AA03128; Fri, 6 Sep 91 14:50:50 -0400
  1372. Newsgroups: comp.std.unix
  1373. From: Peter Collinson <pc@hillside.co.uk>
  1374. Subject: Standards Update, POSIX.2: Shell and Utilities
  1375. Message-Id: <1991Sep6.184656.9058@uunet.uu.net>
  1376. Originator: sef@uunet.UU.NET
  1377. Sender: UseNet News <usenet@uunet.uu.net>
  1378. Nntp-Posting-Host: uunet.uu.net
  1379. X-Submissions: std-unix@uunet.uu.net
  1380. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1381. Date: Thu, 5 Sep 1991 08:53:29 GMT
  1382. Reply-To: std-unix@uunet.uu.net
  1383. To: std-unix@uunet.uu.net
  1384.  
  1385. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1386.  
  1387. USENIX Standards Watchdog Committee
  1388. Stephen Walli <stephe@usenix.org>, Report Editor
  1389. Report on POSIX.2: Shell and Utilities
  1390.  
  1391.  
  1392. David Rowley <david@mks.com> reports on the July 8-12
  1393. meeting in Santa Clara, CA:
  1394.  
  1395. Summary
  1396.  
  1397. POSIX.2 (Shell and Utilities) Draft 11.1 closed its recirculation
  1398. ballot on July 19. This draft was circulated as the 250 pages that had
  1399. changed from Draft 11. Balloting a ``changes-only'' draft proved to be
  1400. a challenge in itself.  POSIX.2a (User portability extension) Draft 7
  1401. closed its recirculation ballot on August 19.
  1402.  
  1403. POSIX.2b has been approved after a number of recommendations from the
  1404. Project Management Committee.  The POSIX.2 group continued work on the
  1405. new PAX archive format.  Most of the time was again spent in a joint
  1406. meeting with POSIX.3.2 (Test Methods for POSIX.2) creating test
  1407. assertions for the document.
  1408.  
  1409. Background
  1410.  
  1411. A brief POSIX.2 project description:
  1412.  
  1413.    - POSIX.2 is the base standard dealing with the basic shell
  1414.      programming language and a set of utilities required for the
  1415.      portability of shell scripts.  It excludes most features that
  1416.      might be considered interactive.  POSIX.2 also standardizes
  1417.      command-line and function interfaces related to certain POSIX.2
  1418.      utilities (e.g., popen(), regular expressions, etc.).  This part
  1419.      of POSIX.2, which was developed first, is sometimes known as
  1420.      ``Dot 2 Classic.''
  1421.  
  1422.    - POSIX.2a, the User Portability Extension or UPE, is a supplement
  1423.      to the base standard. It standardizes commands, such as vi, that
  1424.      might not appear in shell scripts, but are important enough that
  1425.      users must learn them on any real system.  It is essentially an
  1426.      interactive standard, and will eventually be an optional chapter
  1427.      to a future draft of the base document.  This approach allows the
  1428.      adoption of the UPE to trail Dot 2 Classic without delaying it.
  1429.  
  1430.      Some utilities have both interactive and non-interactive
  1431.      features.  In such cases, the UPE defines extensions from the
  1432.      base POSIX.2 utility.  Features used both interactively and in
  1433.      scripts tend to be defined in the base standard.
  1434.  
  1435.    - POSIX.2b is a newly approved project which will cover extensions
  1436.      and new requests from other groups, such as utilities for the
  1437.      POSIX.4 (Realtime) and POSIX.6 (Security) documents.
  1438.  
  1439. Together, Dot 2 Classic and the UPE will make up the International
  1440. Standards Organization's ISO 9945-2 -- the second volume of the
  1441. proposed ISO three-volume POSIX standard.
  1442.  
  1443. POSIX.2 Status
  1444.  
  1445. Resolution of POSIX.2 Draft 11 ballot objections was completed, and a
  1446. Draft 11.1 was re-circulated. There were 900 objections received for
  1447. Draft 11.  The Draft 11.1 recirculation ballot closed July 19.
  1448.  
  1449. This draft was circulated as a 250 page ``changes-only'' document.
  1450. This is created by printing the document and extracting all those
  1451. pages containing change bars. Although this saves paper, it makes
  1452. balloting extremely difficult.  The context of the changes is lost.
  1453. Since the page numbers (and even some section numbers) have changed
  1454. since Draft 11, cross referencing old drafts doesn't help much.
  1455.  
  1456. The intent of this technique is to physically demonstrate the increase
  1457. in consensus by the smaller size of the document. Even though
  1458. balloting is made more difficult, I agree with the spirit of this
  1459. approach, since most of the changes between Draft 11 and Draft 11.1
  1460. were fairly minor clarifications of the wording.
  1461.  
  1462. One advantage of the ``changes-only'' approach is that it helps to
  1463. prevent balloters from commenting on those items that have not changed
  1464. since the last draft.  This is a restriction placed on recirculation
  1465. ballots. You can't object to something you can't see!
  1466.  
  1467. The complete Draft 11.1 document is available from the IEEE for
  1468. copying costs.  Draft 11.2 is already in the works, and should appear
  1469. sometime in September or October.
  1470.  
  1471. There have been a few requests lately to amend the POSIX.2 project's
  1472. base documents list. This is a list of documents which may be
  1473. referenced when discussing existing practice issues.  The OSF's
  1474. Application Environment Specification (AES) is one such candidate for
  1475. addition.
  1476.  
  1477. Draft 9 of POSIX.2 is currently an ISO committee document.  The ISO
  1478. standards process sees a document move through three phases on its way
  1479. to standardization -- Committee Document, Draft International
  1480. Standard, and finally International Standard.  ISO has requested the
  1481. U.S. Member Body to forward to them another draft once it has become
  1482. more stable. Draft 11.2 has been recommended for this, when it becomes
  1483. available.
  1484.  
  1485. Draft 11.3 should be out sometime in December. It should be complete
  1486. from a technical standpoint.  Hal Jespersen, the POSIX.2 Chair,
  1487. reported that final IEEE approval of POSIX.2 as a full-use standard
  1488. will be delayed until all ISO concerns have been addressed. This could
  1489. mean postponing the IEEE POSIX.2 standard until the middle of 1992. I
  1490. don't completely understand why the ISO concerns cannot be addressed
  1491. now, through ISO responses to the Committee Documents sent to them.
  1492. This will no doubt be discussed heavily in the months ahead.
  1493.  
  1494. POSIX.2a Status
  1495.  
  1496. Ballot resolution for POSIX.2a (UPE) Draft 6 was completed.  There
  1497. were only 400 objections. Draft 7 was produced and recirculated, and
  1498. the ballot closed August 19. Ballot resolution is ongoing.
  1499.  
  1500. The list of POSIX.2a utilities is now stable. There should not be any
  1501. additions or deletions. The technical content of the standard should
  1502. be wrapped up in the first quarter of 1992.  Draft 6 of POSIX.2a was
  1503. submitted to ISO as a proposed Committee Document/Proposed Draft
  1504. Amendment (PDAM) for eventual balloting as ISO 9945-2, Amendment 1.
  1505. Due to some procedural problems, it was changed to a Review and
  1506. Comment draft.  The next draft of POSIX.2a will likely be Draft 8, a
  1507. full draft.  This will also be forwarded to the ISO, as a Proposed
  1508. Draft Amendment, and will hopefully make it this time.  Expect the
  1509. approval of POSIX.2a as a full-use standard anywhere from three to six
  1510. months after POSIX.2.
  1511.  
  1512. Project Management Committee Review
  1513.  
  1514. Both POSIX.2 and POSIX.2a are up for review by the Project Management
  1515. Committee (PMC) in October. Each project will be examined to ensure
  1516. that the work is fulfilling its mandate.
  1517.  
  1518. The PMC has recommended that the proposed project request (PAR) for
  1519. POSIX.2b deal strictly with new utilities. The ISO timing and
  1520. formatting issues originally included in the scope of POSIX.2b were
  1521. thought to be unnecessary.
  1522.  
  1523. POSIX.2b will include utilities from the other POSIX working groups.
  1524. These working groups may allocate chapters in the standard in a
  1525. similar fashion to POSIX.2a.  Each group retains control of its
  1526. chapter.  This is preferable to delegating the specification of the
  1527. utilities to the existing POSIX.2 working group, which may not have the
  1528. required expertise.
  1529.  
  1530. One question arose from this: as the work of other groups is
  1531. integrated into POSIX.2 should those other groups' base documents
  1532. automatically be added to those of POSIX.2?
  1533.  
  1534. New PAX Archive Format
  1535.  
  1536. Work continued on the new PAX archive format. No new proposals were
  1537. forthcoming, and the group continued working in its current direction.
  1538. The intent is to build a new archive format on top of the ISO 1001
  1539. tape standard. The current new format specification does not draw a
  1540. clear line between what is part of the ISO format, and what was added
  1541. for PAX.  This will be remedied in a subsequent draft.
  1542.  
  1543. I have reconsidered my earlier challenges to basing this new format on
  1544. ISO 1001. It does have tangible benefits, and should make transferring
  1545. tapes between non-traditional environments easier. The current
  1546. proposal addresses both tape and non-tape based formats.
  1547.  
  1548. Unfortunately, the current POSIX.2 working group does not seem to have
  1549. a great deal of enthusiasm for this project.  Progress is slow.
  1550. Unless someone champions this new format, it may well stall. Mark
  1551. Brown (IBM) has volunteered to flesh out the current draft for
  1552. distribution in the next POSIX.2 mailing.
  1553.  
  1554. Test Plans and Assertions
  1555.  
  1556. A test plan for POSIX.2 and POSIX.2a was written, and submitted to
  1557. POSIX.3.2 (Test Assertions for POSIX.2) for review.  Lowell Johnson,
  1558. POSIX.3.2 Chair, expressed some concerns over the linkage of the
  1559. POSIX.2 and the POSIX.2a test plans. It is important that each test
  1560. plan cover the scope of one and only one project.
  1561.  
  1562. Tuesday to Friday were spent writing test assertions in a joint
  1563. meeting between POSIX.2 and POSIX.3.2.  Confusion continues to reign
  1564. when writing assertions. There are many different assertion styles,
  1565. and it seems to be more art than science.  Styles range from ``you
  1566. know what I mean'', to precise, verbose, legalese. The group requested
  1567. that the Chair (Lowell Johnson) and the Technical Editor (Andrew
  1568. Twigger) produce a style guide for POSIX.3.2 assertions.  The guide
  1569. would be reviewed at the beginning of each joint meeting. This should
  1570. greatly help the consistency of the assertions being produced.
  1571.  
  1572. Draft 5 of POSIX.3.2 is now 400 pages, and most of the POSIX.2
  1573. commands have assertions. The group is still intending to mock ballot
  1574. the document after the October meeting.  A few utilities are
  1575. noticeably absent: awk, lex, and yacc. I'm sure donations of good
  1576. assertions for these utilities would be most welcome.
  1577.  
  1578. The turnout for the joint meetings was disappointing.  Writing test
  1579. assertions is time consuming hard work.  Ideally the joint meeting
  1580. time should be spent reviewing assertions, and clarifying the implied
  1581. interpretations of the standard. Unfortunately, it is difficult for
  1582. members to find the time between meetings to write assertions.
  1583.  
  1584. Writing test assertions for POSIX.2a will likely start in January
  1585. 1992.  If you thought test assertions for make were difficult, wait
  1586. until you try vi!
  1587.  
  1588. Volume-Number: Volume 25, Number 13
  1589.  
  1590. From std-unix-request@uunet.uu.net  Fri Sep  6 14:51:14 1991
  1591. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  1592.     (5.61/UUNET-uucp-primary) id AA02220; Fri, 6 Sep 91 14:51:14 -0400
  1593. Received: from kithrup.com by relay1.UU.NET with SMTP 
  1594.     (5.61/UUNET-internet-primary) id AA03184; Fri, 6 Sep 91 14:51:04 -0400
  1595. Newsgroups: comp.std.unix
  1596. From: Peter Collinson <pc@hillside.co.uk>
  1597. Subject: Standards Update, POSIX.4, POSIX.4a, POSIX.4b, POSIX.13: Realtime POSIX
  1598. Message-Id: <1991Sep6.184900.9302@uunet.uu.net>
  1599. Originator: sef@uunet.UU.NET
  1600. Sender: UseNet News <usenet@uunet.uu.net>
  1601. Nntp-Posting-Host: uunet.uu.net
  1602. X-Submissions: std-unix@uunet.uu.net
  1603. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1604. Date: Thu, 5 Sep 1991 08:53:29 GMT
  1605. Reply-To: std-unix@uunet.uu.net
  1606. To: std-unix@uunet.uu.net
  1607.  
  1608. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1609.  
  1610. USENIX Standards Watchdog Committee
  1611. Stephen R. Walli <stephe@usenix.org>, Report Editor
  1612. Report on POSIX.4, POSIX.4a, POSIX.4b, POSIX.13: Realtime POSIX
  1613.  
  1614. Bill O. Gallmeister <bog@lynx.com> reports on the July 8-12, 1991
  1615. meeting in Santa Clara, CA:
  1616.  
  1617. Summary
  1618.  
  1619. The working group continued work on Application Profiles, on the
  1620. extended POSIX.4b Realtime Proposals, and on the thorny issues of IPC
  1621. and synchronization mechanisms. Since both POSIX.4 and POSIX.4a are
  1622. preparing for another ballot recirculation, there was little work done
  1623. on these drafts.
  1624.  
  1625. Real-time Application Profiles
  1626.  
  1627. POSIX.4 has produced four different profiles, matching different
  1628. scales of real-time endeavor.  The Embedded profile is meant for small
  1629. machines that may lack hardware for paging, disks, and terminals.  As
  1630. such, this profile is rather different than what is generally
  1631. considered to be a UNIX(TM) system.  In particular, the threads work
  1632. is called out, and some of the POSIX.1 file system, but fork() is not
  1633. needed.
  1634.  
  1635. This requires subsets of POSIX.1.  Its multiprocess aspects and a lot
  1636. of the extended filesystem semantics are considered optional by the
  1637. people working on the smaller Real-Time profiles.  This subsetting
  1638. work has to be sanctioned by POSIX.1.  Getting them to agree to this
  1639. work may be an interesting task.
  1640.  
  1641. Other profiles under development are a ``Controller'' profile, an
  1642. ``Avionics'' profile, and the ``Kitchen Sink'' profile.  The Kitchen
  1643. Sink and the Embedded profiles define two endpoints of a spectrum of
  1644. real-time practice.  The Controller and Avionics profiles define
  1645. particular points of practice within that spectrum.  The Avionics
  1646. profile reflects the current requirements of the Avionics industry.
  1647. The Controller profile is a step up from the Embedded profile.
  1648.  
  1649. IPC Again
  1650.  
  1651. POSIX.4 inter-process communication (IPC) remains an issue.  We had a
  1652. liaison meeting with the POSIX.12 (Protocol Independent Interfaces)
  1653. working group and presented our requirements for a Real-Time sockets
  1654. mechanism.  There were 28 possible requirements; we decided that 17 of
  1655. these requirements were truly necessary for a socket-based mechanism
  1656. for Real-Time IPC.  The POSIX.12 group helped us refine these
  1657. requirements into something they can use in defining a mechanism.
  1658. These discussions will undoubtedly carry on for some time.
  1659.  
  1660. Meanwhile, the existing POSIX.4 IPC chapter is undergoing radical
  1661. surgery.  The recirculation draft that should come out this October
  1662. should feature an IPC mechanism that more closely resembles the
  1663. message passing interfaces of small real-time kernels.  The
  1664. interaction of this message-passing mechanism and the future POSIX.12
  1665. real-time sockets mechanism is an open issue.
  1666.  
  1667. Synchronization Again
  1668.  
  1669. At the last meeting, it was the POSIX.4 proposal that needed guidance
  1670. from the working group on its binary semaphores chapter.  This
  1671. meeting, the POSIX.4a proposal required guidance with regards to
  1672. mutexes.  (Mutexes are simple MUTually EXclusive locks.) Specifically,
  1673. the priority ceiling protocols in the current draft ran into serious
  1674. balloting problems.  In response to this, a simplified version of the
  1675. priority ceiling protocol, called Priority Ceiling Protocol Emulation,
  1676. was proposed to replace the existing two mechanisms currently in
  1677. POSIX.4a.  The emulation protocol is much easier to understand, offers
  1678. the same worst-case blocking behavior as the earlier proposals
  1679. (although worse average-case behavior), and works with multiprocessor
  1680. systems.  The working group was torn whether any priority ceiling
  1681. protocol should be in POSIX.4a at all.  Assuming that one would be
  1682. present, the group clearly preferred the emulation protocol.
  1683.  
  1684. The debates on priority ceiling featured a lively exchange between
  1685. POSIX.4 and POSIX.14 (Multiprocessor Profile). This is the closest
  1686. that POSIX.4 has come to its old glory days of large bloody group
  1687. battles.
  1688.  
  1689. POSIX.4b
  1690.  
  1691. Some work was done on the timeout extensions of POSIX.4b.  This work
  1692. involves providing timeouts to all POSIX.4 calls that may block.  An
  1693. early draft of this proposal is available in the latest POSIX.4
  1694. mailing.
  1695.  
  1696. Future Drafts
  1697.  
  1698. The technical reviewers for POSIX.4 and POSIX.4a have been working
  1699. hard towards new drafts of each of these documents.  It is our current
  1700. plan to recirculate them both at about the same time as the Fall
  1701. meeting.  If this happens, the next meeting will again focus on
  1702. application profiles and continuing POSIX.4b.
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755. Volume-Number: Volume 25, Number 15
  1756.  
  1757. From std-unix-request@uunet.uu.net  Fri Sep  6 14:51:22 1991
  1758. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  1759.     (5.61/UUNET-uucp-primary) id AA02280; Fri, 6 Sep 91 14:51:22 -0400
  1760. Received: from kithrup.com by relay1.UU.NET with SMTP 
  1761.     (5.61/UUNET-internet-primary) id AA03249; Fri, 6 Sep 91 14:51:18 -0400
  1762. Newsgroups: comp.std.unix
  1763. From: Peter Collinson <pc@hillside.co.uk>
  1764. Subject: Standards Update, POSIX.6: POSIX Security Extensions
  1765. Message-Id: <1991Sep6.184959.9426@uunet.uu.net>
  1766. Originator: sef@uunet.UU.NET
  1767. Sender: UseNet News <usenet@uunet.uu.net>
  1768. Nntp-Posting-Host: uunet.uu.net
  1769. X-Submissions: std-unix@uunet.uu.net
  1770. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1771. Date: Thu, 5 Sep 1991 08:53:29 GMT
  1772. Reply-To: std-unix@uunet.uu.net
  1773. To: std-unix@uunet.uu.net
  1774.  
  1775. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1776.  
  1777. USENIX Standards Watchdog Committee
  1778. Stephen R. Walli <stephe@usenix.org>, Report Editor
  1779. Report on POSIX.6: POSIX Security Extensions
  1780.  
  1781.  
  1782. Ana Maria De Alvare' <anamaria@sgi.com> reports on the July 8-12,
  1783. 1991 meeting in Santa Clara, CA:
  1784.  
  1785. Hello USENIX members!
  1786.  
  1787. This time my report will be very brief.  It is brief because there
  1788. were no big disagreements at the meeting, and because the whole week
  1789. was spent in cleaning up the document for formal ballot.
  1790.  
  1791. This was the last meeting working in functional subgroups, addressing
  1792. discretionary and mandatory access controls (DAC and MAC), audit, and
  1793. privileges.  At the next meeting the group will be divided into people
  1794. helping with the balloting process, doing test assertions, and
  1795. identifying areas that POSIX.6 has not covered.  The ballot document
  1796. should come out sometime after the September mailing (September 10,
  1797. 1991).
  1798.  
  1799. POSIX.6 spent the whole week addressing all the mock ballot comments
  1800. and objections.  A small group of three people, including myself,
  1801. began working on the first draft of the POSIX.6 test methods.  The
  1802. test methods draft will be brought to the next meeting and people from
  1803. the disbanded subgroups will begin creating test methods for the
  1804. functions defined in POSIX.6 document.  It will be a long week!
  1805.  
  1806. So what areas aren't covered in the current POSIX.6 draft?  The three
  1807. major areas that I know are not covered are:
  1808.  
  1809.    - authentication,
  1810.  
  1811.    - security system administration, and
  1812.  
  1813.    - network security.
  1814.  
  1815. There are items in the subgroups which are also not addressed. A
  1816. portable audit format has not been fully defined, and so is not going
  1817. out for ballot.  With mandatory access controls, we decided at this
  1818. meeting to not enforce privileges on an implementation of multi-level
  1819. directories.  Except for some clean-up in Draft 11, discretionary
  1820. access controls remain the same.
  1821.  
  1822. The data type issue still remains across the DAC, MAC, audit, and
  1823. privileges subgroups.  To interoperate between systems, opaque objects
  1824. need to be stored and retrieved without concern for the implementation
  1825. defined formats. An opaque object model also provides consistency
  1826. across the interfaces. POSIX.6 subgroups have defined a number of
  1827. security related objects. We cannot agree on a way to represent these,
  1828. but have determined four possibilities:
  1829.  
  1830.    - A Type 1 object is opaque, and is only valid for use by the
  1831.      process which gets the data, and only for the lifetime of the
  1832.      process.
  1833.  
  1834.    - A Type 2 object is still opaque, but it must be self-contained
  1835.      and persistent.
  1836.  
  1837.    - A Type 3 object is a text string with an undetermined format.
  1838.      MAC labels are represented as Type 3 data types.
  1839.  
  1840.    - A Type 4 object is a text string with a defined format.  Access
  1841.      Control Lists (ACLs) have a Type 4 representation.
  1842.  
  1843. One compromise was that the subgroups would define conversion routines
  1844. for Type 2 and 3 data, which would return an opaque object and the
  1845. length in bytes of the object.
  1846.  
  1847. We were still unable to agree upon a uniform type representation
  1848. across the four subgroups in the July meeting. This issue will likely
  1849. be a hot one in the balloted document.  We will have to wait and see
  1850. what the ballot brings to resolve this.
  1851.  
  1852. Well, that's all folks!  Keep an eye out for the POSIX.6 ballot.
  1853.  
  1854. Volume-Number: Volume 25, Number 16
  1855.  
  1856. From std-unix-request@uunet.uu.net  Fri Sep  6 15:00:35 1991
  1857. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  1858.     (5.61/UUNET-uucp-primary) id AA06149; Fri, 6 Sep 91 15:00:35 -0400
  1859. Received: from kithrup.com by relay1.UU.NET with SMTP 
  1860.     (5.61/UUNET-internet-primary) id AA05606; Fri, 6 Sep 91 15:00:32 -0400
  1861. Newsgroups: comp.std.unix
  1862. From: Peter Collinson <pc@hillside.co.uk>
  1863. Subject: Standards Update, POSIX.12: Protocol Independent Interfaces
  1864. Message-Id: <1991Sep6.185045.9512@uunet.uu.net>
  1865. Originator: sef@uunet.UU.NET
  1866. Sender: UseNet News <usenet@uunet.uu.net>
  1867. Nntp-Posting-Host: uunet.uu.net
  1868. X-Submissions: std-unix@uunet.uu.net
  1869. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1870. Date: Thu, 5 Sep 1991 08:53:29 GMT
  1871. Reply-To: std-unix@uunet.uu.net
  1872. To: std-unix@uunet.uu.net
  1873.  
  1874. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1875.  
  1876. USENIX Standards Watchdog Committee
  1877. Stephen R. Walli <stephe@usenix.org>, Report Editor
  1878. POSIX.12: Protocol Independent Interfaces
  1879.  
  1880.  
  1881. Tim Kirby <trk@cray.com> reports on the July 8-12, 1991 meeting in
  1882. Santa Clara, CA:
  1883.  
  1884. POSIX.12 is developing a set of protocol independent networking
  1885. interfaces.  There are no major changes in direction in the group's
  1886. direction this meeting.  Two interfaces are proposed in language
  1887. independent form - the simple network interface (SNI) and the detailed
  1888. network interface (DNI). SNI is a proposal drawn from several sources,
  1889. with no existing (de-facto) standard. DNI, however, is seen as a
  1890. single language independent specification to which there are two valid
  1891. C language bindings, one for BSD- style sockets and one for the X/Open
  1892. Transport Interface (XTI).
  1893.  
  1894. The group once again reviewed the proposed changes to XTI option
  1895. management from Gerhard Kieselman, following input from X/Open during
  1896. the intervening three months.
  1897.  
  1898. A significant amount of time was spent in liaison with the Transaction
  1899. Processing (POSIX.11) and Real-Time (POSIX.4) working groups as a
  1900. result of the proposal from the last meeting to include their
  1901. requirements in the POSIX.12 interface. POSIX.4 requirements are a
  1902. direct result of ballot objections to the IPC interface proposed in
  1903. their current draft. Given the announced intention of POSIX.4 to
  1904. include a ``simple'' IPC interface regardless of the POSIX.12 efforts,
  1905. there is some concern within our group that there are no advantages to
  1906. the proposed POSIX.12 changes.
  1907.  
  1908. Work between the meetings continues on language independent versions
  1909. of the interfaces, and the test methods without which the document may
  1910. not become a standard.
  1911.  
  1912. A review of the test method requirements revealed a significantly
  1913. larger amount of work than had originally been anticipated. This has
  1914. resulted in a change to the test method schedule. The mock ballot of
  1915. the POSIX.12 draft is not expected now before the second quarter of
  1916. 1992, and the first real ballot not before the fourth quarter of 1992.
  1917.  
  1918. Volume-Number: Volume 25, Number 17
  1919.  
  1920. From std-unix-request@uunet.uu.net  Fri Sep  6 15:00:40 1991
  1921. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  1922.     (5.61/UUNET-uucp-primary) id AA06181; Fri, 6 Sep 91 15:00:40 -0400
  1923. Received: from kithrup.com by relay1.UU.NET with SMTP 
  1924.     (5.61/UUNET-internet-primary) id AA05624; Fri, 6 Sep 91 15:00:36 -0400
  1925. Newsgroups: comp.std.unix
  1926. From: Peter Collinson <pc@hillside.co.uk>
  1927. Subject: Standards Update, POSIX.17 - Directory Services API
  1928. Message-Id: <1991Sep6.185135.9669@uunet.uu.net>
  1929. Originator: sef@uunet.UU.NET
  1930. Sender: UseNet News <usenet@uunet.uu.net>
  1931. Nntp-Posting-Host: uunet.uu.net
  1932. X-Submissions: std-unix@uunet.uu.net
  1933. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1934. Date: Thu, 5 Sep 1991 08:53:29 GMT
  1935. Reply-To: std-unix@uunet.uu.net
  1936. To: std-unix@uunet.uu.net
  1937.  
  1938. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1939.  
  1940. USENIX Standards Watchdog Committee
  1941. Stephen R. Walli <stephe@usenix.org>, Report Editor
  1942. Report on POSIX.17 - Directory Services API
  1943.  
  1944.  
  1945. Mark Hazzard <markh@rsvl.unisys.com> reports on the meeting in Santa
  1946. Clara, California:
  1947.  
  1948. Summary
  1949.  
  1950. POSIX.17 made significant progress towards completing another draft in
  1951. Santa Clara.  The group is on track to mock ballot Draft 2.0 of the
  1952. Directory Services API by the end of August.  Key areas of progress
  1953. were:
  1954.  
  1955.    - test methods,
  1956.  
  1957.    - language independence specification (LIS),
  1958.  
  1959.    - Model text in Section 3,
  1960.  
  1961.    - ds_gethostbyname() example,
  1962.  
  1963.    - preparation for mock ballot.
  1964.  
  1965. Introduction
  1966.  
  1967. The POSIX.17 group is generating a user to directory API, e.g. an API
  1968. to an X.500 Directory User Agent (DUA).  We are using XAPIA - X/Open's
  1969. XDS specification as a basis for work. The X/Open Directory Services
  1970. API (XDS) is an object oriented interface and requires a companion
  1971. specification, X/Open's Object Management API (XOM), for managing the
  1972. OSI objects as they pass through the directory API.
  1973.  
  1974. XOM is a stand-alone specification with general applicability beyond
  1975. the directory services API.  It will be used by IEEE 1224.1 (X.400
  1976. API) and possibly other POSIX groups.  It is being standardized by
  1977. IEEE 1224.
  1978.  
  1979. Status
  1980.  
  1981. Commitment within the group remains strong, with all Chicago attendees
  1982. returning to Santa Clara, and completing homework assignments.  We are
  1983. committed to mock balloting our document between meeting cycles and
  1984. have planned a special mailing for the end of August, (paid for by
  1985. X/Open - Thanks!).
  1986.  
  1987. Once again, considerable time was spent examining POSIX.12 (Protocol
  1988. Independent Interfaces) requirements for directory services. One of
  1989. the requirements is a mechanism to protect existing applications from
  1990. changes in how directory services are offered.  We had decided that
  1991. this was technically beyond the scope of our work, but that we would
  1992. address this by providing a non-normative annex with coding examples,
  1993. showing how it could be done.
  1994.  
  1995. The first example is a new function, ds_gethostbyname(), which could
  1996. be added to the existing practice API (BSD's gethostbyname()
  1997. function).  With it (or something similar) existing applications
  1998. wouldn't need to be modified to work in a POSIX environment.
  1999.  
  2000. Another POSIX.12 requirement was that the underlying directory service
  2001. provider be able to interoperate/co-exist with existing practice
  2002. directory services (e.g. the Internet DNS).  On the surface, impact to
  2003. the API itself is minimal, requiring (at most) the use of an existing
  2004. parameter which would allow the application to specify which (of many)
  2005. services it wanted to use.
  2006.  
  2007. POSIX.17 and P1224 (XOM API) met in joint session to review the object
  2008. management specification.  Many corrections were made, and a new draft
  2009. will be released in the first half of August (in time for our Mock
  2010. ballot).
  2011.  
  2012. Mock Ballot
  2013.  
  2014. There were many homework assignments this time to get the mock ballot
  2015. out between meetings.  Significant progress was made towards producing
  2016. a draft suitable for mock ballot.  The technical editor completed his
  2017. assignment to provide 25% of the LIS text.  An estimated 25% of the
  2018. test assertions were completed as well.  Our plan is to go to mock
  2019. ballot with this level of completeness in order to obtain feedback
  2020. before we proceed further.
  2021.  
  2022. We plan to send it out before the end of August, so we'll be able to
  2023. process the feedback at our next meeting.  Hopefully, we'll get
  2024. feedback on our LIS and test assertion work The comments will help us
  2025. determine our future direction and better estimate our completion date.
  2026.  
  2027. In Closing ...
  2028.  
  2029. The group made good solid progress in Santa Clara readying the
  2030. document for mock ballot.  We seem to uncover more requirements with
  2031. each meeting but somehow we're managing to move forward.  POSIX.17
  2032. will be mock balloted incomplete, needing more work on LIS, test
  2033. methods and a few more examples.
  2034.  
  2035. The group will meet in October to process the input from our mock
  2036. ballot, continue working on LIS and test methods, and determine where
  2037. we go from there.  As usual, there's a lot of work to do.
  2038.  
  2039. Volume-Number: Volume 25, Number 18
  2040.  
  2041. From std-unix-request@uunet.uu.net  Fri Sep  6 15:00:44 1991
  2042. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2043.     (5.61/UUNET-uucp-primary) id AA06206; Fri, 6 Sep 91 15:00:44 -0400
  2044. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2045.     (5.61/UUNET-internet-primary) id AA05642; Fri, 6 Sep 91 15:00:41 -0400
  2046. Newsgroups: comp.std.unix
  2047. From: Peter Collinson <pc@hillside.co.uk>
  2048. Subject: Standards Update, P1224: X.400 API
  2049. Message-Id: <1991Sep6.185236.9769@uunet.uu.net>
  2050. Originator: sef@uunet.UU.NET
  2051. Sender: UseNet News <usenet@uunet.uu.net>
  2052. Nntp-Posting-Host: uunet.uu.net
  2053. X-Submissions: std-unix@uunet.uu.net
  2054. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  2055. Date: Thu, 5 Sep 1991 08:53:29 GMT
  2056. Reply-To: std-unix@uunet.uu.net
  2057. To: std-unix@uunet.uu.net
  2058.  
  2059. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  2060.  
  2061. USENIX Standards Watchdog Committee
  2062. Stephen R. Walli <stephe@usenix.org>, Report Editor
  2063. P1224: X.400 API
  2064.  
  2065.  
  2066. Steve Trus <trus@osi.ncsl.nist.gov> reports on the July 8-12, 1991
  2067. meeting in Santa Clara, CA:
  2068.  
  2069. Summary
  2070.  
  2071. P1224 is producing two documents for standardization - the X.400 API
  2072. and the X/Open Object Management API (XOM). At Santa Clara, the group
  2073. continued work on the modifications required to the base documents.
  2074. Specifically the group:
  2075.  
  2076.    - reviewed the first draft of the Object Management API,
  2077.  
  2078.    - worked on test methods,
  2079.  
  2080.    - worked on IEEE balloting plans for P1224.
  2081.  
  2082. The IEEE Standards Board has approved the Project Authorization
  2083. Requests (PARs) for P1224 (OSI Object Management API) and P1224.1
  2084. (X.400 API).
  2085.  
  2086. Report
  2087.  
  2088. The Santa Clara meeting was generally productive for the P1224 working
  2089. group, and we are well under way to producing our draft documents for
  2090. standardization. Progress wasn't what it could have been due to
  2091. minimal participation by the X.400 API Association.
  2092.  
  2093. Review of Object Management Draft
  2094.  
  2095. The first draft of the Object Management API was distributed to the
  2096. P1224 working group before the meeting.  The group spent much of the
  2097. week reviewing the API.  The POSIX.17 (Directory Services) group
  2098. joined the review for one day.  Numerous changes were made to the
  2099. document.  When the changes have been incorporated into the document,
  2100. it will again be sent out in the P1224 mailing.
  2101.  
  2102. Test Methods
  2103.  
  2104. Tony Cincotta, a test methods expert from NIST, spent much of the week
  2105. reviewing the Object Management draft and test methods already
  2106. developed.  Tony provided many suggestions for improving the test
  2107. methods developed thus far.
  2108.  
  2109. It has become apparent that the development effort required to build
  2110. test methods for the X.400 and Object Management APIs could delay the
  2111. completion of balloting of the APIs for years.  To resolve this
  2112. problem X/Open is considering funding a contractor to develop the test
  2113. methods for these documents.  This issue should be resolved by the next
  2114. meeting.  Additionally, Tony recommended that he train the X/Open
  2115. contractor for the development of the test methods section of the
  2116. documents.
  2117.  
  2118. Balloting Plans
  2119.  
  2120. Our current plans are to ballot the Object Management API after the
  2121. October meeting, and to ballot the X.400 API after the January
  2122. meeting.  These ballots would not include the test methods; Balloting
  2123. cannot complete until the test methods are complete.
  2124.  
  2125. Currently we are developing the list of people who will be invited to
  2126. ballot these documents.  This list includes members of the IEEE TCOS,
  2127. the X.400 API Association, and X/Open Limited.  Invitations to join
  2128. the balloting group will be sent out at the end of August by the
  2129. IEEE.  To be included in the balloting group, a person must return the
  2130. invitation to the IEEE by October 10, 1991.
  2131.  
  2132. Iain Devine, the P1224 technical editor will be the ballot resolution
  2133. reviewer, assisted in technical matters by Enzo Signore.
  2134.  
  2135. In Closing
  2136.  
  2137. P1224 continues to make good progress. The primary focus of the
  2138. Parsippany meeting will be to continue the review of our draft
  2139. documents, work on our test methods, and prepare for balloting.
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164. Volume-Number: Volume 25, Number 19
  2165.  
  2166. From std-unix-request@uunet.uu.net  Fri Sep  6 15:00:51 1991
  2167. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2168.     (5.61/UUNET-uucp-primary) id AA06250; Fri, 6 Sep 91 15:00:51 -0400
  2169. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2170.     (5.61/UUNET-internet-primary) id AA05650; Fri, 6 Sep 91 15:00:47 -0400
  2171. Newsgroups: comp.std.unix
  2172. From: Peter Collinson <pc@hillside.co.uk>
  2173. Subject: Standards Update, ANSI and the X3 Committees
  2174. Message-Id: <1991Sep6.185321.9870@uunet.uu.net>
  2175. Originator: sef@uunet.UU.NET
  2176. Sender: UseNet News <usenet@uunet.uu.net>
  2177. Nntp-Posting-Host: uunet.uu.net
  2178. X-Submissions: std-unix@uunet.uu.net
  2179. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  2180. Date: Thu, 5 Sep 1991 08:53:29 GMT
  2181. Reply-To: std-unix@uunet.uu.net
  2182. To: std-unix@uunet.uu.net
  2183.  
  2184. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  2185.  
  2186. USENIX Standards Watchdog Committee
  2187. Stephen R. Walli <stephe@usenix.org>, Report Editor
  2188. Report on ANSI and the X3 Committees
  2189.  
  2190.  
  2191. John Hill <hill@prc.unisys.com> discusses ANSI and the X3 committee:
  2192.  
  2193. Over the past few years information technology standards have become
  2194. more important in the industry. One of the most prevalent areas for
  2195. standardization is operating systems and allied services.  This
  2196. article discusses the largest formal standards development
  2197. organization for information technology in the USA, X3, and its
  2198. relationship to ANSI.
  2199.  
  2200. A brief background is useful in understanding how the USA develops
  2201. standards.  The premier standards body is the American National
  2202. Standards Institute (ANSI).  Its four main functions that are of
  2203. interest here are:
  2204.  
  2205.    - membership in the International Standards Organization (ISO) and
  2206.      the International Electrotechnical Commission (IEC), the
  2207.      worldwide standards bodies,
  2208.  
  2209.    - accreditation of organizations to develop voluntary U.S.
  2210.      standards,
  2211.  
  2212.    - publication of U.S. national standards,
  2213.  
  2214.    - oversight of the standards development process to ensure due
  2215.      process and fairness.
  2216.  
  2217. That's right, ANSI does not develop standards; ANSI accredits other
  2218. organizations to develop standards.
  2219.  
  2220. Standards are developed in one of three ways:
  2221.  
  2222.    - by professional and trade organizations (e.g.  Institute of
  2223.      Electrical and Electronic Engineers, IEEE, an organization which
  2224.      is involved in more than the development of standards),
  2225.  
  2226.    - by accredited committee (X3),
  2227.  
  2228.    - by canvass (e.g.  Ada Joint Program Office, AJPO).  The canvass
  2229.      method is intended for mature and non- controversial standards
  2230.      processing.
  2231.  
  2232. In a nutshell, ANSI accredits the standards development procedures of
  2233. individual groups within some designated, but very broad scope, and
  2234. according to one of the three ways.
  2235.  
  2236. X3, while not a part of ANSI itself, is an example of a committee that
  2237. ANSI has accredited to develop U.S. national standards.
  2238.  
  2239. X3 was established in 1961.  Since its inception, the Computer and
  2240. Business Equipment Manufacturers Association (CBEMA) has functioned as
  2241. the secretariat.  X3 has about 850 projects, 200 standards, and some
  2242. 3000 volunteers.
  2243.  
  2244. The purpose of X3 is voluntary standardization in the areas of
  2245. computers, information processing, and peripheral equipment and
  2246. devices.  This scope of activity includes standardization of
  2247. subsystems in order to provide for hardware interoperability and
  2248. software portability.  As a result, many of the fundamental standards
  2249. of the computer industry have been developed by X3.
  2250.  
  2251. The true, nuts-and-bolts work of X3 is done by its subgroups.  There
  2252. are two types of subgroups, advisory and technical.  The three
  2253. advisory committees are collectively empowered to ensure that the
  2254. process of standards development is under control.  These advisory
  2255. committees are chartered to
  2256.  
  2257.    - advise the secretariat in administrative activities,
  2258.  
  2259.    - develop the X3 strategic plan,
  2260.  
  2261.    - manage the technical activities of X3.
  2262.  
  2263. The forty technical committees of X3 actually develop the standards.
  2264. There are committees for:
  2265.  
  2266.    - media (both magnetic and optical),
  2267.  
  2268.    - operating system services (database and graphics),
  2269.  
  2270.    - programming languages (Fortran, C, COBOL),
  2271.  
  2272.    - codes and character sets,
  2273.  
  2274.    - vocabulary,
  2275.  
  2276.    - data communications (OSI),
  2277.  
  2278.    - systems technology (SCSI, security),
  2279.  
  2280.    - and office systems (ODA/ODIF).
  2281.  
  2282. These technical committees frequently act as the U.S.  technical
  2283. advisory groups (TAGs) for the development of worldwide standards.
  2284.  
  2285. Worldwide standards are a major area of activity for X3.  Over the
  2286. past ten years, the X3 member organizations have expended more
  2287. resources for development of the base OSI standards than on any other
  2288. single functional area of standardization.  These 175 largely
  2289. anticipatory standards were developed for the most part in the
  2290. international arena.  The US delegates from the X3 technical
  2291. committees actively worked in SC21, the ISO/IEC subcommittee
  2292. responsible for the OSI standards, to ensure that US interests were
  2293. met in the worldwide standards being developed.
  2294.  
  2295. Membership in X3 is open to anybody affected by its standards.  Its
  2296. current members, of about 41, include some of the most notable
  2297. producers, users, and general interest groups involved in the
  2298. information technology industry.  Members have to participate in order
  2299. to remain in good standing.
  2300.  
  2301. All members pay annual service fees to support X3 activities.  The
  2302. larger members pay more than the smaller.  An additional fee is
  2303. charged for participating in the subgroups.
  2304.  
  2305. If you have further questions concerning X3, you should contact the X3
  2306. secretariat (202-737-8888).  These helpful people can send you several
  2307. standing documents which expand upon this discussion.
  2308.  
  2309. Volume-Number: Volume 25, Number 20
  2310.  
  2311. From std-unix-request@uunet.uu.net  Fri Sep  6 15:00:57 1991
  2312. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2313.     (5.61/UUNET-uucp-primary) id AA06314; Fri, 6 Sep 91 15:00:57 -0400
  2314. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2315.     (5.61/UUNET-internet-primary) id AA05669; Fri, 6 Sep 91 15:00:53 -0400
  2316. Newsgroups: comp.std.unix
  2317. From: Peter Collinson <pc@hillside.co.uk>
  2318. Subject: Standards Update, ANSI X3B11.1: WORM File Systems
  2319. Message-Id: <1991Sep6.185405.9950@uunet.uu.net>
  2320. Originator: sef@uunet.UU.NET
  2321. Sender: UseNet News <usenet@uunet.uu.net>
  2322. Nntp-Posting-Host: uunet.uu.net
  2323. X-Submissions: std-unix@uunet.uu.net
  2324. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  2325. Date: Thu, 5 Sep 1991 08:53:29 GMT
  2326. Reply-To: std-unix@uunet.uu.net
  2327. To: std-unix@uunet.uu.net
  2328.  
  2329. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  2330.  
  2331. USENIX Standards Watchdog Committee
  2332. Stephen R. Walli <stephe@usenix.org>, Report Editor
  2333. Report on ANSI X3B11.1: WORM File Systems
  2334.  
  2335. Andrew Hume <andrew@research.att.com> reports on the July 17-19, 1990.
  2336. meeting in Murray Hill, NJ:
  2337.  
  2338. Introduction
  2339.  
  2340. X3B11.1 is working on a standard for file interchange on random
  2341. access, write-once media: a portable file system for WORMs.  First let
  2342. me apologize for tardy snitching (again); my excuse this time is that
  2343. I am now technical editor of the working paper.  I shall describe the
  2344. results of the last two meetings, April (North Falmouth, RI) and July
  2345. (Colorado Springs, CO), as a summary of where we are now.  In brief,
  2346. the current draft seems fairly stable and we expect to conduct a
  2347. letter ballot after the next (October) meeting.  There is also
  2348. considerable international activity.  I also discuss our method of
  2349. electronically distributing our drafts.
  2350.  
  2351. International Activity
  2352.  
  2353. I am still a novice at international standards stuff so take the
  2354. following with a larger than normal grain of salt.
  2355.  
  2356. The appropriate ISO committee, SC15, has been reconstituted and had
  2357. its first meeting in several years in July in Tokyo.  The meeting was
  2358. mostly administrative in nature but there was a proposal for a volume
  2359. structure standard submitted by Fujitsu.  The motivation for this is
  2360. that Fujitsu intends to introduce 3.5in media and drives that can be
  2361. partially embossed (like CD-ROM) and partially WORM or rewriteable.
  2362. Understandably, they would like to have a standard volume labelling
  2363. scheme to enhance interchange.  They figure that file system layout
  2364. standards can come along later but we need the volume labelling scheme
  2365. Real Soon Now.
  2366.  
  2367. A common way for an ISO committee to do work is invite some
  2368. recognized, accredited committee to submit a proposal and then vote on
  2369. it.  In particular, some committee with relatively little
  2370. administrative procedure.  This means ECMA, (European Computer
  2371. Manufacturers Association,) and not ANSI.
  2372.  
  2373. Luckily, the relevant ECMA committee, TC15, has just been
  2374. reconstituted with its next meeting in Geneva in early September.
  2375. Ostensibly, TC15's first job is to consider and bless the work of the
  2376. Frankfurt group, which has been working on an extension of ISO 9660
  2377. (CD-ROM) to handle CD-WO media.  The very next thing will probably be
  2378. a volume structure and file system standard, based on our (X3B11.1)
  2379. work.  (This has required significant changes to our working paper but
  2380. more on that below.)
  2381.  
  2382. There is also a dark side to TC15.  ECMA apparently has a hidden
  2383. agenda for TC15 that includes the development of a general storage
  2384. architecture.  This is the storage equivalent of the OSI networking
  2385. model with its 7 layers.  The first guess at the layers are:
  2386.  
  2387.    - physical layer,
  2388.  
  2389.    - recording layer,
  2390.  
  2391.    - formatting layer,
  2392.  
  2393.    - volume structure layer,
  2394.  
  2395.    - object management/file system layer (e.g.  ISO 9660),
  2396.  
  2397.    - file structure layer (e.g.  ISAM),
  2398.  
  2399.    - application layer.
  2400.  
  2401. Why does the international activity matter?  (That this question needs
  2402. to be raised is comment enough for our industry.) The goal of the
  2403. standards game is to have a technically sound standard adopted as soon
  2404. as possible.  Assume for now that the X3B11.1 draft is technically
  2405. sound.  How do we get a standard?  One way is to go through ANSI
  2406. procedure, like the C standard did.  Assuming no problems, hitches,
  2407. objections and foulups, we could have an ANSI standard within two
  2408. years.  And then we would have to work within the ECMA/ISO committees
  2409. to ensure that they adopt a technically equivalent standard (and thus
  2410. avoid the prospect of an ANSI standard that conflicts with an ISO
  2411. standard).  The other way is to work within the ECMA committee and
  2412. produce an ECMA standard which then, given the heavy European presence
  2413. in ISO, would fairly automatically become an ISO standard.
  2414. Astonishingly enough, it seems likely that we could get an ISO
  2415. standard 6-9 months sooner than we could get an ANSI standard!  (Yes,
  2416. sadly, this means that often the quickest way to get an ANSI standard
  2417. is to do the ISO standard via ECMA and have ANSI adopt the ISO
  2418. standard.)
  2419.  
  2420. The Current Draft Working Paper
  2421.  
  2422. In order to facilitate adoption of the working paper by TC15, we have
  2423. made several structural changes to the working paper.  It is now in
  2424. four parts.  The first part is introductory.  It specifies the scope
  2425. and defines terms.  The second part describes a volume labelling
  2426. scheme. It specifies how volumes are labelled, how partitions are
  2427. defined, how volumes are grouped into volume sets and a bad sector
  2428. replacement scheme.  The third part describes a file system layout
  2429. that is independent of the details of part two.  The fourth part is a
  2430. short section detailing the (very few) changes needed to make part
  2431. three suitable for rewriteable media.  This restructuring was a
  2432. significant labour, although it involved negligible technical change.
  2433.  
  2434. Volume/Partition Structure
  2435.  
  2436. This part is probably the most changed since my last report.  It has
  2437. become much simplified and made independent of the file system
  2438. specification.  It handles space allocation for the volume, recording
  2439. of volume and partition descriptors, definitions of partitions, and
  2440. bad-block mapping.  Provision has been made for specifying the type of
  2441. file system in a partition.  Some of these will be predefined, such as
  2442. ISO 9660 and 9223.  Others can be registered, such as proprietary
  2443. formats like SGI's EFS file system.
  2444.  
  2445. File System
  2446.  
  2447. This has been fairly stable although many details have been tweaked.
  2448. The space management within a partition and integrity controls
  2449. (essentially the dirty bit for a partition) have been moved out of the
  2450. volume description and into the file system description as it was
  2451. deemed too complicated to demand everyone support it.
  2452.  
  2453. Technical Editing
  2454.  
  2455. Because of the previous technical editor's health problems, I was
  2456. appointed technical editor.  This has been quite entertaining for me;
  2457. I have never been involved in such a complicated document production
  2458. (and all of it my own doing!).  A single processing pass produces a
  2459. table of contents, an index, automatically generated data structure
  2460. layouts, ANSI C declarations of all the data structures, an ANSI C
  2461. program that tests that the declarations are correct on your system
  2462. (the fields have the correct offsets and sizes), and last but not
  2463. least, the troff output.
  2464.  
  2465. Each pass runs at least 8 awks, 4 sorts, 10 seds, 2 uniqs, spell, tbl,
  2466. eqn, troff and Kernighan and Van Wyck's balancing page makeup
  2467. backend.  It takes 6 minutes clock time on a 80 mips SGI
  2468. multiprocessor.  (This may not be a game for PDP-11s anymore but at
  2469. least I know what to do with all those cycles!) We iterate until
  2470. nothing changed since the last pass.
  2471.  
  2472. A more noteworthy accomplishment (than writing more awk scripts than
  2473. you can point an editor at) is that the current draft of the working
  2474. paper is available online by both ftp and email (netlib).  You can get
  2475. either of two forms:  PostScript and the troff input (minus all the
  2476. formatting directives).  This way you can print your standard and grep
  2477. it too.  The files are x3b11.1-wp.ps and x3b11.1-wp.text and are in
  2478. the directory research/memo.  For ftp, login as netlib on
  2479. research.att.com.
  2480.  
  2481. Finale
  2482.  
  2483. What can, or should, you do?  Well, the worst case is that a standard
  2484. based closely on the current draft will become an ISO standard for
  2485. interchange for all random access disk drives (optical and magnetic).
  2486. You not only would have to support it; you may have to boot off such a
  2487. disk.
  2488.  
  2489. If you wish to comment on the draft, the best time would probably be
  2490. in early November during the letter ballot.  (You of course can't be
  2491. in the letter ballot because you aren't a member but you could give
  2492. your comments to me.)
  2493.  
  2494. If you would like more details on X3B11.1's work, you should contact
  2495. either me (andrew@research.att.com, 908-582-6262) or the committee
  2496. chair, Ed Beshore.  I think the two most useful documents are the
  2497. current draft of the working paper (about 60 pages) and a programmer's
  2498. guide to the draft (about 12 pages written by me).  I will send you
  2499. copies of the latter document; requests for other documents or more
  2500. general inquiries about X3B11.1's work would be best sent to Ed
  2501. Beshore.
  2502.  
  2503. The next meeting is in Merrimack, NH on October 21-25, 1991.  Anyone
  2504. interested in attending should contact either me or Ed Beshore
  2505. (edb@hpgrla.hp.com).
  2506.  
  2507. Volume-Number: Volume 25, Number 21
  2508.  
  2509. From std-unix-request@uunet.uu.net  Fri Sep  6 15:01:35 1991
  2510. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2511.     (5.61/UUNET-uucp-primary) id AA06609; Fri, 6 Sep 91 15:01:35 -0400
  2512. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2513.     (5.61/UUNET-internet-primary) id AA05796; Fri, 6 Sep 91 15:01:27 -0400
  2514. Newsgroups: comp.std.unix
  2515. From: Peter Collinson <pc@hillside.co.uk>
  2516. Subject: Standards Update, X3J16: C++
  2517. Message-Id: <1991Sep6.185446.10017@uunet.uu.net>
  2518. Originator: sef@uunet.UU.NET
  2519. Sender: UseNet News <usenet@uunet.uu.net>
  2520. Nntp-Posting-Host: uunet.uu.net
  2521. X-Submissions: std-unix@uunet.uu.net
  2522. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  2523. Date: Thu, 5 Sep 1991 08:53:29 GMT
  2524. Reply-To: std-unix@uunet.uu.net
  2525. To: std-unix@uunet.uu.net
  2526.  
  2527. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  2528.  
  2529. USENIX Standards Watchdog Committee
  2530. Stephen R. Walli <stephe@usenix.org>, Report Editor
  2531. Report on X3J16: C++
  2532.  
  2533.  
  2534. Mike Vilot <mjv@objects.mv.com> reports on the June, 1991 meeting in
  2535. Lund, Sweden:
  2536.  
  2537. Current Status
  2538.  
  2539. The ANSI X3J16 committee took a major step towards
  2540. internationalization at its June meeting.  This was the first joint
  2541. meeting between X3J16 and ISO WG21.  WG21 is the ISO C++ working
  2542. group.  X3J16 and WG21 are roughly peer organizations.
  2543.  
  2544. June meeting
  2545.  
  2546. The Lund Institute of Technology hosted the meeting in Sweden.  The
  2547. week's major activities focused on understanding the myriad details of
  2548. producing a single, international C++ language standard.
  2549.  
  2550. The X3J16's sub-groups focus was on the key topics listed in the goals
  2551. statement developed at the March, 1990 meeting.  They worked by
  2552. electronic mail between meetings, and reported their progress.
  2553.  
  2554. International Concerns
  2555. Steve Carter, of Bellcore, presented the major international concerns:
  2556.  
  2557. International cooperation is an explicit goal of X3J16, and the
  2558. committee devoted the entire first day's discussion to international
  2559. concerns.  Most members want to avoid the difficulties encountered
  2560. during the development of the C language standard.
  2561.  
  2562. Much of the work focused on attaining a smooth coordination with WG21
  2563. without losing technical effectiveness.  The committee agreed to
  2564. continue emphasizing informal discussions and informal "straw votes"
  2565. before making formal decisions.  All members of WG21 will be added to
  2566. the email lists, and will receive X3J16 paper mailings.
  2567.  
  2568. On the other side, WG21 voted to hold its technical meetings jointly
  2569. with X3J16.  They appointed Jonathan Shopiro as their editor, which
  2570. means both committees have the same editor.
  2571.  
  2572. X3J16 decided to conduct a letter ballot on the question of converting
  2573. to a Type "I" process.  This means developing an international
  2574. standard, rather than developing a domestic standard followed by an
  2575. international standard (as was the case for the C language).  A straw
  2576. vote indicated most members would vote in favor of the change.
  2577.  
  2578. The committee dissolved the International Concerns working group,
  2579. since it has served its purpose. Steve Carter, serving as Convener of
  2580. WG21, will continue to address international C++ concerns.
  2581.  
  2582. Editorial
  2583. Jonathan Shopiro, of AT&T, presented the Editorial group's work:
  2584.  
  2585. The editorial change that simplified the treatment of names and name
  2586. lookup, merging the concepts that had previously been treated under
  2587. the topics of dominance and name hiding, remained in the document.
  2588.  
  2589. Much of the recent work on the document has been in clarifying or
  2590. defining basic terms. For example, the basic unit of storage is a byte
  2591. In the C standard, it is a character, which confuses the notion of
  2592. what type "char" is supposed to represent, especially in light of
  2593. 8-bit and larger character sets.  The process of resolving the
  2594. definitions of the two base documents continues.  (These are the
  2595. Annotated C++ Reference Manual and the C standard.)
  2596.  
  2597. One minor change to the document format: the size is now suitable for
  2598. A4 paper.
  2599.  
  2600. Formal Syntax
  2601. Reg Charney, of Program Conversions, presented the work of the Formal
  2602. Syntax group:
  2603.  
  2604. The bulk of the discussion concerned the change that renamed most of
  2605. the non-terminals in the grammar.  There are still more proposed
  2606. changes.
  2607.  
  2608. The conflict between the virtues of regularizing the naming versus the
  2609. evils of gratuitous changes resurfaced.  Bjarne Stroustrup made the
  2610. strongest criticism, observing that the changes had been proposed and
  2611. adopted without sufficient principles.  He noted that the lack of such
  2612. principles invited the kind of "random changes" that were presented at
  2613. the June meeting.  He also observed that the changes had not even been
  2614. checked against the C standard's grammar.
  2615.  
  2616. Core Language
  2617. Andy Koenig, of AT&T, presented the Core Language group's work:
  2618.  
  2619. Most of the Core Language discussion centered on name resolution
  2620. issues.  These issues are highlighted by the interactions of nested
  2621. classes, inline friend function definitions, and static class members.
  2622.  
  2623. This work has helped identify ambiguities in the present wording.
  2624. Although there has been progress, open issues remain.  For example,
  2625. defining a friend function in a class causes the name of the friend to
  2626. be made available in an "enclosing" scope.  The cases involving nested
  2627. and local classes still have to be resolved.
  2628.  
  2629. Environment
  2630. John Wilkinson, of Silicon Graphics, presented the work of the
  2631. Environment group:
  2632.  
  2633. Discussion continued on static initialization order for objects in
  2634. different translation units.  The group proposed two new rules
  2635. intended to provide correct initialization that still accommodated
  2636. dynamic linking:
  2637.  
  2638.    - Nonlocal static objects defined in a translation unit must be
  2639.      initialized in the order that the definitions appear in the
  2640.      translation unit.
  2641.  
  2642.    - The nonlocal static objects defined in a translation unit must be
  2643.      initialized before any object or function defined in that unit is
  2644.      used by any other translation unit; the nonlocal objects defined
  2645.      in the translation unit containing main() must be initialized
  2646.      before control enters main().
  2647.  
  2648. Specifying translation limits in the standard was discussed, but
  2649. seemed to generate more heat than light, and nothing was decided.
  2650.  
  2651. Libraries
  2652. Jerry Schwarz, of Lucid, presented the Library group's work:
  2653.  
  2654. There is an evolving proposal for a standard string class, and its
  2655. interaction with internationalization concerns.  The tradeoff involves
  2656. generality (strings of both single- and multi-byte characters) versus
  2657. efficient implementation.  This discussion continues.
  2658.  
  2659. The group also worked on issues of conformance, and describing the
  2660. options available to implementations that choose to extend the
  2661. standard library.  For example, the implementation may provide the
  2662. standard classes by deriving them from base classes not mentioned in
  2663. the standard, or as instances of templates not mentioned in the
  2664. standard.  As another example, an implementation may add members to a
  2665. class definition, with the constraint that private virtual functions
  2666. must be in the implementation name space.
  2667.  
  2668. Work also progressed on standard exceptions.  One line of
  2669. investigation is to use exceptions to clarify those aspects of the
  2670. language that are vague or "undefined." For example, the default
  2671. new_handler could throw a storage_error exception.
  2672.  
  2673. Language Extensions
  2674. Bjarne Stroustrup, of AT&T, presented the work of the Extensions group:
  2675.  
  2676. The group proposed a change that adds digraphs and new keywords as
  2677. synonyms for certain characters.  For example, '{' can be written as
  2678. '<%', '&=' as 'and_eq', and so on.  This allows expression of C++
  2679. programs in character sets that do not include certain of the ASCII
  2680. characters.  It is a proposal Bjarne has been working on with Keld
  2681. Simonsen for over a year, and their work has been coordinated with the
  2682. ISO WG14 (C language).  The committee adopted this proposal.
  2683.  
  2684. The group is working through a long list of proposals for changes to
  2685. the language.  Some of the items are:
  2686.  
  2687.    - adding 8-bit (i.e. international) characters in identifiers;
  2688.  
  2689.    - allowing virtual functions in a derived class to use a more
  2690.      specific return type than the base class' version of the function;
  2691.  
  2692.    - allowing overloading of operator . (dot);
  2693.  
  2694.    - a name space control mechanism.
  2695.  
  2696. The largest issue currently lurking in the Extensions category is the
  2697. addition of support for run-time type information.  There will be much
  2698. discussion on this topic over the next months.
  2699.  
  2700. C Compatibility
  2701. Tom Plum, of Plum-Hall, presented the work of the C Compatibility
  2702. group:
  2703.  
  2704. The group continued its investigation of the vocabulary differences
  2705. between C and C++.  Only a few of the differences have been resolved,
  2706. and Tom plans to meet with Jon Shapiro to decide which terms can be
  2707. incorporated as C++ definitions.
  2708.  
  2709. Next events
  2710.  
  2711. The next three X3J16 1991 meetings (and their hosts) will be:
  2712.  
  2713.    * November 11-15, Austin TX (TI)
  2714.  
  2715.    * March 9-13 (or 16-20) 1992, London, UK (BSI and Zortech)
  2716.  
  2717.    * July 13-17 Toronto Canada (IBM)
  2718.  
  2719. Membership on an X3 committee is open to any individual or
  2720. organization with expertise and material interest in the topic
  2721. addressed by the committee.  The cost for voting or observer
  2722. membership is $250.  Contact the chair or vice chair for details.
  2723.  
  2724. Chair: Dmitry Lenkov
  2725. HP California Language Lab
  2726. 19447 Pruneridge Avenue MS 47 LE
  2727. Cupertino, CA  95014
  2728. (408)447-5279
  2729. FAX (408)447-4924
  2730. email dmitryhpda@hplabs.hp.com
  2731.  
  2732. Vice Chair: William M. Miller
  2733. Glockenspiel, Ltd
  2734. P.O. Box 366
  2735. Sudbury, MA  01776-0003
  2736. (508)443-5779
  2737. email wmm@world.std.com
  2738.  
  2739. Volume-Number: Volume 25, Number 22
  2740.  
  2741. From std-unix-request@uunet.uu.net  Fri Sep  6 15:09:08 1991
  2742. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2743.     (5.61/UUNET-uucp-primary) id AA09869; Fri, 6 Sep 91 15:09:08 -0400
  2744. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2745.     (5.61/UUNET-internet-primary) id AA07878; Fri, 6 Sep 91 15:09:06 -0400
  2746. Newsgroups: comp.std.unix
  2747. From: Henry Spencer <henry@zoo.toronto.edu>
  2748. Subject: Re: Error detection
  2749. Message-Id: <1991Sep6.190155.10397@uunet.uu.net>
  2750. Originator: sef@uunet.UU.NET
  2751. Sender: UseNet News <usenet@uunet.uu.net>
  2752. Nntp-Posting-Host: uunet.uu.net
  2753. X-Submissions: std-unix@uunet.uu.net
  2754. Organization: U of Toronto Zoology
  2755. References: <1991Sep4.201137.13461@uunet.uu.net>
  2756. Date: Thu, 5 Sep 1991 17:45:47 GMT
  2757. Reply-To: std-unix@uunet.uu.net
  2758. To: std-unix@uunet.uu.net
  2759.  
  2760. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  2761.  
  2762. In article <1991Sep4.201137.13461@uunet.uu.net> karl@ima.isc.com (Karl Heuer) writes:
  2763. >A certain vendor's test suite for POSIX compliance expects that code like
  2764. >    fp=fopen(fname, "w"); c=getc(fp); /* attempted read from output stream */
  2765. >must cause a run-time error (EBADF, I think).  I claim that the behavior is
  2766. >undefined.  Who's right?
  2767.  
  2768. ANSI C (to which POSIX mostly defers) says that getc() is the same as fgetc()
  2769. except possibly implemented as a macro, and the fgetc() spec requires that
  2770. the argument be a pointer to an input stream.  Furthermore, section 4.1.6
  2771. of the standard is most explicit that invalid argument values given to
  2772. library functions yield undefined behavior.
  2773. -- 
  2774. Any program that calls itself an OS     | Henry Spencer @ U of Toronto Zoology
  2775. (e.g. "MSDOS") isn't one. -Geoff Collyer|  henry@zoo.toronto.edu  utzoo!henry
  2776.  
  2777. Volume-Number: Volume 25, Number 23
  2778.  
  2779. From std-unix-request@uunet.uu.net  Fri Sep  6 15:09:11 1991
  2780. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2781.     (5.61/UUNET-uucp-primary) id AA09876; Fri, 6 Sep 91 15:09:11 -0400
  2782. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2783.     (5.61/UUNET-internet-primary) id AB07898; Fri, 6 Sep 91 15:09:08 -0400
  2784. Newsgroups: comp.std.unix
  2785. From: Doug Gwyn <gwyn@smoke.brl.mil>
  2786. Subject: Re: Error detection
  2787. Message-Id: <1991Sep6.190244.10495@uunet.uu.net>
  2788. Originator: sef@uunet.UU.NET
  2789. Sender: UseNet News <usenet@uunet.uu.net>
  2790. Nntp-Posting-Host: uunet.uu.net
  2791. X-Submissions: std-unix@uunet.uu.net
  2792. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  2793. References: <1991Sep4.201137.13461@uunet.uu.net>
  2794. Date: Thu, 5 Sep 1991 21:59:53 GMT
  2795. Reply-To: std-unix@uunet.uu.net
  2796. To: std-unix@uunet.uu.net
  2797.  
  2798. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  2799.  
  2800. In article <1991Sep4.201137.13461@uunet.uu.net> karl@ima.isc.com (Karl Heuer) writes:
  2801. >A certain vendor's test suite for POSIX compliance expects that code like
  2802. >    fp=fopen(fname, "w"); c=getc(fp); /* attempted read from output stream */
  2803. >must cause a run-time error (EBADF, I think).  I claim that the behavior is
  2804. >undefined.  Who's right?
  2805.  
  2806. You are.  There is a specification for what errno must be set to IF an
  2807. error is detected, but no requirement that this particular error be
  2808. detected.  There was certainly no intention of adding overhead to the
  2809. traditional macro implementation of getc().
  2810.  
  2811. >My own preference, of course, is that the test suite be ruled incorrect.
  2812.  
  2813. Well, it clearly is incorrect, but then that is not the first time the
  2814. existing test suites have had serious errors.  I don't know how you go
  2815. about getting them fixed.
  2816.  
  2817.  
  2818. Volume-Number: Volume 25, Number 24
  2819.  
  2820. From std-unix-request@uunet.uu.net  Fri Sep  6 15:09:16 1991
  2821. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2822.     (5.61/UUNET-uucp-primary) id AA09897; Fri, 6 Sep 91 15:09:16 -0400
  2823. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2824.     (5.61/UUNET-internet-primary) id AA07934; Fri, 6 Sep 91 15:09:13 -0400
  2825. Newsgroups: comp.std.unix
  2826. From: Fred Zlotnick <fred@mindcraft.com>
  2827. Subject: Re: Error detection
  2828. Message-Id: <1991Sep6.190406.10650@uunet.uu.net>
  2829. Originator: sef@uunet.UU.NET
  2830. Sender: UseNet News <usenet@uunet.uu.net>
  2831. Nntp-Posting-Host: uunet.uu.net
  2832. X-Submissions: std-unix@uunet.uu.net
  2833. Organization: Mindcraft, Inc.
  2834. References: <1991Sep4.201137.13461@uunet.uu.net>
  2835. Date: Thu, 5 Sep 1991 17:24:32 GMT
  2836. Reply-To: std-unix@uunet.uu.net
  2837. To: std-unix@uunet.uu.net
  2838.  
  2839. Submitted-by: fred@mindcraft.com (Fred Zlotnick)
  2840.  
  2841. In article <1991Sep4.201137.13461@uunet.uu.net> karl@ima.isc.com (Karl Heuer) writes:
  2842. >Submitted-by: karl@ima.isc.com (Karl Heuer)
  2843. >
  2844. >A certain vendor's test suite for POSIX compliance expects that code like
  2845. >    fp=fopen(fname, "w"); c=getc(fp); /* attempted read from output stream */
  2846. >must cause a run-time error (EBADF, I think).  I claim that the behavior is
  2847. >undefined.  Who's right?
  2848.  
  2849. A definitive answer should come from the POSIX.1 interpretations committee.
  2850. However, the most recent (Draft 12) version of 1003.3.1 (Test Methods for
  2851. Conformance to POSIX.1) has the following assertion for fgetc():
  2852.  
  2853.     When the stream pointer argument addresses a file descriptor
  2854.     that is not open for reading, then a call to fgetc() returns
  2855.     a value of EOF and sets errno to [EBADF].
  2856.  
  2857. The assertion is based on section 8.2.3.11 of POSIX.1-1990.  (The square
  2858. brackets around EBADF are part of 1003.3's assertion notation.) This is
  2859. assertion 6 for fgetc(), in section 11.11.4 of the draft.  So it seems
  2860. that at least this committee believes that this behavior is required
  2861. (assuming, of course that fopen(fname, "w") opens the underlying file
  2862. descriptor for writing only.)  Remember, this is not 1003.1, but 1003.3.
  2863. Fred Zlotnick                       |    #include <std.disclaimer>
  2864. fred@mindcraft.com                  |    #include <brilliant.quote>
  2865. ...!{uupsi,ames}!mindcrf!fred |
  2866.  
  2867.  
  2868. Volume-Number: Volume 25, Number 25
  2869.  
  2870. From std-unix-request@uunet.uu.net  Fri Sep  6 19:25:50 1991
  2871. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2872.     (5.61/UUNET-uucp-primary) id AA01733; Fri, 6 Sep 91 19:25:50 -0400
  2873. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2874.     (5.61/UUNET-internet-primary) id AA10841; Fri, 6 Sep 91 19:25:47 -0400
  2875. Newsgroups: comp.std.unix
  2876. From: Doug Gwyn <gwyn@smoke.brl.mil>
  2877. Subject: Re: Error detection
  2878. Message-Id: <1991Sep6.232058.25526@uunet.uu.net>
  2879. Originator: sef@uunet.UU.NET
  2880. Sender: UseNet News <usenet@uunet.uu.net>
  2881. Nntp-Posting-Host: uunet.uu.net
  2882. X-Submissions: std-unix@uunet.uu.net
  2883. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  2884. References: <1991Sep4.201137.13461@uunet.uu.net> <1991Sep6.190155.10397@uunet.uu.net>
  2885. Date: Fri, 6 Sep 1991 23:03:35 GMT
  2886. Reply-To: std-unix@uunet.uu.net
  2887. To: std-unix@uunet.uu.net
  2888.  
  2889. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  2890.  
  2891. In article <1991Sep6.190155.10397@uunet.uu.net> henry@zoo.toronto.edu (Henry Spencer) writes:
  2892. >ANSI C (to which POSIX mostly defers) says that getc() is the same as fgetc()
  2893. >except possibly implemented as a macro, and the fgetc() spec requires that
  2894. >the argument be a pointer to an input stream.  Furthermore, section 4.1.6
  2895. >of the standard is most explicit that invalid argument values given to
  2896. >library functions yield undefined behavior.
  2897.  
  2898. Undefined in the context of the C standard, not necessarily for POSIX.
  2899. POSIX and other standards can impose additional requirements, and in
  2900. fact for the Standard C I/O functions POSIX.1 does so, although only a
  2901. few of them attempt to give standard meanings to what are called
  2902. undefined or implementation-defined behavior in the C standard.
  2903.  
  2904. On the other hand, POSIX etc. should NOT try to give standard semantics
  2905. to usage that violates C standard syntax rules or constraints, because
  2906. those require diagnostics and there are alternative ways to add
  2907. extensions that would not make simultaneous conformance to multiple
  2908. standards impossible (or impractical).
  2909.  
  2910.  
  2911. Volume-Number: Volume 25, Number 26
  2912.  
  2913. From std-unix-request@uunet.uu.net  Fri Sep  6 19:35:46 1991
  2914. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2915.     (5.61/UUNET-uucp-primary) id AA05024; Fri, 6 Sep 91 19:35:46 -0400
  2916. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2917.     (5.61/UUNET-internet-primary) id AA13264; Fri, 6 Sep 91 19:35:43 -0400
  2918. Newsgroups: comp.std.unix
  2919. From: Doug Gwyn <gwyn@smoke.brl.mil>
  2920. Subject: Re: Error detection
  2921. Message-Id: <1991Sep6.233009.26146@uunet.uu.net>
  2922. Originator: sef@uunet.UU.NET
  2923. Sender: UseNet News <usenet@uunet.uu.net>
  2924. Nntp-Posting-Host: uunet.uu.net
  2925. X-Submissions: std-unix@uunet.uu.net
  2926. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  2927. References: <1991Sep4.201137.13461@uunet.uu.net> <1991Sep6.190406.10650@uunet.uu.net>
  2928. Date: Fri, 6 Sep 1991 23:15:03 GMT
  2929. Reply-To: std-unix@uunet.uu.net
  2930. To: std-unix@uunet.uu.net
  2931.  
  2932. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  2933.  
  2934. In article <1991Sep6.190406.10650@uunet.uu.net> fred@mindcraft.com (Fred Zlotnick) writes:
  2935. >A definitive answer should come from the POSIX.1 interpretations committee.
  2936. >However, the most recent (Draft 12) version of 1003.3.1 (Test Methods for
  2937. >Conformance to POSIX.1) has the following assertion for fgetc():
  2938. >    When the stream pointer argument addresses a file descriptor
  2939. >    that is not open for reading, then a call to fgetc() returns
  2940. >    a value of EOF and sets errno to [EBADF].
  2941. >The assertion is based on section 8.2.3.11 of POSIX.1-1990.  (The square
  2942. >brackets around EBADF are part of 1003.3's assertion notation.) This is
  2943. >assertion 6 for fgetc(), in section 11.11.4 of the draft.  So it seems
  2944. >that at least this committee believes that this behavior is required
  2945. >(assuming, of course that fopen(fname, "w") opens the underlying file
  2946. >descriptor for writing only.)  Remember, this is not 1003.1, but 1003.3.
  2947.  
  2948. I assert that they have misread POSIX.1-1990.  My copy does not appear
  2949. to require that an error be reported, but says only that IF and WHEN it
  2950. happens to be reported, errno will be set to the same code as the
  2951. POSIX.1 requirements for the "underlying call" read().  Such phrasing
  2952. is deliberately aimed at permitting efficient implementations rather
  2953. than having to probe for usage errors on every single invocation.
  2954.  
  2955. This rather typifies the problems that the UNIX standards validation
  2956. industry has had ever since I can recall.  SVVS, for example, was
  2957. notorious for verifying that certain reasonable operations would
  2958. reliably report failure, rather than being allowed to succeed when
  2959. vendors had managed to figure out how to provide extended services.
  2960.  
  2961. There are only a relatively small number of circumstances under which
  2962. it is important for certain attempted operations to definitely fail,
  2963. in a UNIX-like environment.  For the most part, people drawing up the
  2964. various system interface standards in recent years have been aware of
  2965. this and have not insisted on failure for standard conformance except
  2966. in those few important cases.  To do otherwise would stifle innovation.
  2967.  
  2968. If the people drawing up the test criteria don't understand this, or
  2969. cannot correctly interpret what POSIX.1-1990 actually says, they should
  2970. either learn better or else stop what they're doing before it adversely
  2971. affects our industry.
  2972.  
  2973.  
  2974. Volume-Number: Volume 25, Number 27
  2975.  
  2976. From std-unix-request@uunet.uu.net  Fri Sep  6 23:37:10 1991
  2977. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  2978.     (5.61/UUNET-uucp-primary) id AA17256; Fri, 6 Sep 91 23:37:10 -0400
  2979. Received: from kithrup.com by relay1.UU.NET with SMTP 
  2980.     (5.61/UUNET-internet-primary) id AB17975; Fri, 6 Sep 91 23:37:08 -0400
  2981. Newsgroups: comp.std.unix
  2982. From: Dan Bernstein <brnstnd@kramden.acf.nyu.edu>
  2983. Subject: The Unimplemented/Invented/Premature/Failed Standards Chart, 9/6/91
  2984. Message-Id: <1991Sep7.033214.7759@uunet.uu.net>
  2985. Originator: sef@uunet.UU.NET
  2986. Sender: UseNet News <usenet@uunet.uu.net>
  2987. Nntp-Posting-Host: uunet.uu.net
  2988. X-Submissions: std-unix@uunet.uu.net
  2989. Organization: IR
  2990. Date: Sat, 7 Sep 1991 02:49:45 GMT
  2991. Reply-To: std-unix@uunet.uu.net
  2992. To: std-unix@uunet.uu.net
  2993.  
  2994. Submitted-by: brnstnd@KRAMDEN.ACF.NYU.EDU (Dan Bernstein)
  2995.  
  2996. ``Unimplemented'' means that the standard was a requirement for
  2997. implementors before any implementations existed. ``Invented'' means
  2998. that the standard was not based entirely upon prior practice in the
  2999. industry. ``Premature'' means that advances in technology showed the
  3000. standard to be ill conceived within a few years of its introduction.
  3001. ``Failed'' means that many or most of the intended users of the standard
  3002. actively avoid using it. Parenthetical notes indicate examples of how
  3003. the standard is premature or provide evidence of its failure.
  3004. ``Unknown'' means that the standard has not yet been implemented widely
  3005. enough to judge one way or the other.
  3006.  
  3007. Name        Unimpl.    Invent.    Premature        Failed
  3008. POSIX.1        yes    yes    yes (job control)    unknown
  3009. POSIX.2     yes    yes    unknown            unknown
  3010. POSIX.12    yes    yes    unknown            unknown
  3011. POSIX.17    yes    yes    unknown            unknown
  3012. IEEE 854    ?    no    apparently not        no
  3013. C (K&R, pcc)     no    no    no            no
  3014. ANSI C        yes    no?    ?            ?
  3015. Ada        yes    yes    yes (OOP)        yes (c2ada)
  3016.  
  3017. This chart will be posted periodically or at the whim of its editor.
  3018. Contributions, updates, and corrections are welcome; send mail to
  3019. brnstnd@nyu.edu.
  3020.  
  3021. ---Dan
  3022.  
  3023. Volume-Number: Volume 25, Number 28
  3024.  
  3025. From std-unix-request@uunet.uu.net  Sun Sep  8 01:33:14 1991
  3026. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3027.     (5.61/UUNET-uucp-primary) id AA26477; Sun, 8 Sep 91 01:33:14 -0400
  3028. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3029.     (5.61/UUNET-internet-primary) id AA20696; Sun, 8 Sep 91 01:33:11 -0400
  3030. Newsgroups: comp.std.unix
  3031. From: Chuck Karish <karish@mindcraft.com>
  3032. Subject: Re: Error detection
  3033. Message-Id: <1991Sep8.052746.20736@uunet.uu.net>
  3034. Summary: fixing broken test suites
  3035. Originator: sef@uunet.UU.NET
  3036. Sender: UseNet News <usenet@uunet.uu.net>
  3037. Nntp-Posting-Host: uunet.uu.net
  3038. X-Submissions: std-unix@uunet.uu.net
  3039. Organization: Mindcraft, Inc.
  3040. References: <1991Sep4.201137.13461@uunet.uu.net> <1991Sep6.190244.10495@uunet.uu.net>
  3041. Date: Sun, 8 Sep 1991 00:51:01 GMT
  3042. Reply-To: std-unix@uunet.uu.net
  3043. To: std-unix@uunet.uu.net
  3044.  
  3045. Submitted-by: karish@mindcraft.com (Chuck Karish)
  3046.  
  3047. In article <1991Sep6.190244.10495@uunet.uu.net> gwyn@smoke.brl.mil
  3048. (Doug Gwyn) writes:
  3049. >Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  3050. >
  3051. >In article <1991Sep4.201137.13461@uunet.uu.net> karl@ima.isc.com
  3052. >(Karl Heuer) writes:
  3053. >>My own preference, of course, is that the test suite be ruled incorrect.
  3054. >
  3055. >Well, it clearly is incorrect, but then that is not the first time the
  3056. >existing test suites have had serious errors.  I don't know how you go
  3057. >about getting them fixed.
  3058.  
  3059. You get definitive proof that the test suite is incorrect
  3060. (often in the form of an interpretation from the appropriate
  3061. standards committee) and notify the test suite developer.
  3062.  
  3063. This particular case is a bit more complicated because three
  3064. standards are involved (Standard C, 1003.1, 1003.3.1), but the
  3065. principle is the same.  Get 1003.1 and X3J11 to affirm that the
  3066. assertion is incorrect, get 1003.3.1 to fix the assertion, and
  3067. the test suite developers will fix their tests.  I'm in the
  3068. process of doing exactly this, over the issue of whether it's
  3069. conforming to implement setjmp() and sigsetjmp() as functions
  3070. rather than as macros.
  3071.  
  3072. Unlike some earlier test suite developers, developers of POSIX.1
  3073. test suites have a vested interest in seeing that their tests
  3074. are correct, rather than maintaining bug-for-bug compatibility
  3075. with earlier implementations.
  3076.  
  3077.     Chuck Karish        karish@mindcraft.com
  3078.     Mindcraft, Inc.        (415) 323-9000
  3079.  
  3080.  
  3081. Volume-Number: Volume 25, Number 29
  3082.  
  3083. From std-unix-request@uunet.uu.net  Sun Sep  8 01:33:17 1991
  3084. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3085.     (5.61/UUNET-uucp-primary) id AA26481; Sun, 8 Sep 91 01:33:17 -0400
  3086. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3087.     (5.61/UUNET-internet-primary) id AA20705; Sun, 8 Sep 91 01:33:15 -0400
  3088. Newsgroups: comp.std.unix
  3089. From: Chuck Karish <karish@mindcraft.com>
  3090. Subject: Re: Standards Update, Editorial
  3091. Message-Id: <1991Sep8.052837.20840@uunet.uu.net>
  3092. Summary: POSIX.1 conformance
  3093. Originator: sef@uunet.UU.NET
  3094. Sender: UseNet News <usenet@uunet.uu.net>
  3095. Nntp-Posting-Host: uunet.uu.net
  3096. X-Submissions: std-unix@uunet.uu.net
  3097. Organization: Mindcraft, Inc.
  3098. References: <1991Sep6.184426.8789@uunet.uu.net>
  3099. Date: Sun, 8 Sep 1991 00:34:48 GMT
  3100. Reply-To: std-unix@uunet.uu.net
  3101. To: std-unix@uunet.uu.net
  3102.  
  3103. Submitted-by: karish@mindcraft.com (Chuck Karish)
  3104.  
  3105. In article <1991Sep6.184426.8789@uunet.uu.net> pc@hillside.co.uk
  3106. (Peter Collinson) writes:
  3107. >
  3108. >By definition, POSIX.3.1 is not yet a standard, hence no POSIX.1
  3109. >conformance test suite actually exists.
  3110. >
  3111. >Because of the obvious buying power of the U.S. government, most major
  3112. >vendors are implementing FIPS 151-1. It is a profile or subset of
  3113. >POSIX.1.
  3114.  
  3115. It is a profile.  It is not a subset.  FIPS 151-1 does not allow
  3116. a vendor to omit any of the functionality of the Standard.  What
  3117. it does is to specify how a vendor must choose in some places where
  3118. the Standard provides options as to the exact form of that
  3119. functionality.
  3120.  
  3121. >Test suites exist to test conformance against FIPS 151-1.  These must
  3122. >use the test methods described in POSIX.3.1 (still in ballot.) One of
  3123. >them was written to an early draft of POSIX.3.1.  Another was written
  3124. >by using the AT&T UNIX System V Verification Suite (SVVS) as a base.
  3125.  
  3126. I disagree with this terminology.  The three test suites that I
  3127. know of all test to the draft POSIX.3.1 standard.  Even the
  3128. NIST PCTS, which is the official test method for FIPS 151-1
  3129. conformance, does not formalize the requirements of FIPS 151-1
  3130. beyond POSIX.1 in test code.
  3131.  
  3132. All three (the NIST PCTS, the IBM PCTS, and X/Open's VSX) were
  3133. originally developed using early drafts of 1003.3.1, and all
  3134. three have been and are being updated on the basis of insights
  3135. gained from continued progress in developing the 1003.3.1 standard.
  3136.  
  3137. >SVVS dependencies are still being discovered and weeded out of this
  3138. >one. It is quite possible to implement something different from the
  3139. >FIPS, which would fail the FIPS test suites miserably, yet would
  3140. >technically conform to the standard.  (If only there was a way to
  3141. >prove it.)
  3142.  
  3143. There is a way to prove it, and it's well documented in the
  3144. `Certificate of Validation Requirements' document published by
  3145. NIST.  Where an implementation conforms to the FIPS but fails a
  3146. test in the NIST PCTS, the Accredited POSIX Testing Laboratory
  3147. determines that the implementation does, in fact, conform, and
  3148. issues an explanation and APTL Resolved Test Code for the
  3149. assertion test at issue, which is reviewed by the Certifying
  3150. Authority (NIST).
  3151.  
  3152. NIST has undertaken not to require that implementators butcher
  3153. their systems to accomodate portability problems in the test
  3154. suite.  It is up to the implementors to be aware of the
  3155. requirements of the FIPS and not to code to the test suite
  3156. rather than to the Standard.
  3157.  
  3158. Note also that NIST seems to honor the premise that 1003.1-1990 is
  3159. a bug-fixed version of 1003.1-1988. I haven't seen them penalize
  3160. a vendor for following the new Standard.
  3161.  
  3162.     Chuck Karish        karish@mindcraft.com
  3163.     Mindcraft, Inc.        (415) 323-9000
  3164.  
  3165.  
  3166. Volume-Number: Volume 25, Number 30
  3167.  
  3168. From std-unix-request@uunet.uu.net  Sun Sep  8 14:45:06 1991
  3169. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3170.     (5.61/UUNET-uucp-primary) id AA05730; Sun, 8 Sep 91 14:45:06 -0400
  3171. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3172.     (5.61/UUNET-internet-primary) id AA04739; Sun, 8 Sep 91 14:45:00 -0400
  3173. Newsgroups: comp.std.unix
  3174. From: Chuck Karish <karish@mindcraft.com>
  3175. Subject: Re: Error detection
  3176. Message-Id: <1991Sep8.183854.735@uunet.uu.net>
  3177. Originator: sef@uunet.UU.NET
  3178. Sender: UseNet News <usenet@uunet.uu.net>
  3179. Nntp-Posting-Host: uunet.uu.net
  3180. X-Submissions: std-unix@uunet.uu.net
  3181. Organization: Mindcraft, Inc.
  3182. References: <1991Sep4.201137.13461@uunet.uu.net> <1991Sep6.190406.10650@uunet.uu.net> <1991Sep6.233009.26146@uunet.uu.net>
  3183. Date: Sun, 8 Sep 1991 18:10:07 GMT
  3184. Reply-To: std-unix@uunet.uu.net
  3185. To: std-unix@uunet.uu.net
  3186.  
  3187. Submitted-by: karish@mindcraft.com (Chuck Karish)
  3188.  
  3189. In article <1991Sep6.233009.26146@uunet.uu.net> gwyn@smoke.brl.mil
  3190. (Doug Gwyn) writes:
  3191.  
  3192. [ A 1003.3 assertion requires that getc() on a  file descriptor
  3193.   opened for writing report an error. ]
  3194.  
  3195. >I assert that [1003.3.1] have misread POSIX.1-1990.  My copy does not appear
  3196. >to require that an error be reported, but says only that IF and WHEN it
  3197. >happens to be reported, errno will be set to the same code as the
  3198. >POSIX.1 requirements for the "underlying call" read().  Such phrasing
  3199. >is deliberately aimed at permitting efficient implementations rather
  3200. >than having to probe for usage errors on every single invocation.
  3201.  
  3202. I agree with Doug.  See 8.2.3.11 in 1003.1-1990.
  3203.  
  3204. >There are only a relatively small number of circumstances under which
  3205. >it is important for certain attempted operations to definitely fail,
  3206. >in a UNIX-like environment.  For the most part, people drawing up the
  3207. >various system interface standards in recent years have been aware of
  3208. >this and have not insisted on failure for standard conformance except
  3209. >in those few important cases.  To do otherwise would stifle innovation.
  3210. >
  3211. >If the people drawing up the test criteria don't understand this, or
  3212. >cannot correctly interpret what POSIX.1-1990 actually says, they should
  3213. >either learn better or else stop what they're doing before it adversely
  3214. >affects our industry.
  3215.  
  3216. I'm sure that the particular criterion under discussion will
  3217. be acknowledged to be defective by 1003.3.1.  Their policy and
  3218. their practice are, and should be, to write test criteria that
  3219. are exactly as stringent as the requirements in 1003.1, no more
  3220. and no less.
  3221.  
  3222. Note that this sometimes leads to assertions that differ from the
  3223. intentions of 1003.1, where those intentions were not expressed
  3224. explicitly or where they were not clear to the assertion writers.
  3225. Producing a correct and complete assertion set is part of an
  3226. iterative process that requires cooperation among the writers
  3227. of the base standard, the writers of the test criteria, the
  3228. developers of test suites based on the test criteria, and the
  3229. system implementors who run the test suites and have to
  3230. rationalize their systems to test suite results.
  3231.  
  3232.     Chuck Karish        karish@mindcraft.com
  3233.     Mindcraft, Inc.        (415) 323-9000
  3234.  
  3235.  
  3236. Volume-Number: Volume 25, Number 31
  3237.  
  3238. From std-unix-request@uunet.uu.net  Mon Sep  9 04:12:59 1991
  3239. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3240.     (5.61/UUNET-uucp-primary) id AA05326; Mon, 9 Sep 91 04:12:59 -0400
  3241. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3242.     (5.61/UUNET-internet-primary) id AA21288; Mon, 9 Sep 91 04:12:55 -0400
  3243. Newsgroups: comp.std.unix
  3244. From: Doug Gwyn <gwyn@smoke.brl.mil>
  3245. Subject: Re: The Unimplemented/Invented/Premature/Failed Standards Chart, 9/6/91
  3246. Message-Id: <1991Sep9.080656.3702@uunet.uu.net>
  3247. Originator: sef@uunet.UU.NET
  3248. Sender: UseNet News <usenet@uunet.uu.net>
  3249. Nntp-Posting-Host: uunet.uu.net
  3250. X-Submissions: std-unix@uunet.uu.net
  3251. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  3252. References: <1991Sep7.033214.7759@uunet.uu.net>
  3253. Date: Sun, 8 Sep 1991 01:31:10 GMT
  3254. Reply-To: std-unix@uunet.uu.net
  3255. To: std-unix@uunet.uu.net
  3256.  
  3257. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  3258.  
  3259. In article <1991Sep7.033214.7759@uunet.uu.net> brnstnd@KRAMDEN.ACF.NYU.EDU (Dan Bernstein) writes:
  3260. >C (K&R, pcc)     no    no    no            no
  3261.  
  3262. It's clear from this that you don't know what a standard IS.
  3263. PCC certainly did NOT implement K&R (1st Edition) C.  If it
  3264. were not for conflicts like that, there would have been no
  3265. need to work out a genuine standard for C.
  3266.  
  3267.  
  3268. Volume-Number: Volume 25, Number 32
  3269.  
  3270. From std-unix-request@uunet.uu.net  Mon Sep  9 14:32:24 1991
  3271. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3272.     (5.61/UUNET-uucp-primary) id AA29388; Mon, 9 Sep 91 14:32:24 -0400
  3273. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3274.     (5.61/UUNET-internet-primary) id AA12386; Mon, 9 Sep 91 14:32:21 -0400
  3275. Newsgroups: comp.std.unix
  3276. From: Geoff Clare <gwc@root.co.uk>
  3277. Subject: Re: Error detection
  3278. Message-Id: <1991Sep9.182603.20214@uunet.uu.net>
  3279. Originator: sef@uunet.UU.NET
  3280. Sender: UseNet News <usenet@uunet.uu.net>
  3281. Nntp-Posting-Host: uunet.uu.net
  3282. X-Submissions: std-unix@uunet.uu.net
  3283. Organization: UniSoft Ltd., London, England
  3284. References: <1991Sep4.201137.13461@uunet.uu.net>
  3285. Date: Mon, 9 Sep 1991 14:40:26 GMT
  3286. Reply-To: std-unix@uunet.uu.net
  3287. To: std-unix@uunet.uu.net
  3288.  
  3289. Submitted-by: gwc@root.co.uk (Geoff Clare)
  3290.  
  3291. In <1991Sep4.201137.13461@uunet.uu.net> karl@ima.isc.com (Karl Heuer) writes:
  3292.  
  3293. >A certain vendor's test suite for POSIX compliance expects that code like
  3294. >    fp=fopen(fname, "w"); c=getc(fp); /* attempted read from output stream */
  3295. >must cause a run-time error (EBADF, I think).  I claim that the behavior is
  3296. >undefined.  Who's right?
  3297.  
  3298. I can't believe some of the responses I've seen to this.  It seems that
  3299. otherwise intelligent and rational people lose control of their mental
  3300. faculties as soon as they see the word "POSIX".
  3301.  
  3302. Apart from one response which quoted POSIX.3.1 draft 12, all the responses
  3303. I have seen have been wrong, and many of them are examples of the worst
  3304. kind of knee-jerk POSIX-bashing reaction.
  3305.  
  3306. The assertion in POSIX.3.1 draft 12 is worded extremely carefully and
  3307. is perfectly correct.  Draft 11 was incorrect, and it appears that the
  3308. test suite implements the old draft and needs updating to draft 12.
  3309. The change from draft 11 to 12 was to replace:
  3310.  
  3311.     "When the stream pointer argument is not open for reading"
  3312.  
  3313. with
  3314.  
  3315.     "When the stream pointer argument addresses a file descriptor that
  3316.     is not open for reading"
  3317.  
  3318. The change takes account of situations where a write-only stream has a
  3319. read-write underlying file descriptor.   This must be the case after an
  3320. fopen(f, "w") on Karl's system - there is no other way a getc() after
  3321. fopen(f, "w") could succeed because the _filbuf(), or equivalent, would
  3322. fail if the fd was not readable.
  3323.  
  3324. To align with draft 12, the test suite should change from using
  3325. fopen(f, "w") to using creat() or open() with O_WRONLY, followed by
  3326. fdopen().
  3327.  
  3328. -- 
  3329. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  3330. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  3331.  
  3332.  
  3333. Volume-Number: Volume 25, Number 33
  3334.  
  3335. From std-unix-request@uunet.uu.net  Mon Sep  9 21:41:00 1991
  3336. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3337.     (5.61/UUNET-uucp-primary) id AA11313; Mon, 9 Sep 91 21:41:00 -0400
  3338. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3339.     (5.61/UUNET-internet-primary) id AA28136; Mon, 9 Sep 91 21:40:58 -0400
  3340. Newsgroups: comp.std.unix
  3341. From: Doug Gwyn <gwyn@smoke.brl.mil>
  3342. Subject: Re: Error detection
  3343. Message-Id: <1991Sep9.231248.7509@uunet.uu.net>
  3344. Originator: sef@uunet.UU.NET
  3345. Nntp-Posting-Host: uunet.uu.net
  3346. X-Submissions: std-unix@uunet.uu.net
  3347. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  3348. References: <1991Sep4.201137.13461@uunet.uu.net> <1991Sep9.182603.20214@uunet.uu.net>
  3349. Date: Mon, 9 Sep 1991 22:45:02 GMT
  3350. Reply-To: std-unix@uunet.uu.net
  3351. To: std-unix@uunet.uu.net
  3352. Sender: Network News <news@kithrup.com>
  3353. Source-Info:  From (or Sender) name not authenticated.
  3354.  
  3355. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  3356.  
  3357. In article <1991Sep9.182603.20214@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  3358. >    "When the stream pointer argument addresses a file descriptor that
  3359. >    is not open for reading"
  3360. >The change takes account of situations where a write-only stream has a
  3361. >read-write underlying file descriptor.   This must be the case after an
  3362. >fopen(f, "w") on Karl's system - there is no other way a getc() after
  3363. >fopen(f, "w") could succeed because the _filbuf(), or equivalent, would
  3364. >fail if the fd was not readable.
  3365.  
  3366. No, that still misses the point.  It is not desirable to require that
  3367. the getc() macro check the mode flags on every invocation.  Reasonable
  3368. implementations of getc() can (perhaps not immediately after open, but
  3369. certainly at some point later) "believe" the FILE structure buffer
  3370. count and pointer members, and that means that an actual I/O system
  3371. call, or for example the _filbuf() function, need not occur for most
  3372. invocations of getc().  Requiring getc() to always report the usage
  3373. error, which would take extra code in its implementation, would make
  3374. this crucial bottleneck function less efficient.  POSIX.1 does NOT
  3375. require that, and it is wrong for POSIX.3.1 to add that requirement.
  3376.  
  3377. I don't think it was just the first getc() after an fopen() that was
  3378. the issue, but the more general one of an arbitrary getc().
  3379.  
  3380. Care should be taken to distinguish among various classes of "error";
  3381. in this example the error is one of programmer misuse of a standard
  3382. facility, which is not the kind of thing that needs to be checked on
  3383. every invocation at run-time.  That is in contrast to open() reporting
  3384. that the specified file does not exist, for example, which is a valid
  3385. use of the open() function that needs to reliably indicate that kind of
  3386. "error".
  3387.  
  3388.  
  3389. Volume-Number: Volume 25, Number 34
  3390.  
  3391. From std-unix-request@uunet.uu.net  Tue Sep 10 02:14:52 1991
  3392. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3393.     (5.61/UUNET-uucp-primary) id AA28377; Tue, 10 Sep 91 02:14:52 -0400
  3394. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3395.     (5.61/UUNET-internet-primary) id AA08081; Tue, 10 Sep 91 02:14:49 -0400
  3396. Newsgroups: comp.std.unix
  3397. From: Dan Bernstein <brnstnd@kramden.acf.nyu.edu>
  3398. Subject: Re: The Unimplemented/Invented/Premature/Failed Standards Chart, 9/6/91
  3399. Message-Id: <1991Sep10.060837.26907@uunet.uu.net>
  3400. Originator: sef@uunet.UU.NET
  3401. Sender: UseNet News <usenet@uunet.uu.net>
  3402. Nntp-Posting-Host: uunet.uu.net
  3403. X-Submissions: std-unix@uunet.uu.net
  3404. Organization: IR
  3405. References: <1991Sep7.033214.7759@uunet.uu.net> <1991Sep9.080656.3702@uunet.uu.net>
  3406. Date: Tue, 10 Sep 1991 01:45:50 GMT
  3407. Reply-To: std-unix@uunet.uu.net
  3408. To: std-unix@uunet.uu.net
  3409.  
  3410. Submitted-by: brnstnd@KRAMDEN.ACF.NYU.EDU (Dan Bernstein)
  3411.  
  3412. In article <1991Sep9.080656.3702@uunet.uu.net> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  3413. > In article <1991Sep7.033214.7759@uunet.uu.net> brnstnd@KRAMDEN.ACF.NYU.EDU (Dan Bernstein) writes:
  3414. > >C (K&R, pcc)     no    no    no            no
  3415. > It's clear from this that you don't know what a standard IS.
  3416.  
  3417. In this case the standard is the de facto standard defined directly by
  3418. the pcc source and indirectly by (1) K&R; (2) various documents
  3419. describing the internal construction of pcc. I'm sorry if you can't
  3420. grasp the concept of a standard defined by its implementation, but
  3421. that's exactly what pcc is!
  3422.  
  3423. One might argue that original C was premature, because it lacked such
  3424. useful tools as void and enum. But pcc *did* have those features and
  3425. was the reigning standard for years. Its intended users didn't actively
  3426. avoid it. Would anyone argue the fact that it was a successful standard,
  3427. while certain unimplemented/invented/premature standards, like Ada, have
  3428. been rather unsuccessful?
  3429.  
  3430. (Do members of a ``standards'' committee ever recover? Or do they always
  3431. remain so infatuated with their pet projects that they can no longer see
  3432. true standards chosen by the real world? Followups to sci.psychology. In
  3433. the meantime, I'd like to thank the people who've suggested additions to
  3434. the chart. Keep 'em coming!)
  3435.  
  3436. ---Dan
  3437.  
  3438.  
  3439. Volume-Number: Volume 25, Number 35
  3440.  
  3441. From std-unix-request@uunet.uu.net  Wed Sep 11 02:11:08 1991
  3442. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3443.     (5.61/UUNET-uucp-primary) id AA24504; Wed, 11 Sep 91 02:11:08 -0400
  3444. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3445.     (5.61/UUNET-internet-primary) id AA19756; Wed, 11 Sep 91 02:11:06 -0400
  3446. Newsgroups: comp.std.unix
  3447. From: Doug Gwyn <gwyn@smoke.brl.mil>
  3448. Subject: Re: The Unimplemented/Invented/Premature/Failed Standards Chart, 9/6/91
  3449. Message-Id: <1991Sep11.060204.17262@uunet.uu.net>
  3450. Originator: sef@uunet.UU.NET
  3451. Sender: UseNet News <usenet@uunet.uu.net>
  3452. Nntp-Posting-Host: uunet.uu.net
  3453. X-Submissions: std-unix@uunet.uu.net
  3454. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  3455. References: <1991Sep7.033214.7759@uunet.uu.net> <1991Sep9.080656.3702@uunet.uu.net> <1991Sep10.060837.26907@uunet.uu.net>
  3456. Date: Wed, 11 Sep 1991 05:35:14 GMT
  3457. Reply-To: std-unix@uunet.uu.net
  3458. To: std-unix@uunet.uu.net
  3459.  
  3460. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  3461.  
  3462. In article <1991Sep10.060837.26907@uunet.uu.net> brnstnd@KRAMDEN.ACF.NYU.EDU (Dan Bernstein) writes:
  3463. >In this case the standard is the de facto standard defined directly by
  3464. >the pcc source and indirectly by (1) K&R; (2) various documents
  3465. >describing the internal construction of pcc. I'm sorry if you can't
  3466. >grasp the concept of a standard defined by its implementation, but
  3467. >that's exactly what pcc is!
  3468.  
  3469. Oh, I know what you think you mean, all right, but you failed to respond
  3470. to my real point, which is that PCC implementations CONTRADICTED K&R in
  3471. several areas, and thus saying that "(K&R, pcc)" constituted any sort of
  3472. "standard" for C is self-contradictory.
  3473.  
  3474. In fact the argument that "the" PCC implementation (there were several)
  3475. constituted a de facto C standard has been shot down many times.
  3476.  
  3477.  
  3478. Volume-Number: Volume 25, Number 36
  3479.  
  3480. From std-unix-request@uunet.uu.net  Wed Sep 11 13:41:04 1991
  3481. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3482.     (5.61/UUNET-uucp-primary) id AA02162; Wed, 11 Sep 91 13:41:04 -0400
  3483. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3484.     (5.61/UUNET-internet-primary) id AA11558; Wed, 11 Sep 91 13:41:00 -0400
  3485. Newsgroups: comp.std.unix
  3486. From: Geoff Clare <gwc@root.co.uk>
  3487. Subject: Re: Error detection
  3488. Message-Id: <1991Sep11.173345.6142@uunet.uu.net>
  3489. Originator: sef@uunet.UU.NET
  3490. Sender: UseNet News <usenet@uunet.uu.net>
  3491. Nntp-Posting-Host: uunet.uu.net
  3492. X-Submissions: std-unix@uunet.uu.net
  3493. Organization: UniSoft Ltd., London, England
  3494. References: <1991Sep4.201137.13461@uunet.uu.net> <1991Sep9.182603.20214@uunet.uu.net> <1991Sep9.231248.7509@uunet.uu.net>
  3495. Date: Wed, 11 Sep 1991 14:15:19 GMT
  3496. Reply-To: std-unix@uunet.uu.net
  3497. To: std-unix@uunet.uu.net
  3498.  
  3499. Submitted-by: gwc@root.co.uk (Geoff Clare)
  3500.  
  3501. gwyn@smoke.brl.mil (Doug Gwyn) writes:
  3502.  
  3503. >No, that still misses the point.  It is not desirable to require that
  3504. >the getc() macro check the mode flags on every invocation.  Reasonable
  3505. >implementations of getc() can (perhaps not immediately after open, but
  3506. >certainly at some point later) "believe" the FILE structure buffer
  3507. >count and pointer members, and that means that an actual I/O system
  3508. >call, or for example the _filbuf() function, need not occur for most
  3509. >invocations of getc().  Requiring getc() to always report the usage
  3510. >error, which would take extra code in its implementation, would make
  3511. >this crucial bottleneck function less efficient.  POSIX.1 does NOT
  3512. >require that, and it is wrong for POSIX.3.1 to add that requirement.
  3513.  
  3514. There is no such requirement in the POSIX.3.1 assertion!
  3515.  
  3516. A legal call to getc() on a stream with a non-readable file descriptor
  3517. will always result in getc() trying to read data into the buffer, and
  3518. therefore getc() itself doesn't need to do the check, it can leave it
  3519. to _filbuf() (or whatever).  The only way a getc() on such a stream
  3520. could return without trying to read data into the buffer is if there
  3521. has been a buffered write before the getc().  That is why I said "legal
  3522. call" above.  A call to getc() after a buffered write is not "legal",
  3523. because POSIX.1 (by reference to the C Standard) requires applications
  3524. to call fflush() or a file positioning function when switching from
  3525. output to input.
  3526.  
  3527. I maintain that the POSIX.3.1 draft 12 assertion is correct.  Maybe it
  3528. would be better if it stated explicitly "when there are no data in the
  3529. buffer", but as far as I can see, it is correct as it stands.
  3530. -- 
  3531. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  3532. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  3533.  
  3534. Volume-Number: Volume 25, Number 37
  3535.  
  3536. From std-unix-request@uunet.uu.net  Wed Sep 11 17:55:36 1991
  3537. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3538.     (5.61/UUNET-uucp-primary) id AA08596; Wed, 11 Sep 91 17:55:36 -0400
  3539. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3540.     (5.61/UUNET-internet-primary) id AA19479; Wed, 11 Sep 91 17:55:34 -0400
  3541. Newsgroups: comp.std.unix
  3542. From: Henry Spencer <henry@zoo.toronto.edu>
  3543. Subject: Re: Error detection
  3544. Message-Id: <1991Sep11.214842.20864@uunet.uu.net>
  3545. Originator: sef@uunet.UU.NET
  3546. Sender: UseNet News <usenet@uunet.uu.net>
  3547. Nntp-Posting-Host: uunet.uu.net
  3548. X-Submissions: std-unix@uunet.uu.net
  3549. Organization: U of Toronto Zoology
  3550. References: <1991Sep4.201137.13461@uunet.uu.net> <1991Sep9.182603.20214@uunet.uu.net> <1991Sep9.231248.7509@uunet.uu.net> <1991Sep11.173345.6142@uunet.uu.net>
  3551. Date: Wed, 11 Sep 1991 19:36:45 GMT
  3552. Reply-To: std-unix@uunet.uu.net
  3553. To: std-unix@uunet.uu.net
  3554.  
  3555. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  3556.  
  3557. In article <1991Sep11.173345.6142@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  3558. >A legal call to getc() on a stream with a non-readable file descriptor
  3559. >will always result in getc() trying to read data into the buffer...
  3560.  
  3561. Please cite chapter and verse of ANSI C or POSIX.1 justifying this.
  3562. This is the heart of the problem:  the assertion assumes a specific
  3563. implementation technique that is not required by the standards.
  3564. -- 
  3565. Programming graphics in X is like       | Henry Spencer @ U of Toronto Zoology
  3566. finding sqrt(pi) using Roman numerals.  |  henry@zoo.toronto.edu  utzoo!henry
  3567.  
  3568. Volume-Number: Volume 25, Number 38
  3569.  
  3570. From std-unix-request@uunet.uu.net  Wed Sep 11 18:54:40 1991
  3571. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  3572.     (5.61/UUNET-uucp-primary) id AA25431; Wed, 11 Sep 91 18:54:40 -0400
  3573. Received: from kithrup.com by relay1.UU.NET with SMTP 
  3574.     (5.61/UUNET-internet-primary) id AA02926; Wed, 11 Sep 91 18:54:24 -0400
  3575. Newsgroups: comp.std.unix
  3576. From: dominic@british-national-corpus.oxford.ac.uk
  3577. Subject: ISO Monitor report: ISO POSIX working group meeting of May, 1991
  3578. Message-Id: <1991Sep11.224826.24220@uunet.uu.net>
  3579. Originator: sef@uunet.UU.NET
  3580. Sender: UseNet News <usenet@uunet.uu.net>
  3581. Nntp-Posting-Host: uunet.uu.net
  3582. X-Submissions: std-unix@uunet.uu.net
  3583. Organization: UUNET Communications Services
  3584. Date: Wed, 11 Sep 1991 21:14:23 GMT
  3585. Reply-To: std-unix@uunet.uu.net
  3586. To: std-unix@uunet.uu.net
  3587.  
  3588. Submitted-by: dominic@british-national-corpus.oxford.ac.uk
  3589.  
  3590. [ Production of the following report has been jointly sponsored by
  3591.   EurOpen and USENIX.
  3592.  
  3593.   The report reflects my personal opinions, not those of either of
  3594.   these organizations, or of my employer, Oxford University Computing
  3595.   Services.
  3596.  
  3597.   I apologise for the late production and circulation.  It's all my
  3598.   fault!                            -- DD ]
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.            Report on ISO/IEC JTC1/SC22/WG15 (POSIX)
  3606.                Meeting of 14th - 17th May, 1991
  3607.                   Rotterdam, The Netherlands
  3608.  
  3609.            Dominic Dunlop -- domo@natcorp.ox.ac.uk
  3610.  
  3611.                    The Standard Answer Ltd.
  3612.  
  3613.  
  3614.  Rotterdam is the largest port in Europe.  Perhaps that's why
  3615.  everybody forgets it has an airport.  A nice little airport
  3616.  that you can get through in ten minutes -- particularly if
  3617.  all the other participants in the POSIX meeting are flying
  3618.  into Amsterdam airport and taking the train the rest of the
  3619.  way.  But you can't get a meal at Rotterdam airport after
  3620.  6pm:  everything has its price.
  3621.  
  3622.  One of the prices of creating a standard is that you have to
  3623.  do things by the book.  You have to know all the procedures,
  3624.  and to be able to demonstrate that you have followed them.
  3625.  Fall down in either respect, and, sooner or later, someone
  3626.  will notice and require you to put things right.  The
  3627.  problem is that the only real way to find out about the
  3628.  procedures is to have been making standards for a few years.
  3629.  By which time you've made a few mistakes, inadvertently cut
  3630.  a few corners, and made a few assumptions which turn out to
  3631.  be wrong.
  3632.  
  3633.  Guess what.  That's just what the ISO POSIX working group
  3634.  has done.
  3635.  
  3636.  As a result, the working group1 came up with no fewer than
  3637.  48 resolutions and 32 action items at its spring meeting.2
  3638.  In fact, there could have been even more resolutions, but
  3639.  some were voted down.  Which raises another important aspect
  3640.  of standards-making: politics.  I'll deal with that aspect
  3641.  last.  For the moment, let me run you through the rest of
  3642.  the resolutions:
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  __________
  3650.  
  3651.   1. That is, Subcommittee 22, Working Group 15, of Joint
  3652.      Technical Committee 1 of the International Organization
  3653.      for Standardization and the International
  3654.      Electrotechnical Commission (ISO/IEC JTC1/SC22/WG15),
  3655.      colloquially known as the ISO POSIX working group.
  3656.  
  3657.   2. And I should know: I was taking the minutes.  I should
  3658.      know by now never to volunteer...
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.                             - 2 -
  3672.  
  3673.  
  3674.  
  3675.                           Exit_OSCRL
  3676.  
  3677.  You may recall from [1] that ISO procedures had saddled the
  3678.  working group with a moribund project, OSCRL (Operating
  3679.  System Command and Report Language) which had its birth in
  3680.  the early 'eighties and the first flush of the movement
  3681.  towards OSI.  Despite intermittent attempts at
  3682.  resuscitation, the corpse would not come back to life.  We
  3683.  even called a meeting of past OSCRL experts to write an
  3684.  epitaph (or, in ISO-speak, draft a Technical Report) but
  3685.  nobody came.  As a result, OSCRL lies buried in an almost
  3686.  unmarked grave: our first resolution simply says that
  3687.  there's no more to be done, and gives fulsome praise to
  3688.  those who participated in the project.
  3689.  
  3690.  Let's hope we hear no more of it.  I think we killed it by
  3691.  the book...
  3692.  
  3693.                         New_Projects_R
  3694.  
  3695.  What we hadn't done by the book was get official approval
  3696.  from Subcommittee 22, our parent body within ISO, for all
  3697.  the POSIX work that we consider necessary.  This goes beyond
  3698.  the basic operating system interface, the shell and tools,
  3699.  and administration, which we've had on our plate since the
  3700.  working group was formed.
  3701.  
  3702.  Without going into the detail of the differences between the
  3703.  work that we thought had been approved, and that which the
  3704.  ISO secretratiat thought had been approved, suffice it to
  3705.  say that, at its May meeting, the working group forwarded
  3706.  ten New Project proposals (NP's) to SC22.  If approved, we
  3707.  will officially be able to work on:
  3708.  
  3709.     - Real time and real time extensions corresponding to
  3710.       draft IEEE standard 1003.4 and the revision  following
  3711.       closely behind it.  The French pointed out that both
  3712.       deal with "soft" real time, where one needs things done
  3713.       fast and reliably, but no planes fall from the sky3 if
  3714.       an interrupt is serviced  a few microseconds late.  We
  3715.       may yet get involved with the "hard" real time systems
  3716.       which address these needs.
  3717.  
  3718.     - Transparent file access; that is, transparent access
  3719.       across a network to files on remote systems as defined
  3720.  
  3721.  
  3722.  __________
  3723.  
  3724.   3. or fail to fall from the sky, I suppose...
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.  
  3737.                             - 3 -
  3738.  
  3739.  
  3740.  
  3741.       by IEEE 1003.8.
  3742.  
  3743.     - Protocol independent interfaces:  -- sockets and/or
  3744.       Transport Level Interface.  (Current work in the IEEE
  3745.       1003.12 working group aims to unify the two
  3746.       approaches).  Remote procedure call is excluded so as
  3747.       not to conflict with the work of SC214 on the topic.
  3748.  
  3749.     - Directory Service in line with the work of IEEE
  3750.       1003.17.  This work has to do both with access to X.500
  3751.       directory services, and with the naming of POSIX
  3752.       objects with addresses which can be looked up using
  3753.       those services.
  3754.  
  3755.     - User portability extension -- the extension to the IEEE
  3756.       1003.2 draft shell and tools standard (IS 9945-2 to be)
  3757.       dealing with the tools needed for program development:
  3758.       make, vi and so on.
  3759.  
  3760.     - System interface extensions for the operating system
  3761.       interface: advanced concepts such as symbolic links,
  3762.       taken from the forthcoming revision to the current
  3763.       standard5.
  3764.  
  3765.     - Shell and utility extensions from the revision to draft
  3766.       IEEE standard 1003.2.
  3767.  
  3768.     - Security changes to the existing 9945-1 standard and
  3769.       the forthcoming 9945-2 shell and tools standard.  These
  3770.       will be taken from IEEE 1003.6 and will update existing
  3771.       standards -- hopefully in a way which does not break
  3772.       existing applications -- in order to allow systems with
  3773.       enhanced security features to conform.
  3774.  
  3775.  Additionally, we have set the wheels in motion for
  3776.  consideration of two further activities:
  3777.  
  3778.     - Conformance Test.  We are suggesting that  IEEE Std
  3779.       1003.3[2] becomes an ISO standard via the fast track
  3780.       procedure.  Meanwhile, members of the Rapporteur group
  3781.       on Conformance Testing are working on a "consensus
  3782.  
  3783.  
  3784.  __________
  3785.  
  3786.   4. The folks responsible for OSI.
  3787.  
  3788.   5. So as to conform  with ISO dogma, these will be appear
  3789.      first in Language Independent form, rather than as C
  3790.      language interfaces -- see below.
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.                             - 4 -
  3804.  
  3805.  
  3806.  
  3807.       specification for a single scaffold" for testing.
  3808.       Perhaps they all want to hang together...
  3809.  
  3810.     - The POSIX Guide otherwise known as 1003.0, is being put
  3811.       forward by the working group as a proposed draft ISO
  3812.       technical Report.  This has to do with Open System
  3813.       Environment Profiles, the subject of the group's
  3814.       longest resolution, which consists mostly of questions
  3815.       that the group would like answered by those working on
  3816.       profiles elsewhere in ISO.
  3817.  
  3818.  Add all those topics together, and you have a lot of work --
  3819.  a fact that has not been lost on those who think that the
  3820.  ISO POSIX working group is getting too ambitious.  But
  3821.  that's politics, which I'm saving until the end.
  3822.  
  3823.                     French_Lessons_for_Ada
  3824.  
  3825.  In [3] I expounded at length on the issue of Language
  3826.  Independent Specifcations (LIS) -- an topic which ISO has
  3827.  hitherto thought more important than have those actually
  3828.  writing the bulk of the POSIX standards under the auspices
  3829.  of the IEEE in the USA.  Happily, early this year, the IEEE
  3830.  came up with some money to sponsor the production of first
  3831.  full drafts of two documents: a Language Independent
  3832.  Specification defining services corresponding to those set
  3833.  out in the current operating system interface standard[4];
  3834.  and a set of C language bindings to those services.  Taken
  3835.  together, these two documents should provide no advance over
  3836.  the existing standard -- as far as C programmers are
  3837.  concerned.
  3838.  
  3839.  So why do it?  Pour encourager les autres -- such as the
  3840.  group in New Zealand which has expressed an interest in
  3841.  defining a Modula 2 binding to POSIX services, and those
  3842.  developing a C++ standard6.  We want them to do things in
  3843.  (what we consider to be) the right way, having learned
  3844.  useful lessons at the expense of the IEEE's 1003.5 and
  3845.  1003.9 working groups, which have been working on Ada and
  3846.  FORTRAN bindings to the POSIX operating system services
  3847.  defined by the 1003.1 standard in terms of their interface
  3848.  to the C language.
  3849.  
  3850.  
  3851.  __________
  3852.  
  3853.   6. We have passed words of encouragement to the Modula 2
  3854.      enthusiasts, but decided to keep quiet about C++ until
  3855.      ISO makes up its mind as to where it fits in the scheme
  3856.      of things.  Politics again.
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.                             - 5 -
  3870.  
  3871.  
  3872.  
  3873.  Inevitably, a definition in the C language presumes C-isms,
  3874.  such as a fairly permissive attitude to type conversion and
  3875.  the possibility of function argument lists of variable
  3876.  length.  Such idioms do not map onto good (or, indeed,
  3877.  legal) Ada or FORTRAN, so the writers of those bindings
  3878.  standards have had to invent alternatives.  As a result, the
  3879.  services, and the detailed semantics of those services,
  3880.  accessible from the Ada and FORTRAN differ from those
  3881.  available to programmers writing in C.  At the ISO level,
  3882.  people find it almost impossible to tolerate such
  3883.  inconsistency, even if the IEEE has a rather more relaxed
  3884.  attitude.
  3885.  
  3886.  But the IEEE also likes the standards that it develops to
  3887.  become international standards if they can.  Last October,
  3888.  the ISO POSIX working group said that it would not work on
  3889.  moving Ada and FORTRAN bindings forward at the international
  3890.  level until they consisted only of a thin document
  3891.  describing the means by which the languages bind to a
  3892.  language-independent service definition.  The number of
  3893.  people in the world who are qualified (and motivated) to
  3894.  create such a definition can be counted on one's fingers.
  3895.  None of them had an indulgent employer who would continue to
  3896.  pay them while they did work which would get the IEEE out of
  3897.  a hole and further the cause of international
  3898.  standardization, but which would produce no immediately
  3899.  measurable commercial benefit.
  3900.  
  3901.  So the IEEE found the money, put the job out to competitive
  3902.  tender, and ultimately contracted with Hal Jespersen, long-
  3903.  time editor of various POSIX standards, to produce initial
  3904.  drafts.  This he did on short order, and the documents are
  3905.  already being revised in the IEEE 1003.1 working group,
  3906.  which intends to bring them to ballot early in 1992.  ([5]
  3907.  describes what ``bringing to ballot'' means.)  They have yet
  3908.  to be distributed at the ISO level, the necessary level of
  3909.  polish not having been achieved, but should reach WG15 later
  3910.  this year.
  3911.  
  3912.  This means that, as far as ISO is concerned, the standards
  3913.  production process is getting back on track after a period
  3914.  when it looked as if it was going to run into the sand
  3915.  because of disagreements on priorities between the US-based
  3916.  standards developers and the rest of the world.  Sadly, the
  3917.  US-based Ada community shows little sign of participating in
  3918.  this outbreak of cooperation: it is more concerned with
  3919.  getting a standard out of the door than with producing a
  3920.  standard which fits well into the ISO scheme of things.
  3921.  
  3922.  Fortuitously, the ISO POSIX working group has discovered
  3923.  that there are other fish in the Ada sea7 besides the IEEE
  3924.  
  3925.  
  3926.  
  3927.  
  3928.  
  3929.  
  3930.  
  3931.  
  3932.  
  3933.  
  3934.  
  3935.                             - 6 -
  3936.  
  3937.  
  3938.  
  3939.  1003.9 working group:  a group of French experts has offered
  3940.  to make an early review of the draft POSIX LIS standard,
  3941.  commenting on its suitability as a basis for an Ada binding.
  3942.  The offer was gratefully accepted.
  3943.  
  3944.                            Politics
  3945.  
  3946.  If US Ada experts persist in ignoring ISO's plans, we could
  3947.  end up with an international standard for Ada bindings to
  3948.  POSIX services which differs considerably from the US
  3949.  standard.  This would be a Bad Thing, and would raise the
  3950.  level of exasperation of those working within ISO at the
  3951.  performance of the US as a developer of standards on behalf
  3952.  of the international community.
  3953.  
  3954.  To date, there has been little cause for complaint with the
  3955.  progress of POSIX development by the IEEE.  Unfortunately,
  3956.  ISO experienced considerable problems with two other SC22
  3957.  projects for which the US was the development agency:
  3958.  Fortran 90 and C8.  This has made some national member
  3959.  bodies of ISO unwilling to give the US responsibility for
  3960.  the production of further standards (such as C++), and has
  3961.  given them cause to review existing projects where the US is
  3962.  the development agency.  POSIX is one of these, so we have
  3963.  to be on our best behaviour.
  3964.  
  3965.  Then there's history.  Before the inception of the ISO POSIX
  3966.  project, the Japanese proposed that a new Subcommittee,
  3967.  Systems Software Interfaces (SSI), should be formed to
  3968.  handle it and other projects in what was unquestionably a
  3969.  growing field.  The Japanese expressed a willingness to
  3970.  provide a secretariat for (that is, to manage) the new
  3971.  subcommittee.  Predictably, the US didn't like this idea,
  3972.  and prevailed with its view that, rather than delay
  3973.  standardization until a new SC could be set up, POSIX should
  3974.  be accommodated in the existing subcommittee handling
  3975.  computer languages -- a subcommittee for which the US
  3976.  happens to provide a secretariat.
  3977.  
  3978.  This spring, the Japanese, pointing to the increasing
  3979.  workload of the ISO POSIX working group, again argued in
  3980.  favour of a new SC.  The group did not agree, and threw out
  3981.  
  3982.  
  3983.  __________
  3984.  
  3985.   7. Nuclear-powered submarines, perhaps?
  3986.  
  3987.   8. See [6] for gory details -- and a plug for POSIX: "One
  3988.      Group That's Working Well".
  3989.  
  3990.  
  3991.  
  3992.  
  3993.  
  3994.  
  3995.  
  3996.  
  3997.  
  3998.  
  3999.  
  4000.  
  4001.                             - 7 -
  4002.  
  4003.  
  4004.  
  4005.  a proposed resolution which would have welcomed a move of
  4006.  POSIX work to a new SC, should JTC1 decide in favour of
  4007.  creating one.  Instead, we passed a resolution which said
  4008.  that we like being in the languages subcommittee, and will
  4009.  benefit from continued close communication with other
  4010.  projects under that SC.
  4011.  
  4012.  The original resolution was overturned not so much because
  4013.  everybody thinks that everything about the current situation
  4014.  is wonderful, but because the proposed new SC does not
  4015.  address a potentially even larger issue: that of profiles.
  4016.  Jim Isaak, convener of the ISO POSIX working group and chair
  4017.  of the IEEE Technical Committee on Operating Systems, wrote
  4018.  about profiles in [7].  Profiles list the standards, parts
  4019.  of standards, or optional additions to standards to which
  4020.  systems must conform if they are to address the needs of
  4021.  particular applications areas.  They are near to essential
  4022.  if one wants to make sense of the dozens of OSI standards.
  4023.  It seems that POSIX is moving in the same direction,
  4024.  particularly since POSIX conforming systems will need also
  4025.  to conform to other standards such as those for SQL and...
  4026.  OSI.
  4027.  
  4028.  A meeting prior to the main assembly in Rotterdam drafted a
  4029.  framework for future work on POSIX profiles and, equally
  4030.  importantly, for cooperation among the many bodies which are
  4031.  developing them.  But there's still much work to do.  I
  4032.  expect we'll discuss the topic again at our next meeting in
  4033.  Stockholm, Sweden, in early November:  the issue won't go
  4034.  away.  Nor will the matter of the new SC, even if some of us
  4035.  might want it to.  I'll keep you posted.
  4036.  
  4037.  
  4038.  
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.                             - 8 -
  4068.  
  4069.  
  4070.  
  4071.  
  4072.                           REFERENCES
  4073.  
  4074.  
  4075.  
  4076.   1. Report on ISO  POSIX Working Group, Dominic Dunlop,
  4077.      ;login:, vol. 16, no. 1 (January/February 1991)
  4078.  
  4079.   2. IEEE Std 1003.3:1991:  Information Technology -- Test
  4080.      Methods for Measuring Conformance to POSIX
  4081.  
  4082.   3. Report on ISO  POSIX Working Group, Dominic Dunlop,
  4083.      ;login:, vol. 15, no. 5 (September/October 1990)
  4084.  
  4085.   4. ISO/IEC 9945-1:1990 (also known as IEEE Std 1003.1):
  4086.      Information Technology -- Portable Operating System
  4087.      Interface (POSIX) -- Part 1: System Application Program
  4088.      Interface (API) [C Language]
  4089.  
  4090.   5. Standards Column to be Published in the EurOpen
  4091.      Newsletter, Spring 1991, Dominic Dunlop, USENET,
  4092.      comp.std.unix, vol. 22, no. 92
  4093.  
  4094.   6. The Standards Process Breaks Down, Jeff Moad,
  4095.      Datamation, Sept. 15 1990 (vol.36, no. 18), pages 24
  4096.      through 32.
  4097.  
  4098.   7. An Update on UNIX-Related Standards Activities -- POSIX
  4099.      Profiles, ;login:, vol. 16, no. 3 (May/June 1991)
  4100.  
  4101. -- 
  4102. Dominic Dunlop
  4103.  
  4104.  
  4105. Volume-Number: Volume 25, Number 39
  4106.  
  4107. From std-unix-request@uunet.uu.net  Thu Sep 12 13:15:27 1991
  4108. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  4109.     (5.61/UUNET-uucp-primary) id AA22336; Thu, 12 Sep 91 13:15:27 -0400
  4110. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4111.     (5.61/UUNET-internet-primary) id AA12482; Thu, 12 Sep 91 13:15:24 -0400
  4112. Newsgroups: comp.std.unix
  4113. From: "Bob Kitzberger @midnight" <rlk@telesoft.com>
  4114. Subject: Re: The Unimplemented/Invented/Premature/Failed Standards Chart, 9/6/91
  4115. Message-Id: <1991Sep12.170935.7825@uunet.uu.net>
  4116. Originator: sef@uunet.UU.NET
  4117. Sender: UseNet News <usenet@uunet.uu.net>
  4118. Nntp-Posting-Host: uunet.uu.net
  4119. X-Submissions: std-unix@uunet.uu.net
  4120. Organization: TeleSoft, San Diego, CA, USA
  4121. References: <1991Sep7.033214.7759@uunet.uu.net>
  4122. Date: Thu, 12 Sep 1991 03:17:43 GMT
  4123. Reply-To: std-unix@uunet.uu.net
  4124. To: std-unix@uunet.uu.net
  4125.  
  4126. Submitted-by: rlk@telesoft.uucp (Bob Kitzberger @midnight)
  4127.  
  4128. Shouldn't you put a big 'ol "IMHO" surrounding this table?  
  4129.  
  4130. >``Failed'' means that many or most of the intended users of the standard
  4131. >actively avoid using it. 
  4132.  
  4133. Hmm.. a new definition of failed that I was previously unaware of.  I 
  4134. would think a more truthful header would be "Resisted".
  4135.  
  4136. >Name        Unimpl.    Invent.    Premature        Failed
  4137. >Ada        yes    yes    yes (OOP)        yes (c2ada)
  4138.  
  4139. Hmm.. Ada is being used to develop the Space Station software, the
  4140. new Air Traffic Control system, and several other of the worlds' largest
  4141. and most ambitious projects.  If this is failure, give me more of it!
  4142.  
  4143. And as far as 'premature' goes, sorry.  Full OOP was certainly anything but
  4144. mature when Ada was conceived, and still cannot be considered mature.  The
  4145. partial OOP that Ada gives you (i.e. encapsulation, derived types, 
  4146. separation of specification and implementation, etc.) was mature at the
  4147. time that the standard was conceived, and has been succesful in many
  4148. projects.  Inheritance is still unproven in large systems -- so how can
  4149. an immature technology (OOP) indicate how a mature technology was
  4150. premature?  i.e. was OOP mature enough in the late 70's to supercede the
  4151. proven methods used in Ada?
  4152.  
  4153. Careful, your hidden agenda is showing.
  4154.  
  4155.     .Bob.
  4156. -- 
  4157. Bob Kitzberger               Internet : rlk@telesoft.com
  4158. TeleSoft                     uucp     : ...!ucsd.ucsd.edu!telesoft!rlk
  4159. 5959 Cornerstone Court West, San Diego, CA  92121-9891  (619) 457-2700 x163
  4160. ------------------------------------------------------------------------------
  4161. package body Disclaimer is separate;
  4162.  
  4163. [ Accepted as a rebuttal only to Dan's original post.  Please take any
  4164.   discussion about OOP, Ada, or inheiritance elsewhere -- mod ]
  4165.  
  4166. Volume-Number: Volume 25, Number 40
  4167.  
  4168. From std-unix-request@uunet.uu.net  Fri Sep 13 14:05:56 1991
  4169. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  4170.     (5.61/UUNET-uucp-primary) id AA09658; Fri, 13 Sep 91 14:05:56 -0400
  4171. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4172.     (5.61/UUNET-internet-primary) id AA02257; Fri, 13 Sep 91 14:05:53 -0400
  4173. Newsgroups: comp.std.unix
  4174. From: Geoff Clare <gwc@root.co.uk>
  4175. Subject: Re: Error detection
  4176. Message-Id: <1991Sep13.175900.6393@uunet.uu.net>
  4177. Originator: sef@uunet.UU.NET
  4178. Sender: UseNet News <usenet@uunet.uu.net>
  4179. Nntp-Posting-Host: uunet.uu.net
  4180. X-Submissions: std-unix@uunet.uu.net
  4181. Organization: UniSoft Ltd., London, England
  4182. References: <1991Sep4.201137.13461@uunet.uu.net> <1991Sep9.182603.20214@uunet.uu.net> <1991Sep9.231248.7509@uunet.uu.net> <1991Sep11.173345.6142@uunet.uu.net> <1991Sep11.214842.20864@uunet.uu.net>
  4183. Date: Fri, 13 Sep 1991 13:50:47 GMT
  4184. Reply-To: std-unix@uunet.uu.net
  4185. To: std-unix@uunet.uu.net
  4186.  
  4187. Submitted-by: gwc@root.co.uk (Geoff Clare)
  4188.  
  4189. henry@zoo.toronto.edu (Henry Spencer) writes:
  4190.  
  4191. >>A legal call to getc() on a stream with a non-readable file descriptor
  4192. >>will always result in getc() trying to read data into the buffer...
  4193.  
  4194. >Please cite chapter and verse of ANSI C or POSIX.1 justifying this.
  4195. >This is the heart of the problem:  the assertion assumes a specific
  4196. >implementation technique that is not required by the standards.
  4197.  
  4198. It follows directly from the requirement on applications to call fflush()
  4199. or a file positioning function when switching from output to input.  I
  4200. gave the derivation in my previous article.  I'm sure nobody really needs
  4201. me to quote the relevant text from ANSI 'C', but here goes anyway:
  4202.  
  4203. 4.9.5.3 "The fopen function", paragraph 5, second sentence:
  4204.  
  4205.     However, output may not be directly followed by input without an
  4206.     intervening call to the fflush function or to a file positioning
  4207.     function (fseek, fsetpos, or rewind), and input may not be
  4208.     directly followed by output without an intervening call to a file
  4209.     positioning function, unless the input operation encounters
  4210.     end-of-file.
  4211.  
  4212. Rather than debating whether this justifies the assertion as it stands,
  4213. I would urge people who participate in POSIX.3.1 ballots to request
  4214. that the assertion be changed to clarify that there must be no data
  4215. in the buffer when the call to getc() is made.
  4216. -- 
  4217. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  4218. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  4219.  
  4220.  
  4221. Volume-Number: Volume 25, Number 41
  4222.  
  4223. From std-unix-request@uunet.uu.net  Fri Sep 13 14:05:59 1991
  4224. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  4225.     (5.61/UUNET-uucp-primary) id AA09710; Fri, 13 Sep 91 14:05:59 -0400
  4226. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4227.     (5.61/UUNET-internet-primary) id AA02276; Fri, 13 Sep 91 14:05:56 -0400
  4228. Newsgroups: comp.std.unix
  4229. From: Donald Lewine <lewine@cheshirecat.webo.dg.com>
  4230. Subject: Re: Error detection
  4231. Message-Id: <1991Sep13.180004.6500@uunet.uu.net>
  4232. Originator: sef@uunet.UU.NET
  4233. Sender: UseNet News <usenet@uunet.uu.net>
  4234. Nntp-Posting-Host: uunet.uu.net
  4235. Reply-To: lewine@cheshirecat.webo.dg.com
  4236. X-Submissions: std-unix@uunet.uu.net
  4237. Organization: Data General Corporation
  4238. References: <1991Sep4.201137.13461@uunet.uu.net> <1991Sep9.182603.20214@uunet.uu.net> <1991Sep9.231248.7509@uunet.uu.net> <1991Sep11.173345.6142@uunet.uu.net> <1991Sep11.173345.6142@uunet.uu.net>,
  4239. Date: Fri, 13 Sep 1991 14:30:08 GMT
  4240. To: std-unix@uunet.uu.net
  4241.  
  4242. Submitted-by: lewine@cheshirecat.webo.dg.com (Donald Lewine)
  4243.  
  4244. In article <1991Sep11.173345.6142@uunet.uu.net>, gwc@root.co.uk (Geoff Clare) writes:
  4245. |> A legal call to getc() on a stream with a non-readable file descriptor
  4246. |> will always result in getc() trying to read data into the buffer.
  4247.  
  4248. This assertion is just plain false.  Consider:
  4249.     ungetc('X',stream);
  4250.     getc(stream);
  4251. On most systems the call to getc() will not result in any access
  4252. to the file-descriptor.
  4253.  
  4254. In fact, my reading of ANSI C 4.9.7.11 leads me to believe that the
  4255. call to getc() MUST succeed even if the stream has a non-readable
  4256. file descriptor since one character of push is guaranteed for all
  4257. streams.
  4258.  
  4259.  
  4260. --------------------------------------------------------------------
  4261. Donald A. Lewine                (508) 870-9008 Voice
  4262. Data General Corporation        (508) 366-0750 FAX
  4263. 4400 Computer Drive. MS D112A
  4264. Westboro, MA 01580  U.S.A.
  4265.  
  4266. uucp: uunet!dg!lewine   Internet: lewine@cheshirecat.webo.dg.com
  4267.  
  4268.  
  4269. Volume-Number: Volume 25, Number 42
  4270.  
  4271. From std-unix-request@uunet.uu.net  Fri Sep 13 17:10:57 1991
  4272. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  4273.     (5.61/UUNET-uucp-primary) id AA24956; Fri, 13 Sep 91 17:10:57 -0400
  4274. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4275.     (5.61/UUNET-internet-primary) id AA25621; Fri, 13 Sep 91 17:10:55 -0400
  4276. Newsgroups: comp.std.unix
  4277. From: Doug Gwyn <gwyn@smoke.brl.mil>
  4278. Subject: Re: Error detection
  4279. Message-Id: <1991Sep13.210522.16426@uunet.uu.net>
  4280. Originator: sef@uunet.UU.NET
  4281. Sender: UseNet News <usenet@uunet.uu.net>
  4282. Nntp-Posting-Host: uunet.uu.net
  4283. X-Submissions: std-unix@uunet.uu.net
  4284. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  4285. References: <1991Sep11.173345.6142@uunet.uu.net> <1991Sep11.214842.20864@uunet.uu.net> <1991Sep13.175900.6393@uunet.uu.net>
  4286. Date: Fri, 13 Sep 1991 19:57:54 GMT
  4287. Reply-To: std-unix@uunet.uu.net
  4288. To: std-unix@uunet.uu.net
  4289.  
  4290. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  4291.  
  4292. In article <1991Sep13.175900.6393@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  4293. >Submitted-by: gwc@root.co.uk (Geoff Clare)
  4294. >It follows directly from the requirement on applications to call fflush()
  4295. >or a file positioning function when switching from output to input.
  4296.  
  4297. No, this is totally wrong as a "justification" for the error test.
  4298. POSIX.1 does not require that SPECIFIC errno value, nor indeed ANY
  4299. errno value, under the circumstances in question.  You're arguing
  4300. for an additional requirement in POSIX.3.1 to test for behavior
  4301. that is NOT REQUIRED of a POSIX.1-conforming implementation, just
  4302. as Henry said.
  4303.  
  4304.  
  4305. Volume-Number: Volume 25, Number 43
  4306.  
  4307. From std-unix-request@uunet.uu.net  Sun Sep 15 23:09:23 1991
  4308. Received: from relay1.UU.NET by uunet.uu.net with SMTP 
  4309.     (5.61/UUNET-uucp-primary) id AA10451; Sun, 15 Sep 91 23:09:23 -0400
  4310. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4311.     (5.61/UUNET-internet-primary) id AA27591; Sun, 15 Sep 91 23:09:18 -0400
  4312. Newsgroups: comp.std.unix
  4313. From: Jim Haynes <haynes@cats.ucsc.edu>
  4314. Subject: Tape drive handling
  4315. Message-Id: <1991Sep16.030350.24426@uunet.uu.net>
  4316. Originator: sef@uunet.UU.NET
  4317. Sender: UseNet News <usenet@uunet.uu.net>
  4318. Nntp-Posting-Host: uunet.uu.net
  4319. X-Submissions: std-unix@uunet.uu.net
  4320. Organization: University of California, Santa Cruz
  4321. Date: Sun, 15 Sep 1991 05:16:06 GMT
  4322. Reply-To: std-unix@uunet.uu.net
  4323. To: std-unix@uunet.uu.net
  4324.  
  4325. Submitted-by: haynes@cats.UCSC.EDU (Jim Haynes)
  4326.  
  4327. I'm not up on what POSIX addresses, but maybe someone who is can tell
  4328. me if it addresses this point.
  4329.  
  4330. Way back when we put hacks in the mag tape kernel driver to introduce
  4331. the concept of "assigning" the tape drive to a UID for the duration
  4332. of use.  When the drive is assigned no other user, not even root, can
  4333. fiddle with it.  It gets deassigned by being taken offline.
  4334.  
  4335. Note that chown-ing the tape devices is not sufficient because the
  4336. super user can scribble on some other user's tape.  Exclusive open
  4337. is not sufficient protection because the tape might be sitting there
  4338. at load point with a write ring in it, but not open, so anybody else
  4339. can open it.
  4340. -- 
  4341. haynes@cats.ucsc.edu
  4342. haynes@ucsccats.bitnet
  4343.  
  4344. "Any clod can have the facts, but having opinions is an Art."
  4345.         Charles McCabe, San Francisco Chronicle
  4346.  
  4347. [ Does *anyone* address this point?  As far as I know, POSIX says nothing
  4348.   about it.  What would errno be set to?  EBUSY would be right, but it
  4349.   means something else -- although I suppose it could be overloaded,
  4350.   since EBUSY is currently meaningless for open().  -- mod ]
  4351.  
  4352. Volume-Number: Volume 25, Number 44
  4353.  
  4354. From std-unix-request@uunet.UU.NET  Mon Sep 16 18:13:09 1991
  4355. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  4356.     (5.61/UUNET-uucp-primary) id AA12585; Mon, 16 Sep 91 18:13:09 -0400
  4357. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4358.     (5.61/UUNET-internet-primary) id AA12962; Mon, 16 Sep 91 18:13:06 -0400
  4359. Newsgroups: comp.std.unix
  4360. From: Henry Spencer <henry@zoo.toronto.edu>
  4361. Subject: Re: Error detection
  4362. Message-Id: <1991Sep16.220726.7314@uunet.uu.net>
  4363. Originator: sef@uunet.UU.NET
  4364. Sender: UseNet News <usenet@uunet.UU.NET>
  4365. Nntp-Posting-Host: uunet.uu.net
  4366. X-Submissions: std-unix@uunet.uu.net
  4367. Organization: U of Toronto Zoology
  4368. References: <1991Sep11.173345.6142@uunet.uu.net> <1991Sep11.214842.20864@uunet.uu.net> <1991Sep13.175900.6393@uunet.uu.net>
  4369. Date: Mon, 16 Sep 1991 20:22:53 GMT
  4370. Reply-To: std-unix@uunet.UU.NET
  4371. To: std-unix@uunet.UU.NET
  4372.  
  4373. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  4374.  
  4375. In article <1991Sep13.175900.6393@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  4376. >>>A legal call to getc() on a stream with a non-readable file descriptor
  4377. >>>will always result in getc() trying to read data into the buffer...
  4378. >
  4379. >>Please cite chapter and verse of ANSI C or POSIX.1 justifying this...
  4380. >
  4381. >It follows directly from the requirement on applications to call fflush()
  4382. >or a file positioning function when switching from output to input...
  4383. >I would urge people who participate in POSIX.3.1 ballots to request
  4384. >that the assertion be changed to clarify that there must be no data
  4385. >in the buffer when the call to getc() is made.
  4386.  
  4387. Please explain the derivation in more detail.  The requirement you cite
  4388. says that it is improper for an application to apply getc() to a stream
  4389. opened for output only, without at least doing an fflush() first.  However,
  4390. this says nothing about what getc() will then do.  For example, fflush()
  4391. imposes no requirement that the data in the buffer be marked invalid,
  4392. only that it be flushed out to disk.  How do you propose to establish
  4393. that there is "no data in the buffer"?  What does this *mean*?  Neither
  4394. ANSI C nor POSIX.1 even defines such a concept, that I know of.
  4395.  
  4396. Your whole argument appears to be phrased in terms of such underlying
  4397. assumptions about how the i/o library works... assumptions that cannot
  4398. be justified based on the standards themselves.  To return to the original
  4399. point, doing a getc() in these circumstances is an improper operation, but
  4400. none of the standards makes any promises about the nature of the result.
  4401. In particular, there is no guarantee of an orderly return with an error
  4402. code.
  4403. -- 
  4404. Programming graphics in X is like       | Henry Spencer @ U of Toronto Zoology
  4405. finding sqrt(pi) using Roman numerals.  |  henry@zoo.toronto.edu  utzoo!henry
  4406.  
  4407.  
  4408. Volume-Number: Volume 25, Number 45
  4409.  
  4410. From std-unix-request@uunet.UU.NET  Mon Sep 16 19:36:10 1991
  4411. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  4412.     (5.61/UUNET-uucp-primary) id AA07288; Mon, 16 Sep 91 19:36:10 -0400
  4413. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4414.     (5.61/UUNET-internet-primary) id AA04217; Mon, 16 Sep 91 19:36:06 -0400
  4415. Newsgroups: comp.std.unix
  4416. From: Doug Gwyn <gwyn@smoke.brl.mil>
  4417. Subject: Re: Tape drive handling
  4418. Message-Id: <1991Sep16.233111.12300@uunet.uu.net>
  4419. Originator: sef@uunet.UU.NET
  4420. Sender: UseNet News <usenet@uunet.UU.NET>
  4421. Nntp-Posting-Host: uunet.uu.net
  4422. X-Submissions: std-unix@uunet.uu.net
  4423. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  4424. References: <1991Sep16.030350.24426@uunet.uu.net>
  4425. Date: Mon, 16 Sep 1991 22:34:16 GMT
  4426. Reply-To: std-unix@uunet.UU.NET
  4427. To: std-unix@uunet.UU.NET
  4428.  
  4429. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  4430.  
  4431. In article <1991Sep16.030350.24426@uunet.uu.net> haynes@cats.UCSC.EDU (Jim Haynes) writes:
  4432. >Way back when we put hacks in the mag tape kernel driver to introduce
  4433. >the concept of "assigning" the tape drive to a UID for the duration
  4434. >of use.  When the drive is assigned no other user, not even root, can
  4435. >fiddle with it.  It gets deassigned by being taken offline.
  4436. >Note that chown-ing the tape devices is not sufficient because the
  4437. >super user can scribble on some other user's tape.  Exclusive open
  4438. >is not sufficient protection because the tape might be sitting there
  4439. >at load point with a write ring in it, but not open, so anybody else
  4440. >can open it.
  4441. >[ Does *anyone* address this point?  As far as I know, POSIX says nothing
  4442. >  about it.  What would errno be set to?  EBUSY would be right, but it
  4443. >  means something else -- although I suppose it could be overloaded,
  4444. >  since EBUSY is currently meaningless for open().  -- mod ]
  4445.  
  4446. There is no need for a kernel-facility standard to specifically address
  4447. this, because (a) there is no established existing practice and (b) the
  4448. necessary kernel support for implementing user-mode solutions already
  4449. exists in the standard facilities.
  4450.  
  4451. Contrary to the claim made by Haynes, chown (by a device management
  4452. facility) is generally sufficient; protection from superuser actions
  4453. is not something to be attempted anyway.  A facility for managing such
  4454. resources can readily allocate all manner of file-like objects, not
  4455. juts tape drives.  Years ago I designed such a facility, but there has
  4456. not been enough demand for it in my environment to bother implementing
  4457. it.  The only tricky part was figuring out how to deallocate a resource
  4458. when the allocating user forgets and logs out.  (The solution was to
  4459. take care of it upon allocation attempt, which can figure out whether
  4460. or not the user is still logged in.  Allowance must be made for "daemon"
  4461. users, too, but really it's all quite straightforward.)
  4462.  
  4463. Volume-Number: Volume 25, Number 46
  4464.  
  4465. From std-unix-request@uunet.UU.NET  Tue Sep 17 16:47:41 1991
  4466. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  4467.     (5.61/UUNET-uucp-primary) id AA09620; Tue, 17 Sep 91 16:47:41 -0400
  4468. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4469.     (5.61/UUNET-internet-primary) id AA23190; Tue, 17 Sep 91 16:47:38 -0400
  4470. Newsgroups: comp.std.unix
  4471. From: Geoff Clare <gwc@root.co.uk>
  4472. Subject: Re: Error detection
  4473. Message-Id: <1991Sep17.203651.1126@uunet.uu.net>
  4474. Originator: sef@uunet.UU.NET
  4475. Sender: UseNet News <usenet@uunet.UU.NET>
  4476. Nntp-Posting-Host: uunet.uu.net
  4477. X-Submissions: std-unix@uunet.uu.net
  4478. Organization: UniSoft Ltd., London, England
  4479. References: <1991Sep11.173345.6142@uunet.uu.net> <1991Sep11.214842.20864@uunet.uu.net> <1991Sep13.175900.6393@uunet.uu.net> <1991Sep13.180004.6500@uunet.uu.net> <1991Sep13.210522.16426@uunet.uu.net>
  4480. Date: Tue, 17 Sep 1991 17:46:28 GMT
  4481. Reply-To: std-unix@uunet.UU.NET
  4482. To: std-unix@uunet.UU.NET
  4483.  
  4484. Submitted-by: gwc@root.co.uk (Geoff Clare)
  4485.  
  4486. In <1991Sep13.180004.6500@uunet.uu.net> lewine@cheshirecat.webo.dg.com (Donald Lewine) writes:
  4487.  
  4488. >This assertion is just plain false.  Consider:
  4489. >    ungetc('X',stream);
  4490. >    getc(stream);
  4491. >On most systems the call to getc() will not result in any access
  4492. >to the file-descriptor.
  4493.  
  4494. My apologies, I had overlooked the use of ungetc().  A condition relating
  4495. to this needs to be added to the POSIX.3.1 assertion.
  4496.  
  4497. In <1991Sep13.210522.16426@uunet.uu.net> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  4498.  
  4499. >In article <1991Sep13.175900.6393@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  4500. >>It follows directly from the requirement on applications to call fflush()
  4501. >>or a file positioning function when switching from output to input.
  4502.  
  4503. >No, this is totally wrong as a "justification" for the error test.
  4504. >POSIX.1 does not require that SPECIFIC errno value, nor indeed ANY
  4505. >errno value, under the circumstances in question.
  4506.  
  4507. It is the "circumstances in question" that are currently wrong, and that
  4508. I am trying to correct.  The circumstances in the test suite which
  4509. generated this thread were fp = fopen(file, "w"); getc(fp), which we
  4510. have established are incorrect.  They correspond to the POSIX.3.1 draft
  4511. 11 assertion, which has been changed in draft 12 to something closer
  4512. to what is needed, but still not quite right.
  4513.  
  4514. There is no doubt that an EBADF assertion is required in POSIX.3.1, the
  4515. only problem is what the precise conditions necessary to generate an
  4516. EBADF are.
  4517.  
  4518. >You're arguing
  4519. >for an additional requirement in POSIX.3.1 to test for behavior
  4520. >that is NOT REQUIRED of a POSIX.1-conforming implementation, just
  4521. >as Henry said.
  4522.  
  4523. OK, lets start from the beginning and try to come up with a correct
  4524. assertion.  POSIX.1-1990 states in 8.2.3.11:
  4525.  
  4526.     "If any of the functions above return an error indication, the
  4527.     value of errno shall be set to indicate the error condition.
  4528.     If that error condition is one that this part of ISO/IEC 9945
  4529.     specifies to be detected by one of the corresponding underlying
  4530.     functions, the value of errno shall be the same as the value
  4531.     specified for the underlying function."
  4532.  
  4533. One of the "functions above" is getc() (8.2.3.5), and the underlying
  4534. functions for getc() are read() and lseek().
  4535.  
  4536. The error condition we are interested in is an EBADF for read(),
  4537. which is described in 6.4.1.4:
  4538.  
  4539.     "[EBADF]  The fildes argument is not a valid file descriptor
  4540.           open for reading."
  4541.  
  4542. So, the relevant requirements of POSIX.1 on getc() are that if it
  4543. returns an error indication under circumstances where the file
  4544. descriptor addressed by the stream is not open for reading, then
  4545. getc() sets errno to EBADF.
  4546.  
  4547. Personally, I would have thought the obvious way to write a POSIX.3.1
  4548. assertion relating to this requirement would be to state exactly the
  4549. above (altered to fit POSIX.3's assertion writing rules, of course).
  4550. I.e. retain the condition on "if getc() returns an error indication".
  4551. However, POSIX.3.1 has instead attempted to state the conditions under
  4552. which getc() will definitely return an error indication, and so I will
  4553. attempt to give a corrected version of their assertion instead:
  4554.  
  4555.     When the stream pointer argument addresses a file descriptor
  4556.     that is not open for reading, and there are no data in the
  4557.     stream buffer, and there has been no previous call to ungetc()
  4558.     for the stream, then a call to getc() returns a value of EOF
  4559.     and sets errno to [EBADF].
  4560.  
  4561. A test for this assertion could be implemented as follows:
  4562.  
  4563.     fp = fdopen(creat(file, mode), "w");
  4564.     getc(fp);
  4565.  
  4566. which is exactly what I said, in my first article, that the test suite
  4567. should be changed to do.
  4568.  
  4569. All happy now?
  4570. -- 
  4571. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  4572. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  4573.  
  4574.  
  4575. Volume-Number: Volume 25, Number 47
  4576.  
  4577. From std-unix-request@uunet.UU.NET  Wed Sep 18 18:21:11 1991
  4578. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  4579.     (5.61/UUNET-uucp-primary) id AA16732; Wed, 18 Sep 91 18:21:11 -0400
  4580. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4581.     (5.61/UUNET-internet-primary) id AA16586; Wed, 18 Sep 91 18:21:05 -0400
  4582. Newsgroups: comp.std.unix
  4583. From: russell@ccu1.aukuni.ac.nz
  4584. Subject: Re: Tape drive handling
  4585. Message-Id: <1991Sep18.221426.2594@uunet.uu.net>
  4586. Originator: sef@uunet.UU.NET
  4587. Sender: UseNet News <usenet@uunet.UU.NET>
  4588. Nntp-Posting-Host: uunet.uu.net
  4589. X-Submissions: std-unix@uunet.uu.net
  4590. Organization: University of Auckland, New Zealand.
  4591. References: <1991Sep16.030350.24426@uunet.uu.net>
  4592. Date: Tue, 17 Sep 1991 23:06:43 GMT
  4593. Reply-To: std-unix@uunet.UU.NET
  4594. To: std-unix@uunet.UU.NET
  4595.  
  4596. Submitted-by: russell@ccu1.aukuni.ac.nz
  4597.  
  4598. gwyn@smoke.brl.mil (Doug Gwyn) writes:
  4599.  
  4600. >In article <1991Sep16.030350.24426@uunet.uu.net> haynes@cats.UCSC.EDU (Jim Haynes) writes:
  4601. >>Way back when we put hacks in the mag tape kernel driver to introduce
  4602. >>the concept of "assigning" the tape drive to a UID for the duration
  4603. >>of use.  When the drive is assigned no other user, not even root, can
  4604. >>fiddle with it.  It gets deassigned by being taken offline.
  4605. [ stuff deleted ]
  4606. >There is no need for a kernel-facility standard to specifically address
  4607. >this, because (a) there is no established existing practice and (b) the
  4608. >necessary kernel support for implementing user-mode solutions already
  4609. >exists in the standard facilities.
  4610.  
  4611. >Contrary to the claim made by Haynes, chown (by a device management
  4612. >facility) is generally sufficient; protection from superuser actions
  4613. >is not something to be attempted anyway.  A facility for managing such
  4614. [stuff deleted...]
  4615.  
  4616. I disagree Doug. The purpose of this sort of protection it to prevent
  4617. accidental overwriting of tapes. The fact that it is root doing the
  4618. overwriting is totally irrelevant, the result is the same. Loss of data.
  4619.  
  4620. On our system we have two 8mm tape drives with one character difference
  4621. in their names. It is trivially easy for an operator in a hurry to reference
  4622. the wrong drive and overwrite another tape. It is not difficult to
  4623. think up scenarios where the mistake will not be noticed and permanent 
  4624. data loss will result. This is why most other operating systems  have 
  4625. a mechanism for assigning a resource for the exclusive use of a particular
  4626. user.
  4627.  
  4628. Root needs a means of detaching the resource from a user if they forget,
  4629. or if their job hangs up, but apart from that root should just be another 
  4630. user with the same access privileges.
  4631.  
  4632. Cheers, Russell.
  4633. -- 
  4634. Russell Fulton, Computer Center, University of Auckland, New Zealand.
  4635. <rj_fulton@aukuni.ac.nz>
  4636.  
  4637.  
  4638.  
  4639. Volume-Number: Volume 25, Number 48
  4640.  
  4641. From std-unix-request@uunet.UU.NET  Wed Sep 18 18:21:13 1991
  4642. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  4643.     (5.61/UUNET-uucp-primary) id AA16740; Wed, 18 Sep 91 18:21:13 -0400
  4644. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4645.     (5.61/UUNET-internet-primary) id AA16616; Wed, 18 Sep 91 18:21:08 -0400
  4646. Newsgroups: comp.std.unix
  4647. From: Doug Gwyn <gwyn@smoke.brl.mil>
  4648. Subject: Re: Error detection
  4649. Message-Id: <1991Sep18.221531.2710@uunet.uu.net>
  4650. Originator: sef@uunet.UU.NET
  4651. Sender: UseNet News <usenet@uunet.UU.NET>
  4652. Nntp-Posting-Host: uunet.uu.net
  4653. X-Submissions: std-unix@uunet.uu.net
  4654. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  4655. References: <1991Sep13.180004.6500@uunet.uu.net> <1991Sep13.210522.16426@uunet.uu.net> <1991Sep17.203651.1126@uunet.uu.net>
  4656. Date: Wed, 18 Sep 1991 09:38:55 GMT
  4657. Reply-To: std-unix@uunet.UU.NET
  4658. To: std-unix@uunet.UU.NET
  4659.  
  4660. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  4661.  
  4662. In article <1991Sep17.203651.1126@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  4663. >There is no doubt that an EBADF assertion is required in POSIX.3.1, the
  4664. >only problem is what the precise conditions necessary to generate an
  4665. >EBADF are.
  4666.  
  4667. >    "If any of the functions above return an error indication, ...
  4668.  
  4669. BUT!  There is, as Henry and I keep explaining, no requirement that
  4670. getc() return an error condition even under such "obviously wrong"
  4671. conditions as your example test-suite code.  The C standard does not
  4672. specify what happens if the FILE* fed to getc() is not an input stream,
  4673. and getc() is NOT flagged with a "+" in ISO/IEC 9945-1:1990(E), where
  4674. the only additional constraint has to do with the POSIX-specific atime.
  4675. 9945-1 specifically exempts getc() from having to be implemented in
  4676. terms of the "underlying functions" read() and lseek().  The clause
  4677. on error reporting that you cited requires ONLY that IF an error (of
  4678. any sort) is detected, errno be set; and if THAT error is one that
  4679. 9945-1 specifies shall be detected by one of the underlying functions,
  4680. THEN the 9945-1-specified errno value shall be the one used in the
  4681. error report.  However, I would expect that getc() is free to notice
  4682. that the input stream (FILE structure) is not set for reading, i.e.
  4683. some flag member of the FILE structure does not have the (_IORONLY|
  4684. _IORANDW) bits set, and thus never even attempt the equivalent of
  4685. read(), in which case getc() is allowed to report the error by any
  4686. errno value its little heart desires; it is also NOT REQUIRED to
  4687. attempt to detect this error at all!  It is a clear case of
  4688. "undefined behavior" (in C Standard parlance), and intentionally so.
  4689. Attempting to test for what happens in a case of undefined behavior
  4690. is folly; such a test program could do literally ANYthing in a
  4691. standard conforming environment.
  4692.  
  4693. The reason this whole question came up in the first place is that an
  4694. EFFICIENT, traditional implementation of getc() is NOT going to be
  4695. able to reliably detect that it is being used in an undefined manner.
  4696. The standards deliberately do not require it to.  You do nobody a
  4697. favor by adding your own implementation model on top of what is
  4698. actually required, then test in terms of your model.
  4699.  
  4700. >However, POSIX.3.1 has instead attempted to state the conditions under
  4701. >which getc() will definitely return an error indication, and so I will
  4702. >attempt to give a corrected version of their assertion instead:
  4703. >    When the stream pointer argument addresses a file descriptor
  4704. >    that is not open for reading, and there are no data in the
  4705. >    stream buffer, and there has been no previous call to ungetc()
  4706. >    for the stream, then a call to getc() returns a value of EOF
  4707. >    and sets errno to [EBADF].
  4708.  
  4709. That is HORRIBLE!  Why would POSIX.3.1 be ADDING CONSTRAINTS TO
  4710. POSIX.1?  That is NOT their job, and in this case it is being badly
  4711. botched even if it WERE their job.  By golly, POSIX.3 is supposed
  4712. to be preparing test procedures for verifying conformance with the
  4713. standards AS PUBLISHED by the other 1003 subgroups, allowing ANY
  4714. (other-)standard conforming method of implementation, not inventing
  4715. new implementation constraints.
  4716.  
  4717. >All happy now?
  4718.  
  4719. Not on your tintype.
  4720.  
  4721.  
  4722. Volume-Number: Volume 25, Number 49
  4723.  
  4724. From std-unix-request@uunet.UU.NET  Wed Sep 18 18:21:20 1991
  4725. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  4726.     (5.61/UUNET-uucp-primary) id AA16783; Wed, 18 Sep 91 18:21:20 -0400
  4727. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4728.     (5.61/UUNET-internet-primary) id AA16636; Wed, 18 Sep 91 18:21:15 -0400
  4729. Newsgroups: comp.std.unix
  4730. From: Henry Spencer <henry@zoo.toronto.edu>
  4731. Subject: Re: Error detection
  4732. Message-Id: <1991Sep18.221629.2789@uunet.uu.net>
  4733. Originator: sef@uunet.UU.NET
  4734. Sender: UseNet News <usenet@uunet.UU.NET>
  4735. Nntp-Posting-Host: uunet.uu.net
  4736. X-Submissions: std-unix@uunet.uu.net
  4737. Organization: U of Toronto Zoology
  4738. References: <1991Sep11.173345.6142@uunet.uu.net> <1991Sep11.214842.20864@uunet.uu.net> <1991Sep13.175900.6393@uunet.uu.net> <1991Sep13.180004.6500@uunet.uu.net> <1991Sep13.210522.16426@uunet.uu.net> <1991Sep17.203651.1126@uunet.uu.net>
  4739. Date: Wed, 18 Sep 1991 18:38:35 GMT
  4740. Reply-To: std-unix@uunet.UU.NET
  4741. To: std-unix@uunet.UU.NET
  4742.  
  4743. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  4744.  
  4745. In article <1991Sep17.203651.1126@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  4746. >>No, this is totally wrong as a "justification" for the error test.
  4747. >>POSIX.1 does not require that SPECIFIC errno value, nor indeed ANY
  4748. >>errno value, under the circumstances in question.
  4749. >
  4750. >There is no doubt that an EBADF assertion is required in POSIX.3.1, the
  4751. >only problem is what the precise conditions necessary to generate an
  4752. >EBADF are.
  4753.  
  4754. Geoff, you still haven't addressed the underlying problem:  where on Earth
  4755. did POSIX.3.1 *get* this requirement?  They certainly didn't get it from
  4756. POSIX.1, which makes no such demand.  Why are they trying to rewrite the
  4757. standards they are supposed to be testing?  *Why* is an EBADF assertion
  4758. required on the result of getc()?
  4759.  
  4760. >Personally, I would have thought the obvious way to write a POSIX.3.1
  4761. >assertion relating to this requirement would be to state exactly the
  4762. >above (altered to fit POSIX.3's assertion writing rules, of course).
  4763. >I.e. retain the condition on "if getc() returns an error indication".
  4764. >However, POSIX.3.1 has instead attempted to state the conditions under
  4765. >which getc() will definitely return an error indication...
  4766.  
  4767. This is precisely the basic error here:  there is *no way to do that*
  4768. based on POSIX.1.  None.  POSIX.1 deliberately left it unspecified.
  4769. POSIX.3.1 cannot require it without implicitly rewriting POSIX.1, which
  4770. it is not supposed to be doing.
  4771. -- 
  4772. Programming graphics in X is like       | Henry Spencer @ U of Toronto Zoology
  4773. finding sqrt(pi) using Roman numerals.  |  henry@zoo.toronto.edu  utzoo!henry
  4774.  
  4775.  
  4776. Volume-Number: Volume 25, Number 50
  4777.  
  4778. From std-unix-request@uunet.UU.NET  Fri Sep 20 15:06:32 1991
  4779. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  4780.     (5.61/UUNET-uucp-primary) id AA05173; Fri, 20 Sep 91 15:06:32 -0400
  4781. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4782.     (5.61/UUNET-internet-primary) id AA05400; Fri, 20 Sep 91 15:06:29 -0400
  4783. Newsgroups: comp.std.unix
  4784. From: Henry Spencer <henry@zoo.toronto.edu>
  4785. Subject: Re: Tape drive handling
  4786. Message-Id: <1991Sep20.185855.14912@uunet.uu.net>
  4787. Followup-To: comp.unix.admin
  4788. Originator: sef@uunet.UU.NET
  4789. Sender: UseNet News <usenet@uunet.UU.NET>
  4790. Nntp-Posting-Host: uunet.uu.net
  4791. X-Submissions: std-unix@uunet.uu.net
  4792. Organization: U of Toronto Zoology
  4793. References: <1991Sep16.030350.24426@uunet.uu.net> <1991Sep18.221426.2594@uunet.uu.net>
  4794. Date: Thu, 19 Sep 1991 01:08:10 GMT
  4795. Reply-To: std-unix@uunet.UU.NET
  4796. To: std-unix@uunet.UU.NET
  4797.  
  4798. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  4799.  
  4800. In article <1991Sep18.221426.2594@uunet.uu.net> russell@ccu1.aukuni.ac.nz writes:
  4801. >>... chown (by a device management
  4802. >>facility) is generally sufficient; protection from superuser actions
  4803. >>is not something to be attempted anyway...
  4804. >
  4805. >I disagree Doug. The purpose of this sort of protection it to prevent
  4806. >accidental overwriting of tapes. The fact that it is root doing the
  4807. >overwriting is totally irrelevant...
  4808. >On our system we have two 8mm tape drives with one character difference
  4809. >in their names. It is trivially easy for an operator in a hurry to reference
  4810. >the wrong drive and overwrite another tape...
  4811.  
  4812. Why do you let your operators run as root?  That's a very dangerous thing
  4813. to do.  All the more so because it sounds like you're letting them run
  4814. shell commands, rather than using an operator-friendly :-) shell program
  4815. to provide an interface where a one-character error isn't disastrous.
  4816.  
  4817. I'm afraid that what we have here is one example of a more general syndrome:
  4818. people who routinely do all manner of things as root and then complain
  4819. because they aren't protected from the consequences of mistakes.  The whole
  4820. idea of running as root is to remove most of the routine protections, to
  4821. permit emergency surgery and suchlike.  *Running as root is dangerous.*
  4822. *It should not be done routinely.*
  4823.  
  4824. Rather than reinventing the Unix protection system, why not use the one
  4825. that already exists?  Run such things as a normal user, reserve root for
  4826. emergencies, and the problem goes away.
  4827. -- 
  4828. Programming graphics in X is like       | Henry Spencer @ U of Toronto Zoology
  4829. finding sqrt(pi) using Roman numerals.  |  henry@zoo.toronto.edu  utzoo!henry
  4830.  
  4831. [ Note the Followup-To: line if you want to continue in this direction -- mod ]
  4832.  
  4833. Volume-Number: Volume 25, Number 51
  4834.  
  4835. From std-unix-request@uunet.UU.NET  Fri Sep 20 15:06:40 1991
  4836. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  4837.     (5.61/UUNET-uucp-primary) id AA05270; Fri, 20 Sep 91 15:06:40 -0400
  4838. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4839.     (5.61/UUNET-internet-primary) id AA05481; Fri, 20 Sep 91 15:06:38 -0400
  4840. Xref: kithrup comp.std.unix:368 comp.unix.large:147
  4841. Newsgroups: comp.std.unix,comp.unix.large
  4842. From: Mark Wunderlich <wunder@ssd.intel.com>
  4843. Subject: Archiving large files
  4844. Message-Id: <1991Sep20.190054.15052@uunet.uu.net>
  4845. Followup-To: comp.unix.large
  4846. Originator: sef@uunet.UU.NET
  4847. Sender: UseNet News <usenet@uunet.UU.NET>
  4848. Nntp-Posting-Host: uunet.uu.net
  4849. Reply-To: Mark Wunderlich <wunder@ssd.intel.com>
  4850. X-Submissions: std-unix@uunet.uu.net
  4851. Organization: Supercomputer Systems Divison, Intel Corp.
  4852. Date: Thu, 19 Sep 1991 17:35:38 GMT
  4853. To: std-unix@uunet.UU.NET
  4854.  
  4855. Submitted-by: wunder@ssd.intel.com (Mark Wunderlich)
  4856.  
  4857. Archiving large files >2.14GBytes.  
  4858.  
  4859. Having noticed that classic TAR has this file size limit (using V3.2)
  4860. I am interested in how other administrators are backing up files of
  4861. this size.  Has a modified version of TAR been created in V4 that handles
  4862. larger files?  Knowing that TAR is probably not the best archive utility
  4863. to be using maybe one of you out there can share with me your large file
  4864. archiving success stories?
  4865.  
  4866. Does anyone know if POSIX has a definition for large file archiving?
  4867.  
  4868. Thanks --- wunder
  4869.  
  4870. [ Note the Followup-To: line in this post, as well.  Please feel free
  4871.   to discuss it here, but the topic is marginal.  -- mod ]
  4872.  
  4873. Volume-Number: Volume 25, Number 52
  4874.  
  4875. From std-unix-request@uunet.UU.NET  Fri Sep 20 15:06:44 1991
  4876. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  4877.     (5.61/UUNET-uucp-primary) id AA05285; Fri, 20 Sep 91 15:06:44 -0400
  4878. Received: from kithrup.com by relay1.UU.NET with SMTP 
  4879.     (5.61/UUNET-internet-primary) id AA05497; Fri, 20 Sep 91 15:06:40 -0400
  4880. Newsgroups: comp.std.unix
  4881. From: Geoff Clare <gwc@root.co.uk>
  4882. Subject: Re: Error detection
  4883. Message-Id: <1991Sep20.190149.15165@uunet.uu.net>
  4884. Originator: sef@uunet.UU.NET
  4885. Sender: UseNet News <usenet@uunet.UU.NET>
  4886. Nntp-Posting-Host: uunet.uu.net
  4887. X-Submissions: std-unix@uunet.uu.net
  4888. Organization: UniSoft Ltd., London, England
  4889. References: <1991Sep13.180004.6500@uunet.uu.net> <1991Sep13.210522.16426@uunet.uu.net> <1991Sep17.203651.1126@uunet.uu.net> <1991Sep18.221629.2789@uunet.uu.net> <1991Sep18.221531.2710@uunet.uu.net>
  4890. Date: Fri, 20 Sep 1991 14:55:00 GMT
  4891. Reply-To: std-unix@uunet.UU.NET
  4892. To: std-unix@uunet.UU.NET
  4893.  
  4894. Submitted-by: gwc@root.co.uk (Geoff Clare)
  4895.  
  4896. henry@zoo.toronto.edu (Henry Spencer) writes:
  4897.  
  4898. >>There is no doubt that an EBADF assertion is required in POSIX.3.1, the
  4899. >>only problem is what the precise conditions necessary to generate an
  4900. >>EBADF are.
  4901.  
  4902. >Geoff, you still haven't addressed the underlying problem:  where on Earth
  4903. >did POSIX.3.1 *get* this requirement?  They certainly didn't get it from
  4904. >POSIX.1, which makes no such demand.  Why are they trying to rewrite the
  4905. >standards they are supposed to be testing?  *Why* is an EBADF assertion
  4906. >required on the result of getc()?
  4907.  
  4908. I thought I had given a pretty clear account of where the requirement
  4909. comes from in my previous article.  Here it is again:
  4910.  
  4911. |POSIX.1-1990 states in 8.2.3.11:
  4912. |
  4913. |    "If any of the functions above return an error indication, the
  4914. |    value of errno shall be set to indicate the error condition.
  4915. |    If that error condition is one that this part of ISO/IEC 9945
  4916. |    specifies to be detected by one of the corresponding underlying
  4917. |    functions, the value of errno shall be the same as the value
  4918. |    specified for the underlying function."
  4919. |
  4920. |One of the "functions above" is getc() (8.2.3.5), and the underlying
  4921. |functions for getc() are read() and lseek().
  4922. |
  4923. |The error condition we are interested in is an EBADF for read(),
  4924. |which is described in 6.4.1.4:
  4925. |
  4926. |    "[EBADF]  The fildes argument is not a valid file descriptor
  4927. |          open for reading."
  4928. |
  4929. |So, the relevant requirements of POSIX.1 on getc() are that if it
  4930. |returns an error indication under circumstances where the file
  4931. |descriptor addressed by the stream is not open for reading, then
  4932. |getc() sets errno to EBADF.
  4933.  
  4934. Every statement in POSIX.1 which makes a requirement on the implementation
  4935. must have an assertion in POSIX.3.1 relating to it.  If there were no
  4936. assertion relating to an EBADF error from getc() then the POSIX.1 text
  4937. quoted above would not be completely covered by POSIX.3.1.
  4938.  
  4939. The requirement is for *an* assertion relating to an EBADF error from
  4940. getc().  The existing assertion doesn't fit the requirements.  I am
  4941. trying to come up with one that does.
  4942.  
  4943. >>Personally, I would have thought the obvious way to write a POSIX.3.1
  4944. >>assertion relating to this requirement would be to state exactly the
  4945. >>above (altered to fit POSIX.3's assertion writing rules, of course).
  4946. >>I.e. retain the condition on "if getc() returns an error indication".
  4947. >>However, POSIX.3.1 has instead attempted to state the conditions under
  4948. >>which getc() will definitely return an error indication...
  4949.  
  4950. >This is precisely the basic error here:  there is *no way to do that*
  4951. >based on POSIX.1.  None.  POSIX.1 deliberately left it unspecified.
  4952. >POSIX.3.1 cannot require it without implicitly rewriting POSIX.1, which
  4953. >it is not supposed to be doing.
  4954.  
  4955. I agree.  I was on a hiding to nothing trying to defend the existing
  4956. assertion, or trying to come up with a corrected version in the same
  4957. vein.  Instead I will propose an assertion written "the obvious way",
  4958. as I said above.
  4959.  
  4960. gwyn@smoke.brl.mil (Doug Gwyn) writes:
  4961.  
  4962. >>There is no doubt that an EBADF assertion is required in POSIX.3.1, the
  4963. >>only problem is what the precise conditions necessary to generate an
  4964. >>EBADF are.
  4965.  
  4966. >>    "If any of the functions above return an error indication, ...
  4967.  
  4968. >BUT!  There is, as Henry and I keep explaining, no requirement that
  4969. >getc() return an error condition even under such "obviously wrong"
  4970. >conditions as your example test-suite code.  The C standard does not
  4971. >specify what happens if the FILE* fed to getc() is not an input stream,
  4972.  
  4973. Good point.  The new assertion will need to take account of this.
  4974.  
  4975. >and getc() is NOT flagged with a "+" in ISO/IEC 9945-1:1990(E), where
  4976. >the only additional constraint has to do with the POSIX-specific atime.
  4977. >9945-1 specifically exempts getc() from having to be implemented in
  4978. >terms of the "underlying functions" read() and lseek().
  4979.  
  4980. I am not aware of any such exemption.  Please give a pointer to the
  4981. relevant text in POSIX.1.  If this text exists, it contradicts
  4982. 8.2.3.5 which states that the underlying functions for getc() are
  4983. read() and lseek(), so it would require an official interpretation
  4984. to decide which is right.
  4985.  
  4986. >The clause
  4987. >on error reporting that you cited requires ONLY that IF an error (of
  4988. >any sort) is detected, errno be set; and if THAT error is one that
  4989. >9945-1 specifies shall be detected by one of the underlying functions,
  4990. >THEN the 9945-1-specified errno value shall be the one used in the
  4991. >error report.  However, I would expect that getc() is free to notice
  4992. >that the input stream (FILE structure) is not set for reading, i.e.
  4993. >some flag member of the FILE structure does not have the (_IORONLY|
  4994. >_IORANDW) bits set, and thus never even attempt the equivalent of
  4995. >read(), in which case getc() is allowed to report the error by any
  4996. >errno value its little heart desires; it is also NOT REQUIRED to
  4997. >attempt to detect this error at all!  It is a clear case of
  4998. >"undefined behavior" (in C Standard parlance), and intentionally so.
  4999. >Attempting to test for what happens in a case of undefined behavior
  5000. >is folly; such a test program could do literally ANYthing in a
  5001. >standard conforming environment.
  5002.  
  5003. I agree.  My proposed new assertion will avoid this by specifying an
  5004. input stream.
  5005.  
  5006. >The reason this whole question came up in the first place is that an
  5007. >EFFICIENT, traditional implementation of getc() is NOT going to be
  5008. >able to reliably detect that it is being used in an undefined manner.
  5009. >The standards deliberately do not require it to.  You do nobody a
  5010. >favor by adding your own implementation model on top of what is
  5011. >actually required, then test in terms of your model.
  5012.  
  5013. That is not what I was trying to do.  I was trying to state the
  5014. conditions under which a getc() will always attempt to read from the
  5015. file descriptor, based solely on POSIX.1 (and its references to the
  5016. C standard).  I now realise this is not an achievable goal.
  5017.  
  5018. [Remainder of Doug's article omitted, as it no longer seems relevant.]
  5019.  
  5020. Here is my attempt at an assertion which derives directly from the
  5021. requirements of POSIX.1, and carefully avoids any situation in which
  5022. the C standard says the behaviour is undefined:
  5023.  
  5024.     When the stream pointer argument addresses a file descriptor
  5025.     that is not open for reading, and the stream is an input
  5026.     stream, and a call to getc() returns EOF, then the call
  5027.     to getc() sets errno to [EBADF].
  5028.  
  5029. Now it's just a matter of getting the POSIX.3.1 committee to agree...
  5030. -- 
  5031. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  5032. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  5033.  
  5034.  
  5035. Volume-Number: Volume 25, Number 53
  5036.  
  5037. From std-unix-request@uunet.UU.NET  Fri Sep 20 16:34:08 1991
  5038. Received: from relay1.UU.NET by uunet.UU.NET with SMTP 
  5039.     (5.61/UUNET-uucp-primary) id AA07484; Fri, 20 Sep 91 16:34:08 -0400
  5040. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5041.     (5.61/UUNET-internet-primary) id AB29919; Fri, 20 Sep 91 16:34:05 -0400
  5042. Newsgroups: comp.std.unix
  5043. From: Chuck Karish <karish@pangea.stanford.edu>
  5044. Subject: Re: Error detection
  5045. Message-Id: <1991Sep20.202934.20683@uunet.uu.net>
  5046. Summary: Badly botched assertions
  5047. Originator: sef@uunet.UU.NET
  5048. Sender: UseNet News <usenet@uunet.UU.NET>
  5049. Nntp-Posting-Host: uunet.uu.net
  5050. X-Submissions: std-unix@uunet.uu.net
  5051. Organization: Mindcraft, Inc.
  5052. References: <1991Sep18.221629.2789@uunet.uu.net> <1991Sep18.221531.2710@uunet.uu.net> <1991Sep20.190149.15165@uunet.uu.net>
  5053. Date: Fri, 20 Sep 1991 19:59:04 GMT
  5054. Reply-To: std-unix@uunet.UU.NET
  5055. To: std-unix@uunet.UU.NET
  5056.  
  5057. Submitted-by: karish@pangea.stanford.edu (Chuck Karish)
  5058.  
  5059. In article <1991Sep20.190149.15165@uunet.uu.net> gwc@root.co.uk
  5060. (Geoff Clare) writes:
  5061. >I thought I had given a pretty clear account of where the requirement
  5062. >comes from in my previous article.  Here it is again:
  5063. >
  5064. >|POSIX.1-1990 states in 8.2.3.11:
  5065. >|
  5066. >|    "If any of the functions above return an error indication, the
  5067.        ^^
  5068. >|    value of errno shall be set to indicate the error condition.
  5069. >|    If that error condition is one that this part of ISO/IEC 9945
  5070. >|    specifies to be detected by one of the corresponding underlying
  5071. >|    functions, the value of errno shall be the same as the value
  5072. >|    specified for the underlying function."
  5073.  
  5074. All the assertions in Draft 12.0 of POSIX.3.1 that address this
  5075. subclause are badly broken.
  5076.  
  5077. Since there's a great big "If" in 8.2.3.11, there also has to
  5078. be an "If" in each related assertion, and they have to be
  5079. conditional assertions, not required base assertions (Type A of
  5080. 1003.3-1991) as they are now written.
  5081.  
  5082. The assertion writers (including myself; no slap intended here)
  5083. should not be trying to make assertions testable by guessing
  5084. under what conditions the interfaces will generate errors.
  5085. Since there are no portable ways to provoke many of these
  5086. errors, the assertions should be extended conditional (Type D),
  5087. and conformance test suites are justified in not testing them
  5088. at all.
  5089.  
  5090.  
  5091. Thanks to whoever pointed out this problem.  The 1003.3.1
  5092. standard will be better as a result of this discussion.
  5093. --
  5094.  
  5095.     Chuck Karish        karish@mindcraft.com
  5096.     (415) 323-9000        karish@forel.stanford.edu
  5097.  
  5098. Volume-Number: Volume 25, Number 54
  5099.  
  5100. From std-unix-request@uunet.UU.NET  Tue Sep 24 14:07:23 1991
  5101. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5102.     (5.61/UUNET-mail-drop) id AA00903; Tue, 24 Sep 91 14:07:23 -0400
  5103. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5104.     (5.61/UUNET-internet-primary) id AA23595; Tue, 24 Sep 91 14:07:13 -0400
  5105. Newsgroups: comp.std.unix
  5106. From: Fred Zlotnick <fred@mindcraft.com>
  5107. Subject: Re: Error detection
  5108. Message-Id: <1991Sep23.230435.26263@uunet.uu.net>
  5109. Originator: sef@uunet.UU.NET
  5110. Nntp-Posting-Host: uunet.uu.net
  5111. X-Submissions: std-unix@uunet.uu.net
  5112. Organization: Mindcraft, Inc.
  5113. References: <1991Sep13.180004.6500@uunet.uu.net> <1991Sep13.210522.16426@uunet.uu.net> <1991Sep17.203651.1126@uunet.uu.net> <1991Sep18.221629.2789@uunet.uu.net> <1991Sep18.221531.2710@uunet.uu.net> <1991Sep20.190149.15165@uunet.uu.net>
  5114. Date: Sat, 21 Sep 1991 17:56:18 GMT
  5115. Reply-To: std-unix@uunet.UU.NET
  5116. To: std-unix@uunet.UU.NET
  5117. Sender: Network News <news@kithrup.com>
  5118. Source-Info:  From (or Sender) name not authenticated.
  5119.  
  5120. Submitted-by: fred@mindcraft.com (Fred Zlotnick)
  5121.  
  5122. In article <1991Sep20.190149.15165@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  5123.  
  5124. >        [ ...much omitted... ]
  5125. >>and getc() is NOT flagged with a "+" in ISO/IEC 9945-1:1990(E), where
  5126. >>the only additional constraint has to do with the POSIX-specific atime.
  5127. >>9945-1 specifically exempts getc() from having to be implemented in
  5128. >>terms of the "underlying functions" read() and lseek().
  5129. >
  5130. >I am not aware of any such exemption.  Please give a pointer to the
  5131. >relevant text in POSIX.1.  If this text exists, it contradicts
  5132. >8.2.3.5 which states that the underlying functions for getc() are
  5133. >read() and lseek(), so it would require an official interpretation
  5134. >to decide which is right.
  5135.  
  5136. No contradiction exists.  Clause 8.2.3, subsection 6 (lines 341-345 on page
  5137. 159 of ISO/IEC 9945-1:1990) reads:
  5138.  
  5139.     Each function that operates on a stream is said to have zero
  5140.     or more _underlying_functions_.  This means that the stream
  5141.     function shares certain traits with the underlying functions,
  5142.     but does not require that there be any relation between the
  5143.     implementations of the stream function and its underlying
  5144.     functions.
  5145.  
  5146. So no requirements whatsoever are made about implementation of the stream
  5147. functions, which is entirely appropriate.  The notion of an underlying
  5148. function is just a shorthand to avoid restating (and possibly botching)
  5149. requirements for errno when an error occurs.  This occurs in section
  5150. 8.2.3.11, which I believe I cited in an earlier posting.  That section
  5151. contains the crucial words "If any of the functions above [stream functions]
  5152. return an error indication, ...". That condition is the crux of this entire
  5153. discussion.
  5154.  
  5155. >    [ ...much more omitted... ]
  5156. >
  5157. >Here is my attempt at an assertion which derives directly from the
  5158. >requirements of POSIX.1, and carefully avoids any situation in which
  5159. >the C standard says the behaviour is undefined:
  5160. >
  5161. >    When the stream pointer argument addresses a file descriptor
  5162. >    that is not open for reading, and the stream is an input
  5163. >    stream, and a call to getc() returns EOF, then the call
  5164. >    to getc() sets errno to [EBADF].
  5165. >
  5166.  
  5167. As Chuck Karish points out in a later posting, this will not do.  The
  5168. assertion must be conditional.  Many of the related assertions in
  5169. 1003.3.1 should also be extended (no portable way to test), but I think
  5170. that this one can be written as a conditional base (Type C) assertion:
  5171.  
  5172.     If the implementation of getc() returns an error when the
  5173.     stream pointer addresses a file descriptor that is not open for
  5174.     reading: When the stream pointer argument addresses a file
  5175.     descriptor that is not open for reading, and the stream is an
  5176.     input stream, and a call to getc() returns EOF, then the call
  5177.     to getc() sets errno to [EBADF].
  5178.  
  5179. Corrections welcome; anyone who has tried to write assertions for 1003.1
  5180. (or any other standard) knows what a difficult business it is.
  5181. ----
  5182. Fred Zlotnick                       |    #include <std.disclaimer>
  5183. fred@mindcraft.com                  |    #include <brilliant.quote>
  5184. ...!{uupsi,ames}!mindcrf!fred |
  5185.  
  5186.  
  5187. Volume-Number: Volume 25, Number 56
  5188.  
  5189. From std-unix-request@uunet.UU.NET  Tue Sep 24 14:07:24 1991
  5190. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5191.     (5.61/UUNET-mail-drop) id AA00907; Tue, 24 Sep 91 14:07:24 -0400
  5192. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5193.     (5.61/UUNET-internet-primary) id AA23587; Tue, 24 Sep 91 14:07:12 -0400
  5194. Newsgroups: comp.std.unix
  5195. From: Doug Gwyn <gwyn@smoke.brl.mil>
  5196. Subject: Re: Error detection
  5197. Message-Id: <1991Sep23.230301.26181@uunet.uu.net>
  5198. Originator: sef@uunet.UU.NET
  5199. Nntp-Posting-Host: uunet.uu.net
  5200. X-Submissions: std-unix@uunet.uu.net
  5201. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  5202. References: <1991Sep18.221629.2789@uunet.uu.net> <1991Sep18.221531.2710@uunet.uu.net> <1991Sep20.190149.15165@uunet.uu.net>
  5203. Date: Sat, 21 Sep 1991 01:59:09 GMT
  5204. Reply-To: std-unix@uunet.UU.NET
  5205. To: std-unix@uunet.UU.NET
  5206. Sender: Network News <news@kithrup.com>
  5207. Source-Info:  From (or Sender) name not authenticated.
  5208.  
  5209. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  5210.  
  5211. In article <1991Sep20.190149.15165@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  5212. >Every statement in POSIX.1 which makes a requirement on the implementation
  5213. >must have an assertion in POSIX.3.1 relating to it.  If there were no
  5214. >assertion relating to an EBADF error from getc() then the POSIX.1 text
  5215. >quoted above would not be completely covered by POSIX.3.1.
  5216.  
  5217. Not every constraint of POSIX.1 need be verifiable by a test suite.
  5218. Those that are, should be, but those that are not should be manually
  5219. verified, verified using implementation-specific (vendor-supplied)
  5220. tests, or simply left unverified.
  5221.  
  5222. If particular, when the standard says, in effect, "X need not happen,
  5223. but if it does happen then Y must also occur", if there is no reliable
  5224. way to determine whether or not X occurs then the entire implication
  5225. X=>Y cannot be verified.
  5226.  
  5227. I think there is a fundamental confusion over the difference between
  5228. compliance with the terms of a standard (or ANY specification) and
  5229. verification via a test suite.  The latter does not imply the former
  5230. and should not be asumed to do so.  Procurement contracts ought to
  5231. specify standard conformance, and the role of test suites would be
  5232. limited to providing prima facie evidence of compliance with those
  5233. requirements, but only the absence of other evidence to the contrary.
  5234.  
  5235. >The requirement is for *an* assertion relating to an EBADF error from
  5236. >getc().  The existing assertion doesn't fit the requirements.  I am
  5237. >trying to come up with one that does.
  5238.  
  5239. Henry and I have been claiming that this is not a requirement of the
  5240. standard, period.
  5241.  
  5242. >>9945-1 specifically exempts getc() from having to be implemented in
  5243. >>terms of the "underlying functions" read() and lseek().
  5244. >I am not aware of any such exemption.  Please give a pointer to the
  5245. >relevant text in POSIX.1.  If this text exists, it contradicts
  5246. >8.2.3.5 which states that the underlying functions for getc() are
  5247. >read() and lseek(), so it would require an official interpretation
  5248. >to decide which is right.
  5249.  
  5250. I left my copy of the standard at home, but I remember clearly that
  5251. at the beginning of the section the purpose of the "underlying
  5252. functions" is explained, and it is there that the standard
  5253. specifically states that implementations of the standard I/O facilities
  5254. are NOT required to actually use those functions.
  5255.  
  5256. The primary purpose of the "underlying functions" is to support the
  5257. notion that the standard I/O functions also affect atime/mtime in
  5258. "reasonable" ways and that a portable application accessing an object
  5259. via both streams and file descriptors ("handles") is required to take
  5260. certain measures to ensure synchronization.
  5261.  
  5262. >That is not what I was trying to do.  I was trying to state the
  5263. >conditions under which a getc() will always attempt to read from the
  5264. >file descriptor, based solely on POSIX.1 (and its references to the
  5265. >C standard).  I now realise this is not an achievable goal.
  5266.  
  5267. Well, at least we seem to have achieved that much.
  5268.  
  5269. >Here is my attempt at an assertion which derives directly from the
  5270. >requirements of POSIX.1, and carefully avoids any situation in which
  5271. >the C standard says the behaviour is undefined:
  5272. >    When the stream pointer argument addresses a file descriptor
  5273. >    that is not open for reading, and the stream is an input
  5274. >    stream, and a call to getc() returns EOF, then the call
  5275. >    to getc() sets errno to [EBADF].
  5276.  
  5277. This is still not satisfactory; there is no standard meaning for the
  5278. notion of a "stream pointer argument addressing a file descriptor";
  5279. POSIX.1-conforming implementations are possible where both streams
  5280. and file descriptors are implemented in terms of some other underlying
  5281. I/O channel primitive, for example, with the POSIX "layer" performing
  5282. requisite bookkeeping for atimes etc.  (The C environment on my home
  5283. computer is much like that.)
  5284.  
  5285. Even if there were a clear connection between streams and file
  5286. descriptors, how would you arrange for the stream to be valid but
  5287. its file descriptor to not be open for reading?  The only methods
  5288. I could envision for attempting that all would clearly interfere
  5289. with the implementation in ways that are not permitted to a conforming
  5290. application.
  5291.  
  5292. getc() can return EOF for a number of reasons other than true end of
  5293. file; for those (for which ferror() reports nonzero), errno is required
  5294. by POSIX.1 to be set (to a nonzero value), but THAT IS ALL THAT POSIX.1
  5295. GUARANTEES.  Therefore that is the maximum extent to which a universal
  5296. validation assertion can go.  Internal details of the implementation
  5297. are simply not accessible, so the POSIX.1 conditions that depend on
  5298. "IF ... happens in the implementation" are not testable.  You probably
  5299. think that it is possible to arrange so that the "..." condition WILL
  5300. reliably occur, but I dispute that -- there are many, many things that
  5301. could cause a (legitimate) error return from getc(), and you have no
  5302. way of being sure that something not rigidly covered by the standard
  5303. is not at work.
  5304.  
  5305. A desire on the part of POSIX.3.1 for completeness is commendable, but
  5306. not a desire for overcompleteness.  Implementations are deliberately
  5307. allowed considerable leeway by the standards, and conformance checking
  5308. should fully support that by not attempting to check error conditions
  5309. more strongly than the standards felt was important to really guarantee.
  5310.  
  5311. Keep in mind that UNIX and C were deliberately designed with more
  5312. generality than is actually used in any specific instance; the
  5313. additional implementation freedom is very important in this milieu.
  5314. It is a major factor in the practical success of these systems; we're
  5315. not talking about some academic crisply-delimited well-defined model.
  5316.  
  5317.  
  5318. Volume-Number: Volume 25, Number 55
  5319.  
  5320. From std-unix-request@uunet.UU.NET  Tue Sep 24 14:07:26 1991
  5321. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5322.     (5.61/UUNET-mail-drop) id AA00916; Tue, 24 Sep 91 14:07:26 -0400
  5323. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5324.     (5.61/UUNET-internet-primary) id AB23613; Tue, 24 Sep 91 14:07:17 -0400
  5325. Newsgroups: comp.std.unix
  5326. From: Geoff Clare <gwc@root.co.uk>
  5327. Subject: Re: Error detection
  5328. Message-Id: <1991Sep23.230530.26359@uunet.uu.net>
  5329. Originator: sef@uunet.UU.NET
  5330. Nntp-Posting-Host: uunet.uu.net
  5331. X-Submissions: std-unix@uunet.uu.net
  5332. Organization: UniSoft Ltd., London, England
  5333. References: <1991Sep18.221629.2789@uunet.uu.net> <1991Sep18.221531.2710@uunet.uu.net> <1991Sep20.190149.15165@uunet.uu.net> <1991Sep20.202934.20683@uunet.uu.net>
  5334. Date: Mon, 23 Sep 1991 18:13:51 GMT
  5335. Reply-To: std-unix@uunet.UU.NET
  5336. To: std-unix@uunet.UU.NET
  5337. Sender: Network News <news@kithrup.com>
  5338. Source-Info:  From (or Sender) name not authenticated.
  5339.  
  5340. Submitted-by: gwc@root.co.uk (Geoff Clare)
  5341.  
  5342. karish@pangea.stanford.edu (Chuck Karish) writes:
  5343.  
  5344. >>|POSIX.1-1990 states in 8.2.3.11:
  5345. >>|
  5346. >>|    "If any of the functions above return an error indication, the
  5347. >       ^^
  5348. >>|    value of errno shall be set to indicate the error condition.
  5349. >>|    If that error condition is one that this part of ISO/IEC 9945
  5350. >>|    specifies to be detected by one of the corresponding underlying
  5351. >>|    functions, the value of errno shall be the same as the value
  5352. >>|    specified for the underlying function."
  5353.  
  5354. >All the assertions in Draft 12.0 of POSIX.3.1 that address this
  5355. >subclause are badly broken.
  5356.  
  5357. >Since there's a great big "If" in 8.2.3.11, there also has to
  5358. >be an "If" in each related assertion, and they have to be
  5359. >conditional assertions, not required base assertions (Type A of
  5360. >1003.3-1991) as they are now written.
  5361.  
  5362. Wrong.  An "if" in POSIX.1 does not automatically mean there has to be
  5363. an "if" in POSIX.3.1.  In POSIX.3.n, "if" has a very specific use: it
  5364. introduces assertions which are conditional upon optional features.
  5365. The "if" in question does not relate to an optional feature.
  5366.  
  5367. Chuck is confusing two common occurrences in POSIX.1, exemplified by
  5368. the "Errors" section for fork(), 3.1.1.4.  It states:
  5369.  
  5370.     "If any of the following conditions occur, the fork() function shall
  5371.     return -1 and set errno to the corresponding value:
  5372.  
  5373.     [EAGAIN]   ...
  5374.     
  5375.     For each of the following conditions, if the condition is detected,
  5376.     the fork() function shall return -1 and set errno to the corresponding
  5377.     value:
  5378.  
  5379.     [ENOMEM]   ..."
  5380.  
  5381.  
  5382. Detection of ENOMEM is optional, but detection of EAGAIN is not (despite
  5383. the "great big If").  Detection of errors from stream I/O functions is
  5384. only optional if the error condition is specified as optional for the
  5385. underlying function, as for the fork() ENOMEM error above.  That is not
  5386. the case for a read() EBADF error.
  5387.  
  5388. >The assertion writers (including myself; no slap intended here)
  5389. >should not be trying to make assertions testable by guessing
  5390. >under what conditions the interfaces will generate errors.
  5391. >Since there are no portable ways to provoke many of these
  5392. >errors, the assertions should be extended conditional (Type D),
  5393. >and conformance test suites are justified in not testing them
  5394. >at all.
  5395.  
  5396. If there are no portable ways to provoke the state conditions of a
  5397. given assertion, the assertion is classified as extended - type D if
  5398. the assertion is also conditional, otherwise type B.  In the case of
  5399. getc() and EBADF there is no option feature involved, so if the assertion
  5400. were untestable it would be classified as type B, not type D as Chuck
  5401. says.  However, I don't believe it is untestable.  The following sequence
  5402. of calls is a portable method of provoking the error:
  5403.  
  5404.     fp = fopen(file, "r");
  5405.     close(fileno(fp));
  5406.     getc(fp);
  5407.  
  5408. If anyone can find fault with that test method, I would like to hear
  5409. about it, because that is exactly what I used when I wrote a test for
  5410. this assertion as part of the X/Open verification suite.  The code has
  5411. been used to test hundreds of different systems over the last three
  5412. years, and I have not had any complaints.
  5413.  
  5414. >Thanks to whoever pointed out this problem.  The 1003.3.1
  5415. >standard will be better as a result of this discussion.
  5416.  
  5417. Yes, indeed.  If only there was this level of detailed discussion of all
  5418. assertions, then 1003.3.1 could be a very good standard.  As it is, most
  5419. balloters seem to have lost interest.  I produced hundreds of objections
  5420. to draft 12, many of them correcting glaringly obvious errors (and all
  5421. but a few were accepted).  Yet many of the balloters voted to approve
  5422. draft 12!
  5423. -- 
  5424. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  5425. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  5426.  
  5427.  
  5428. Volume-Number: Volume 25, Number 57
  5429.  
  5430. From std-unix-request@uunet.UU.NET  Tue Sep 24 14:07:30 1991
  5431. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5432.     (5.61/UUNET-mail-drop) id AA00921; Tue, 24 Sep 91 14:07:30 -0400
  5433. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5434.     (5.61/UUNET-internet-primary) id AA23630; Tue, 24 Sep 91 14:07:21 -0400
  5435. Newsgroups: comp.std.unix
  5436. From: Chuck Karish <karish@pangea.stanford.edu>
  5437. Subject: Re: Error detection
  5438. Message-Id: <1991Sep24.002828.1466@uunet.uu.net>
  5439. Summary: testability
  5440. Originator: sef@uunet.UU.NET
  5441. Nntp-Posting-Host: uunet.uu.net
  5442. X-Submissions: std-unix@uunet.uu.net
  5443. Organization: Mindcraft, Inc.
  5444. References: <1991Sep18.221531.2710@uunet.uu.net> <1991Sep20.190149.15165@uunet.uu.net> <1991Sep23.230301.26181@uunet.uu.net>
  5445. Date: Tue, 24 Sep 1991 00:22:57 GMT
  5446. Reply-To: std-unix@uunet.UU.NET
  5447. To: std-unix@uunet.UU.NET
  5448. Sender: Network News <news@kithrup.com>
  5449. Source-Info:  From (or Sender) name not authenticated.
  5450.  
  5451. Submitted-by: karish@pangea.stanford.edu (Chuck Karish)
  5452.  
  5453. In article <1991Sep23.230301.26181@uunet.uu.net> gwyn@smoke.brl.mil
  5454. (Doug Gwyn) writes:
  5455. >In article <1991Sep20.190149.15165@uunet.uu.net> gwc@root.co.uk
  5456. >(Geoff Clare) writes:
  5457. >>Every statement in POSIX.1 which makes a requirement on the implementation
  5458. >>must have an assertion in POSIX.3.1 relating to it.  If there were no
  5459. >>assertion relating to an EBADF error from getc() then the POSIX.1 text
  5460. >>quoted above would not be completely covered by POSIX.3.1.
  5461. >
  5462. >Not every constraint of POSIX.1 need be verifiable by a test suite.
  5463.  
  5464. Everyone involved in writing assertions should understand this.
  5465. It's spelled out pretty clearly in the 1003.3 standard.
  5466.  
  5467. See the definition of an "extended assertion" in Section 5
  5468. of 1003.1.  Tests for such assertions may return FAIL
  5469. on systems where it is possible to detect a problem, and
  5470. UNTESTED on systems where it is not.
  5471. --
  5472.  
  5473.     Chuck Karish        karish@mindcraft.com
  5474.     (415) 323-9000        karish@forel.stanford.edu
  5475.  
  5476.  
  5477. Volume-Number: Volume 25, Number 58
  5478.  
  5479. From std-unix-request@uunet.UU.NET  Tue Sep 24 14:07:36 1991
  5480. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5481.     (5.61/UUNET-mail-drop) id AA00926; Tue, 24 Sep 91 14:07:36 -0400
  5482. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5483.     (5.61/UUNET-internet-primary) id AA23645; Tue, 24 Sep 91 14:07:23 -0400
  5484. Newsgroups: comp.std.unix
  5485. From: Chuck Karish <karish@pangea.stanford.edu>
  5486. Subject: Re: Error detection
  5487. Message-Id: <1991Sep24.022027.8149@uunet.uu.net>
  5488. Summary: More on "If"
  5489. Originator: sef@uunet.UU.NET
  5490. Nntp-Posting-Host: uunet.uu.net
  5491. X-Submissions: std-unix@uunet.uu.net
  5492. Organization: Mindcraft, Inc.
  5493. References: <1991Sep20.190149.15165@uunet.uu.net> <1991Sep20.202934.20683@uunet.uu.net> <1991Sep23.230530.26359@uunet.uu.net>
  5494. Date: Tue, 24 Sep 1991 02:04:36 GMT
  5495. Reply-To: std-unix@uunet.UU.NET
  5496. To: std-unix@uunet.UU.NET
  5497. Sender: Network News <news@kithrup.com>
  5498. Source-Info:  From (or Sender) name not authenticated.
  5499.  
  5500. Submitted-by: karish@pangea.stanford.edu (Chuck Karish)
  5501.  
  5502. In article <1991Sep23.230530.26359@uunet.uu.net> gwc@root.co.uk
  5503. (Geoff Clare) writes:
  5504. >
  5505. >karish@pangea.stanford.edu (Chuck Karish) writes:
  5506. >
  5507. >>Since there's a great big "If" in 8.2.3.11, there also has to
  5508. >>be an "If" in each related assertion, and they have to be
  5509. >>conditional assertions, not required base assertions (Type A of
  5510. >>1003.3-1991) as they are now written.
  5511. >
  5512. >Wrong.  An "if" in POSIX.1 does not automatically mean there has to be
  5513. >an "if" in POSIX.3.1.  In POSIX.3.n, "if" has a very specific use: it
  5514. >introduces assertions which are conditional upon optional features.
  5515. >The "if" in question does not relate to an optional feature.
  5516. >
  5517. >Chuck is confusing two common occurrences in POSIX.1, exemplified by
  5518. >the "Errors" section for fork(), 3.1.1.4.  It states:
  5519.  
  5520. [ counterexample elided ]
  5521.  
  5522. Geoff's counterexample to the notion that every "If" in POSIX.1
  5523. requires an "If" in 1003.3.1 is correct; I overstated this point.
  5524. I stand by my interpretation that this particular "If" has to be
  5525. answered with a corresponding "If".
  5526.  
  5527. >If there are no portable ways to provoke the state conditions of a
  5528. >given assertion, the assertion is classified as extended - type D if
  5529. >the assertion is also conditional, otherwise type B.  In the case of
  5530. >getc() and EBADF there is no option feature involved, so if the assertion
  5531. >were untestable it would be classified as type B, not type D as Chuck
  5532. >says.
  5533.  
  5534. This isn't what 1003.3 says.  The definition of a conditional
  5535. feature (subclause 2.2.2.5) is
  5536.  
  5537.     A feature or behavior referred to in a POSIX standard that
  5538.     need not be present on all conforming implementations.
  5539.  
  5540. The word "if" in 1003.3.x assertions is reserved for conditional
  5541. assertions, whether or not they refer to specially declared
  5542. options in the base standard.
  5543.  
  5544. Having getc() return EOF, [EBADF] is a behavior that need not
  5545. be present on all conforming POSIX.1 implementations.
  5546.  
  5547.  
  5548. Geoff seems to be focusing on the second sentence of 8.2.3.11
  5549. and missing the fact that it's qualified by the first
  5550. sentence (Reader beware: this subclause was changed between
  5551. the 1988 and 1990 standards, presumably for the sake of
  5552. clarity ;-).
  5553.  
  5554. I can't find a requirement anywhere in the C standard or in
  5555. POSIX.1 that a stream function must ever return an error
  5556. indicator.  8.2.3 (6) says that
  5557.  
  5558.     "the stream function shares certain traits with the
  5559.     underlying functions..."
  5560.  
  5561. The only subclause in 1003.1 that spells out such traits is
  5562. 8.2.3.11, which specifies, in a conditional manner, the
  5563. handling of errors.
  5564.  
  5565. >If there are no portable ways to provoke the state conditions of a
  5566. >given assertion, the assertion is classified as extended - type D if
  5567. >the assertion is also conditional, otherwise type B.  In the case of
  5568. >getc() and EBADF there is no option feature involved, so if the assertion
  5569. >were untestable it would be classified as type B, not type D as Chuck
  5570. >says.  However, I don't believe it is untestable.  The following sequence
  5571. >of calls is a portable method of provoking the error:
  5572. >
  5573. >    fp = fopen(file, "r");
  5574. >    close(fileno(fp));
  5575. >    getc(fp);
  5576. >
  5577. >If anyone can find fault with that test method, I would like to hear
  5578. >about it, because that is exactly what I used when I wrote a test for
  5579. >this assertion as part of the X/Open verification suite.  The code has
  5580. >been used to test hundreds of different systems over the last three
  5581. >years, and I have not had any complaints.
  5582.  
  5583. This looks like a good test method.  That makes this a type C
  5584. assertion.  Remember that it's not testing something that's
  5585. required by 1003.1; there's no requirement that the system
  5586. report an error.  The test outcome must be UNSUPPORTED if the
  5587. implementation does not return an error indicator when the
  5588. quoted code is executed.
  5589.  
  5590. I'd like to see all the assertions in 1003.3.1 that refer to
  5591. error conditions re-worded to be conditional with respect to
  5592. whether the system returns the respective errors, and their
  5593. types (A, B, C, D) re-examined.  There are other problems in
  5594. the descriptions of stream functions; in particular, "file
  5595. descriptor that is associated with a stream" (see
  5596. 11.7.2.fclose(), assertion 4) is not an adequate way to
  5597. describe the behavior of an open file description that's
  5598. accessed by both types of handles.
  5599. --
  5600.  
  5601.     Chuck Karish        karish@mindcraft.com
  5602.     (415) 323-9000        karish@forel.stanford.edu
  5603.  
  5604.  
  5605. Volume-Number: Volume 25, Number 59
  5606.  
  5607. From std-unix-request@uunet.UU.NET  Tue Sep 24 14:14:41 1991
  5608. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5609.     (5.61/UUNET-mail-drop) id AA01452; Tue, 24 Sep 91 14:14:41 -0400
  5610. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5611.     (5.61/UUNET-internet-primary) id AA26481; Tue, 24 Sep 91 14:14:32 -0400
  5612. Newsgroups: comp.std.unix
  5613. From: Chuck Karish <karish@pangea.stanford.edu>
  5614. Subject: Re: Error detection
  5615. Message-Id: <1991Sep24.180910.16958@uunet.uu.net>
  5616. Summary: Error in my analysis
  5617. Originator: sef@uunet.UU.NET
  5618. Sender: UseNet News <usenet@uunet.UU.NET>
  5619. Nntp-Posting-Host: uunet.uu.net
  5620. X-Submissions: std-unix@uunet.uu.net
  5621. Organization: Mindcraft, Inc.
  5622. References: <1991Sep20.202934.20683@uunet.uu.net> <1991Sep23.230530.26359@uunet.uu.net> <1991Sep24.022027.8149@uunet.uu.net>
  5623. Date: Tue, 24 Sep 1991 03:26:59 GMT
  5624. Reply-To: std-unix@uunet.UU.NET
  5625. To: std-unix@uunet.UU.NET
  5626.  
  5627. Submitted-by: karish@pangea.stanford.edu (Chuck Karish)
  5628.  
  5629. In article <1991Sep24.022027.8149@uunet.uu.net> karish@pangea.stanford.edu
  5630. (Chuck Karish) writes:
  5631. >I can't find a requirement anywhere in the C standard or in
  5632. >POSIX.1 that a stream function must ever return an error
  5633. >indicator.
  5634.  
  5635. Of course, this is wrong.  The C standard specifies that
  5636. functions return EOF under some conditions.
  5637.  
  5638. A POSIX.1 implementation that claims Common-Usage C
  5639. Language-Dependent System Support need not return such errors
  5640. if this behavior is documented in the POSIX Conformance
  5641. Document.
  5642.  
  5643. Taken literally, subclause 1.3.3.3 of POSIX.1 would seem to
  5644. make all assertions that refer to subclause 8.1 conditional on
  5645. whether the system claims C Standard Language-Dependent System
  5646. Support or claims Common-Usage Language-Dependent System
  5647. Support and supports the feature referenced by the assertion.
  5648.  
  5649. Once again, the spirit of WEIRDnix prevails over the common
  5650. wisdom.
  5651. --
  5652.  
  5653.     Chuck Karish        karish@mindcraft.com
  5654.     (415) 323-9000        karish@forel.stanford.edu
  5655.  
  5656.  
  5657. Volume-Number: Volume 25, Number 60
  5658.  
  5659. From std-unix-request@uunet.UU.NET  Thu Sep 26 15:05:23 1991
  5660. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5661.     (5.61/UUNET-mail-drop) id AA22210; Thu, 26 Sep 91 15:05:23 -0400
  5662. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5663.     (5.61/UUNET-internet-primary) id AA05483; Thu, 26 Sep 91 15:02:31 -0400
  5664. Newsgroups: comp.std.unix
  5665. From: Geoff Clare <gwc@root.co.uk>
  5666. Subject: Re: Error detection
  5667. Message-Id: <1991Sep26.185613.22662@uunet.uu.net>
  5668. Originator: sef@uunet.UU.NET
  5669. Sender: UseNet News <usenet@uunet.UU.NET>
  5670. Nntp-Posting-Host: uunet.uu.net
  5671. X-Submissions: std-unix@uunet.uu.net
  5672. Organization: UniSoft Ltd., London, England
  5673. References: <1991Sep18.221629.2789@uunet.uu.net> <1991Sep18.221531.2710@uunet.uu.net> <1991Sep20.190149.15165@uunet.uu.net> <1991Sep23.230301.26181@uunet.uu.net>
  5674. Date: Thu, 26 Sep 1991 13:03:36 GMT
  5675. Reply-To: std-unix@uunet.UU.NET
  5676. To: std-unix@uunet.UU.NET
  5677.  
  5678. Submitted-by: gwc@root.co.uk (Geoff Clare)
  5679.  
  5680. gwyn@smoke.brl.mil (Doug Gwyn) writes:
  5681.  
  5682. >>The requirement is for *an* assertion relating to an EBADF error from
  5683. >>getc().  The existing assertion doesn't fit the requirements.  I am
  5684. >>trying to come up with one that does.
  5685.  
  5686. >Henry and I have been claiming that this is not a requirement of the
  5687. >standard, period.
  5688.  
  5689. Well Doug has, but I haven't seen Henry re-affirm that claim since my
  5690. article explaining where the requirement comes from.
  5691.  
  5692. >>>9945-1 specifically exempts getc() from having to be implemented in
  5693. >>>terms of the "underlying functions" read() and lseek().
  5694. >>I am not aware of any such exemption.  Please give a pointer to the
  5695. >>relevant text in POSIX.1.  If this text exists, it contradicts
  5696. >>8.2.3.5 which states that the underlying functions for getc() are
  5697. >>read() and lseek(), so it would require an official interpretation
  5698. >>to decide which is right.
  5699.  
  5700. >I left my copy of the standard at home, but I remember clearly that
  5701. >at the beginning of the section the purpose of the "underlying
  5702. >functions" is explained, and it is there that the standard
  5703. >specifically states that implementations of the standard I/O facilities
  5704. >are NOT required to actually use those functions.
  5705.  
  5706. Sorry, this was a misunderstanding on my part.  I thought Doug was
  5707. referring to some specific exemption for getc() here, which is why I
  5708. queried it.  He is, of course, correct to say that getc(), just like all
  5709. the stream I/O functions, doesn't have to actually call its underlying
  5710. functions.  I never said it did.
  5711.  
  5712. >The primary purpose of the "underlying functions" is to support the
  5713. >notion that the standard I/O functions also affect atime/mtime in
  5714. >"reasonable" ways and that a portable application accessing an object
  5715. >via both streams and file descriptors ("handles") is required to take
  5716. >certain measures to ensure synchronization.
  5717.  
  5718. I am not aware of any text in POSIX.1-1990 which directly relates
  5719. timestamps to the idea of underlying functions.  Even if there is, it
  5720. is manifestly not the "primary purpose" of underlying functions, since
  5721. the standard makes explicit statements about the updating of timestamps
  5722. for each stream I/O function.
  5723.  
  5724. The primary purpose of the "underlying functions" is to ensure that
  5725. errno is set appropriately for POSIX.1-defined error conditions.
  5726.  
  5727. >>    When the stream pointer argument addresses a file descriptor
  5728. >>    that is not open for reading, and the stream is an input
  5729. >>    stream, and a call to getc() returns EOF, then the call
  5730. >>    to getc() sets errno to [EBADF].
  5731.  
  5732. >This is still not satisfactory; there is no standard meaning for the
  5733. >notion of a "stream pointer argument addressing a file descriptor";
  5734.  
  5735. Doug may have a point about the word "addresses".  However, the
  5736. relationship between file descriptors and streams is perfectly clear.
  5737. See 8.2.1.2:
  5738.  
  5739.     "The fileno() function returns the integer file descriptor
  5740.     associated with the stream (see 5.3.1)."
  5741.  
  5742. >Even if there were a clear connection between streams and file
  5743. >descriptors, how would you arrange for the stream to be valid but
  5744. >its file descriptor to not be open for reading?
  5745.  
  5746. There are two obvious ways.  I gave one in my last article:
  5747.  
  5748.     fp = fopen(file, "r");
  5749.     close(fileno(fp));
  5750.  
  5751. The other is:
  5752.  
  5753.     fp = fopen(file1, "r");
  5754.     fd = creat(file2, mode);
  5755.     dup2(fd, fileno(fp));
  5756.  
  5757. >getc() can return EOF for a number of reasons other than true end of
  5758. >file; for those (for which ferror() reports nonzero), errno is required
  5759. >by POSIX.1 to be set (to a nonzero value), but THAT IS ALL THAT POSIX.1
  5760. >GUARANTEES.
  5761.  
  5762. Wrong.  It also guarantees that in cases where the error condition is one
  5763. that is specified to be detected by the underlying functions read() or
  5764. lseek() then the value that errno has been set to will be the same as the
  5765. value specified for the underlying function.
  5766.  
  5767. >Therefore that is the maximum extent to which a universal
  5768. >validation assertion can go.  Internal details of the implementation
  5769. >are simply not accessible, so the POSIX.1 conditions that depend on
  5770. >"IF ... happens in the implementation" are not testable.  You probably
  5771. >think that it is possible to arrange so that the "..." condition WILL
  5772. >reliably occur, but I dispute that -- there are many, many things that
  5773. >could cause a (legitimate) error return from getc(), and you have no
  5774. >way of being sure that something not rigidly covered by the standard
  5775. >is not at work.
  5776.  
  5777. This is a minor point.  The only difference whether or not the error
  5778. condition can be reliably produced makes is whether the assertion is
  5779. classified as type A or B.  The text of the assertion is the same in
  5780. either case.
  5781.  
  5782. -- 
  5783. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  5784. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  5785.  
  5786.  
  5787. Volume-Number: Volume 25, Number 61
  5788.  
  5789. From std-unix-request@uunet.UU.NET  Thu Sep 26 15:05:24 1991
  5790. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5791.     (5.61/UUNET-mail-drop) id AA22211; Thu, 26 Sep 91 15:05:24 -0400
  5792. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5793.     (5.61/UUNET-internet-primary) id AA05511; Thu, 26 Sep 91 15:02:33 -0400
  5794. Newsgroups: comp.std.unix
  5795. From: Geoff Clare <gwc@root.co.uk>
  5796. Subject: Re: Error detection
  5797. Message-Id: <1991Sep26.185717.22736@uunet.uu.net>
  5798. Originator: sef@uunet.UU.NET
  5799. Sender: UseNet News <usenet@uunet.UU.NET>
  5800. Nntp-Posting-Host: uunet.uu.net
  5801. X-Submissions: std-unix@uunet.uu.net
  5802. Organization: UniSoft Ltd., London, England
  5803. References: <1991Sep20.190149.15165@uunet.uu.net> <1991Sep20.202934.20683@uunet.uu.net> <1991Sep23.230530.26359@uunet.uu.net> <1991Sep24.022027.8149@uunet.uu.net>
  5804. Date: Thu, 26 Sep 1991 13:20:47 GMT
  5805. Reply-To: std-unix@uunet.UU.NET
  5806. To: std-unix@uunet.UU.NET
  5807.  
  5808. Submitted-by: gwc@root.co.uk (Geoff Clare)
  5809.  
  5810. karish@pangea.stanford.edu (Chuck Karish) writes:
  5811.  
  5812. >Having getc() return EOF, [EBADF] is a behavior that need not
  5813. >be present on all conforming POSIX.1 implementations.
  5814.  
  5815. >Geoff seems to be focusing on the second sentence of 8.2.3.11
  5816. >and missing the fact that it's qualified by the first
  5817. >sentence (Reader beware: this subclause was changed between
  5818. >the 1988 and 1990 standards, presumably for the sake of
  5819. >clarity ;-).
  5820.  
  5821. The first sentence (in POSIX.1-1990) is:
  5822.  
  5823.     "If any of the functions above return an error indication, the
  5824.     value of errno shall be set to indicate the error condition."
  5825.  
  5826. This is a statement of mandatory behaviour required in the case where
  5827. a call to a function returns an error indication.  I cannot see any way
  5828. in which this could be interpreted as describing optional behaviour.
  5829.  
  5830. >I'd like to see all the assertions in 1003.3.1 that refer to
  5831. >error conditions re-worded to be conditional with respect to
  5832. >whether the system returns the respective errors, and their
  5833. >types (A, B, C, D) re-examined.
  5834.  
  5835. This is utterly ludicrous.  If error detection were always optional
  5836. why would POSIX.1 state specifically that, for example, detection of
  5837. ENOMEM by fork() is optional?
  5838.  
  5839. If Chuck's suggestion were adopted, it would mean that a system which
  5840. doesn't return -1 and set errno to EBADF when you call read(-1, buf, n)
  5841. could be called POSIX conformant.  That's ridiculous!
  5842. -- 
  5843. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  5844. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  5845.  
  5846.  
  5847. Volume-Number: Volume 25, Number 62
  5848.  
  5849. From std-unix-request@uunet.UU.NET  Fri Sep 27 20:01:12 1991
  5850. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5851.     (5.61/UUNET-mail-drop) id AA26343; Fri, 27 Sep 91 20:01:12 -0400
  5852. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5853.     (5.61/UUNET-internet-primary) id AA16998; Fri, 27 Sep 91 20:01:01 -0400
  5854. Newsgroups: comp.std.unix
  5855. From: Doug Gwyn <gwyn@smoke.brl.mil>
  5856. Subject: Re: Error detection
  5857. Message-Id: <1991Sep27.235454.28831@uunet.uu.net>
  5858. Originator: sef@uunet.UU.NET
  5859. Sender: UseNet News <usenet@uunet.UU.NET>
  5860. Nntp-Posting-Host: uunet.uu.net
  5861. X-Submissions: std-unix@uunet.uu.net
  5862. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  5863. References: <1991Sep20.190149.15165@uunet.uu.net> <1991Sep23.230301.26181@uunet.uu.net> <1991Sep26.185613.22662@uunet.uu.net>
  5864. Date: Fri, 27 Sep 1991 11:55:58 GMT
  5865. Reply-To: std-unix@uunet.UU.NET
  5866. To: std-unix@uunet.UU.NET
  5867.  
  5868. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  5869.  
  5870. In article <1991Sep26.185613.22662@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  5871. >Wrong.  It also guarantees that in cases where the error condition is one
  5872. >that is specified to be detected by the underlying functions read() or
  5873. >lseek() then the value that errno has been set to will be the same as the
  5874. >value specified for the underlying function.
  5875.  
  5876. And it also does NOT insist that any SPECIFIC invocation of getc()
  5877. attempt to perform the underlying function using the associated
  5878. file descriptor.
  5879.  
  5880. I don't think Geoff is going to change his mind.  The bottom line
  5881. that I wish to emphasize is that no fully conforming program can
  5882. adequately validate that an implementation conforms to the spec in
  5883. question, because in order to do so some assumptions about the
  5884. implementation BEYOND what is stated in the standard(s) must be made.
  5885.  
  5886.  
  5887. Volume-Number: Volume 25, Number 63
  5888.  
  5889. From std-unix-request@uunet.UU.NET  Fri Sep 27 20:01:15 1991
  5890. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5891.     (5.61/UUNET-mail-drop) id AA26352; Fri, 27 Sep 91 20:01:15 -0400
  5892. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5893.     (5.61/UUNET-internet-primary) id AA17005; Fri, 27 Sep 91 20:01:05 -0400
  5894. Newsgroups: comp.std.unix
  5895. From: Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
  5896. Subject: Re: Error detection
  5897. Message-Id: <1991Sep27.235553.28947@uunet.uu.net>
  5898. Originator: sef@uunet.UU.NET
  5899. Sender: UseNet News <usenet@uunet.UU.NET>
  5900. Nntp-Posting-Host: uunet.uu.net
  5901. X-Submissions: std-unix@uunet.uu.net
  5902. Organization: Free Software Foundation, Cambridge, MA
  5903. References: <1991Sep20.190149.15165@uunet.uu.net> <1991Sep20.202934.20683@uunet.uu.net> <1991Sep26.185717.22736@uunet.uu.net>
  5904. Date: Fri, 27 Sep 1991 20:25:05 GMT
  5905. Reply-To: std-unix@uunet.UU.NET
  5906. To: std-unix@uunet.UU.NET
  5907.  
  5908. Submitted-by: mib@geech.gnu.ai.mit.edu (Michael I Bushnell)
  5909.  
  5910. In article <1991Sep26.185717.22736@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  5911.  
  5912.    If Chuck's suggestion were adopted, it would mean that a system which
  5913.    doesn't return -1 and set errno to EBADF when you call read(-1, buf, n)
  5914.    could be called POSIX conformant.  That's ridiculous!
  5915.  
  5916. Do people actually write programs which depend on this?  This, IMHO,
  5917. is a major problem with the approach taken by the Posix committees.  I
  5918. can think of half a dozen nifty extensions which would use negative
  5919. file descriptors.  The standard *should* say that the effects of
  5920. negative file descriptors are undefined, and guarantee that relevant
  5921. functions (like open and creat) will never return negative file
  5922. descriptors.
  5923.  
  5924.     -mib
  5925.  
  5926.  
  5927. Volume-Number: Volume 25, Number 64
  5928.  
  5929. From std-unix-request@uunet.UU.NET  Sun Sep 29 03:00:16 1991
  5930. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5931.     (5.61/UUNET-mail-drop) id AA18943; Sun, 29 Sep 91 03:00:16 -0400
  5932. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5933.     (5.61/UUNET-internet-primary) id AA25616; Sun, 29 Sep 91 03:00:13 -0400
  5934. Newsgroups: comp.std.unix
  5935. From: Henry Spencer <henry@zoo.toronto.edu>
  5936. Subject: Re: Error detection
  5937. Message-Id: <1991Sep29.065459.17092@uunet.uu.net>
  5938. Originator: sef@uunet.UU.NET
  5939. Sender: UseNet News <usenet@uunet.UU.NET>
  5940. Nntp-Posting-Host: uunet.uu.net
  5941. X-Submissions: std-unix@uunet.uu.net
  5942. Organization: U of Toronto Zoology
  5943. References: <1991Sep20.190149.15165@uunet.uu.net> <1991Sep23.230301.26181@uunet.uu.net> <1991Sep26.185613.22662@uunet.uu.net>
  5944. Date: Sun, 29 Sep 1991 00:54:00 GMT
  5945. Reply-To: std-unix@uunet.UU.NET
  5946. To: std-unix@uunet.UU.NET
  5947.  
  5948. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  5949.  
  5950. In article <1991Sep26.185613.22662@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  5951. >>Henry and I have been claiming that this is not a requirement of the
  5952. >>standard, period.
  5953. >
  5954. >Well Doug has, but I haven't seen Henry re-affirm that claim since my
  5955. >article explaining where the requirement comes from.
  5956.  
  5957. Henry has just a few other things to do. :-)  However, Henry's opinion
  5958. remains unchanged:  the requirement contains an important "if", the
  5959. proposed assertions do not, and the assertions are therefore wrong.
  5960. The "if" condition is of a particularly awkward kind, in that no way is
  5961. provided to evaluate it automatically, but that does not make it go
  5962. away -- 1003.3.1 cannot replace it with something easier to evaluate,
  5963. and certainly cannot replace it with "if (1)", however convenient that
  5964. might be.
  5965. -- 
  5966. Programming graphics in X is like       | Henry Spencer @ U of Toronto Zoology
  5967. finding sqrt(pi) using Roman numerals.  |  henry@zoo.toronto.edu  utzoo!henry
  5968.  
  5969. Volume-Number: Volume 25, Number 65
  5970.  
  5971. From std-unix-request@uunet.UU.NET  Mon Sep 30 03:14:10 1991
  5972. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  5973.     (5.61/UUNET-mail-drop) id AA20702; Mon, 30 Sep 91 03:14:10 -0400
  5974. Received: from kithrup.com by relay1.UU.NET with SMTP 
  5975.     (5.61/UUNET-internet-primary) id AA11381; Mon, 30 Sep 91 03:14:07 -0400
  5976. Newsgroups: comp.std.unix
  5977. From: Chuck Karish <karish@mindcraft.com>
  5978. Subject: Re: Error detection
  5979. Message-Id: <1991Sep30.070838.12832@uunet.uu.net>
  5980. Summary: When does "if" mean "when", and when does it mean "if"?
  5981. Originator: sef@uunet.UU.NET
  5982. Sender: UseNet News <usenet@uunet.UU.NET>
  5983. Nntp-Posting-Host: uunet.uu.net
  5984. X-Submissions: std-unix@uunet.uu.net
  5985. Organization: Mindcraft, Inc.
  5986. References: <1991Sep23.230530.26359@uunet.uu.net> <1991Sep24.022027.8149@uunet.uu.net> <1991Sep26.185717.22736@uunet.uu.net>
  5987. Date: Mon, 30 Sep 1991 03:45:25 GMT
  5988. Reply-To: std-unix@uunet.UU.NET
  5989. To: std-unix@uunet.UU.NET
  5990.  
  5991. Submitted-by: karish@mindcraft.com (Chuck Karish)
  5992.  
  5993. In article <1991Sep26.185717.22736@uunet.uu.net> gwc@root.co.uk
  5994. (Geoff Clare) writes:
  5995. >karish@pangea.stanford.edu (Chuck Karish) writes:
  5996. >
  5997. >>Having getc() return EOF, [EBADF] is a behavior that need not
  5998. >>be present on all conforming POSIX.1 implementations.
  5999. >
  6000. >>Geoff seems to be focusing on the second sentence of 8.2.3.11
  6001. >>and missing the fact that it's qualified by the first
  6002. >>sentence.
  6003. >
  6004. >The first sentence (in POSIX.1-1990) is:
  6005. >
  6006. >    "If any of the functions above return an error indication, the
  6007. >    value of errno shall be set to indicate the error condition."
  6008. >
  6009. >This is a statement of mandatory behaviour required in the case where
  6010. >a call to a function returns an error indication.  I cannot see any way
  6011. >in which this could be interpreted as describing optional behaviour.
  6012.  
  6013. I find it quite frustrating that a sentence that seems to
  6014. be perfectly clear to all of us is actually being
  6015. interpreted in two different ways.
  6016.  
  6017. Much confusion seems to exist in the 1003.3.1 committee
  6018. over the meaning of the word "if".  In some cases it's
  6019. interpreted to mean "Under circumstances where the
  6020. implementation encounters the following situation..."
  6021. (sometimes changed to "when" in the 1003.3.1 assertions),
  6022. and in other cases it's interpreted in the sense of "Some
  6023. implementations may support this behavior and some may
  6024. not."
  6025.  
  6026. I find it to be unequivocally clear that the 1003.1
  6027. committee meant this "if" to mean "if under this
  6028. implementation the function returns an error ...".  This
  6029. defines optional behavior.
  6030.  
  6031. For confirmation, see the rationale for 8.2.3.11:
  6032.  
  6033.     POSIX.1 intentionally does not require that all errors
  6034.     detected by the underlying functions be detected by the
  6035.     functions listed here.  There are many reasonable cases
  6036.     where this might not occur; for example, many of the
  6037.     functions with write() as an underlying function might
  6038.     not detect a number of error conditions in cases where
  6039.     they simply buffer output for a subsequent flush.
  6040.  
  6041. We could ask 1003.1 for an interpretation, but I can't
  6042. imagine how they could have been more clear.
  6043.  
  6044. >>I'd like to see all the assertions in 1003.3.1 that refer to
  6045. >>error conditions re-worded to be conditional with respect to
  6046. >>whether the system returns the respective errors, and their
  6047. >>types (A, B, C, D) re-examined.
  6048. >
  6049. >This is utterly ludicrous.  If error detection were always optional
  6050. >why would POSIX.1 state specifically that, for example, detection of
  6051. >ENOMEM by fork() is optional?
  6052.  
  6053. My mistake.  I meant to restrict this paragraph to interfaces
  6054. described by reference to the C Standard: those listed in
  6055. 8.1 and 8.2.3 of POSIX.1.
  6056.  
  6057.     Chuck Karish        karish@mindcraft.com
  6058.     Mindcraft, Inc.        (415) 323-9000
  6059.  
  6060.  
  6061. Volume-Number: Volume 25, Number 66
  6062.  
  6063. From std-unix-request@uunet.UU.NET  Mon Sep 30 16:25:40 1991
  6064. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6065.     (5.61/UUNET-mail-drop) id AA12633; Mon, 30 Sep 91 16:25:40 -0400
  6066. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6067.     (5.61/UUNET-internet-primary) id AA07220; Mon, 30 Sep 91 16:25:32 -0400
  6068. Newsgroups: comp.std.unix
  6069. From: Geoff Clare <gwc@root.co.uk>
  6070. Subject: Re: Error detection
  6071. Message-Id: <1991Sep30.201030.19276@uunet.uu.net>
  6072. Originator: sef@uunet.UU.NET
  6073. Sender: UseNet News <usenet@uunet.UU.NET>
  6074. Nntp-Posting-Host: uunet.uu.net
  6075. X-Submissions: std-unix@uunet.uu.net
  6076. Organization: UniSoft Ltd., London, England
  6077. References: <1991Sep26.185613.22662@uunet.uu.net> <1991Sep27.235454.28831@uunet.uu.net> <1991Sep29.065459.17092@uunet.uu.net>
  6078. Date: Mon, 30 Sep 1991 17:49:14 GMT
  6079. Reply-To: std-unix@uunet.UU.NET
  6080. To: std-unix@uunet.UU.NET
  6081.  
  6082. Submitted-by: gwc@root.co.uk (Geoff Clare)
  6083.  
  6084. gwyn@smoke.brl.mil (Doug Gwyn) writes:
  6085.  
  6086. >>Wrong.  It also guarantees that in cases where the error condition is one
  6087. >>that is specified to be detected by the underlying functions read() or
  6088. >>lseek() then the value that errno has been set to will be the same as the
  6089. >>value specified for the underlying function.
  6090.  
  6091. >And it also does NOT insist that any SPECIFIC invocation of getc()
  6092. >attempt to perform the underlying function using the associated
  6093. >file descriptor.
  6094.  
  6095. This point is not being contested.  My proposed assertion does not
  6096. require getc() to return an error indication, it contains a condition on
  6097. getc() having returned an error indication.  I.e. the attempt to perform
  6098. the underlying function is effectively a state condition of the assertion.
  6099.  
  6100. >I don't think Geoff is going to change his mind.  The bottom line
  6101. >that I wish to emphasize is that no fully conforming program can
  6102. >adequately validate that an implementation conforms to the spec in
  6103. >question, because in order to do so some assumptions about the
  6104. >implementation BEYOND what is stated in the standard(s) must be made.
  6105.  
  6106. As I said before, this only affects whether or not the assertion is
  6107. classified as base or extended.  It does not affect the wording of the
  6108. assertion.  There's no point in arguing about classification until the
  6109. wording of the assertion has been agreed.
  6110.  
  6111. henry@zoo.toronto.edu (Henry Spencer) writes:
  6112.  
  6113. >>Well Doug has, but I haven't seen Henry re-affirm that claim since my
  6114. >>article explaining where the requirement comes from.
  6115.  
  6116. >Henry has just a few other things to do. :-)  However, Henry's opinion
  6117. >remains unchanged:  the requirement contains an important "if", the
  6118. >proposed assertions do not, and the assertions are therefore wrong.
  6119.  
  6120. This demonstrates a basic lack of understanding of the precise meaning
  6121. of "if" in POSIX.3.n assertions.  The word does not have the same meaning
  6122. as it does in POSIX.1.  Some uses of "if" in POSIX.1 correspond to "if"
  6123. in POSIX.3.1, but some correspond to "when".  Which one is used depends
  6124. on whether the "if" in POSIX.1 introduces an "implementation condition"
  6125. (i.e. an optional feature, like job control being supported, or whether
  6126. fork() detects ENOMEM) or a "state condition" (e.g. whether a file
  6127. descriptor to be used in the test is readable).  In POSIX.3.1 "if" is
  6128. only used in one precise situation: to introduce the implementation
  6129. condition of a conditional assertion (classified C or D).  For state
  6130. conditions, "when" is used.
  6131.  
  6132. It's a shame that POSIX.1 does not contain the same precise distinction
  6133. between "if" and "when".  It would save a lot of misunderstandings.
  6134.  
  6135. >The "if" condition is of a particularly awkward kind, in that no way is
  6136. >provided to evaluate it automatically, but that does not make it go
  6137. >away -- 1003.3.1 cannot replace it with something easier to evaluate,
  6138. >and certainly cannot replace it with "if (1)", however convenient that
  6139. >might be.
  6140.  
  6141. I take it that Henry agrees with Chuck that the "if" in question
  6142. introduces an implementation condition.  If it is a state condition,
  6143. as I believe, then the automatic evaluation is simply this:
  6144.  
  6145.     if (getc(fp) == EOF && ferror(fp))
  6146.  
  6147. Only the IEEE POSIX.1 interpretations committee can decide whether this
  6148. particular "if" denotes an optional feature.  In the absence of an
  6149. official interpretation, we will have to agree to differ.
  6150. -- 
  6151. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  6152. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  6153.  
  6154.  
  6155. Volume-Number: Volume 25, Number 67
  6156.  
  6157. From std-unix-request@uunet.UU.NET  Mon Sep 30 19:03:16 1991
  6158. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6159.     (5.61/UUNET-mail-drop) id AA24539; Mon, 30 Sep 91 19:03:16 -0400
  6160. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6161.     (5.61/UUNET-internet-primary) id AA18804; Mon, 30 Sep 91 19:03:05 -0400
  6162. Newsgroups: comp.std.unix
  6163. From: Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
  6164. Subject: Re: Error detection
  6165. Message-Id: <1991Sep30.225832.2188@uunet.uu.net>
  6166. Originator: sef@uunet.UU.NET
  6167. Sender: UseNet News <usenet@uunet.UU.NET>
  6168. Nntp-Posting-Host: uunet.uu.net
  6169. X-Submissions: std-unix@uunet.uu.net
  6170. Organization: Free Software Foundation, Cambridge, MA
  6171. References: <1991Sep20.202934.20683@uunet.uu.net> <1991Sep23.230530.26359@uunet.uu.net> <1991Sep24.180910.16958@uunet.uu.net>
  6172. Date: Mon, 30 Sep 1991 21:04:50 GMT
  6173. Reply-To: std-unix@uunet.UU.NET
  6174. To: std-unix@uunet.UU.NET
  6175.  
  6176. Submitted-by: mib@geech.gnu.ai.mit.edu (Michael I Bushnell)
  6177.  
  6178. In article <1991Sep24.180910.16958@uunet.uu.net> karish@pangea.stanford.edu (Chuck Karish) writes:
  6179.  
  6180.    In article <1991Sep24.022027.8149@uunet.uu.net> karish@pangea.stanford.edu
  6181.    (Chuck Karish) writes:
  6182.    >I can't find a requirement anywhere in the C standard or in
  6183.    >POSIX.1 that a stream function must ever return an error
  6184.    >indicator.
  6185.  
  6186.    Of course, this is wrong.  The C standard specifies that
  6187.    functions return EOF under some conditions.
  6188.  
  6189. I'm going to focus in this post on the following (proposed) validation
  6190. routine:
  6191.  
  6192.    foo = fopen (..., "r");
  6193.    close (fileno (foo));
  6194.    getc (foo);
  6195.  
  6196. The question appears to be, Does the standard require the getc to
  6197. return EOF?  And, if getc returns EOF, what is errno?
  6198.  
  6199. ANSI says (4.9.7.5): 
  6200.   If the stream is at end-of-file, the end-of-file indicator for the
  6201.   stream is set and getc returms EOF.  If a read error occurs, the
  6202.   error indicator for the stream is set and getc returns EOF.
  6203.  
  6204. The stream in the example has certainly not reached end-of-file by
  6205. either the ANSI C or Posix definitions.  Has a read error occurred?
  6206. ANSI C doesn't say, naturally.  Neither does Posix.  Nothing in
  6207. 8.2.3.5 says anything about errors.  8.2.3.11 only describes how errno
  6208. is set *if* an error is returned.  Since an error is not required by
  6209. Posix or ANSI, the answer to the first question is "no".
  6210.  
  6211. But, if we do get an error, which do we get?  In particular, are we
  6212. guaranteed EBADF?  The answer is (6.4.1.4), we could get any of EBADF,
  6213. EINTR, or EIO.  But then, the discussion in 2.4 says that there might
  6214. be error conditions caught before checking those three.  So, in the
  6215. last analysis, we could get any error at all, but whatever we do get
  6216. must be meaningful for read (or lseek).
  6217.  
  6218. Why does this matter?  Why not require (and test for) the "obvious"
  6219. implementation?  The GNU system will implement both file descriptors
  6220. and streams on top of a lower level abstraction, ports.  The port
  6221. interface supports directly mapped IO, among other things.  The test
  6222. above does the following in our system:
  6223.  
  6224.   allocate port to file
  6225.   allocate file descriptor to file (does a sort of "dup" on the port)
  6226.   close file descriptor
  6227.   get character (successfully)
  6228.  
  6229. This is quite natural.  By NOT having stdio go through read, et al, it
  6230. is able to take advantage of the superior speed provided by the port
  6231. interface.
  6232.  
  6233.     -mib
  6234.  
  6235. Volume-Number: Volume 25, Number 68
  6236.  
  6237. From std-unix-request@uunet.UU.NET  Mon Sep 30 21:09:42 1991
  6238. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6239.     (5.61/UUNET-mail-drop) id AA28447; Mon, 30 Sep 91 21:09:42 -0400
  6240. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6241.     (5.61/UUNET-internet-primary) id AA12882; Mon, 30 Sep 91 21:09:31 -0400
  6242. Newsgroups: comp.std.unix
  6243. From: Doug Gwyn <gwyn@smoke.brl.mil>
  6244. Subject: Re: Error detection
  6245. Message-Id: <1991Oct1.010439.11263@uunet.uu.net>
  6246. Originator: sef@uunet.UU.NET
  6247. Sender: UseNet News <usenet@uunet.UU.NET>
  6248. Nntp-Posting-Host: uunet.uu.net
  6249. X-Submissions: std-unix@uunet.uu.net
  6250. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  6251. References: <1991Sep27.235454.28831@uunet.uu.net> <1991Sep29.065459.17092@uunet.uu.net> <1991Sep30.201030.19276@uunet.uu.net>
  6252. Date: Mon, 30 Sep 1991 23:02:20 GMT
  6253. Reply-To: std-unix@uunet.UU.NET
  6254. To: std-unix@uunet.UU.NET
  6255.  
  6256. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  6257.  
  6258. In article <1991Sep30.201030.19276@uunet.uu.net> gwc@root.co.uk (Geoff Clare) writes:
  6259. >    if (getc(fp) == EOF && ferror(fp))
  6260.  
  6261. Still useless, because the condition that the error be due to one of the
  6262. situations for which errors are specified for the underlying functions
  6263.  
  6264.  
  6265. [ Some parts of this discussion are probably better suited to
  6266.   comp.{lang,std}.c and/or comp.unix.programmer -- mod ]
  6267.  
  6268. Volume-Number: Volume 25, Number 69
  6269.  
  6270. From std-unix-request@uunet.UU.NET  Tue Oct  1 21:11:01 1991
  6271. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6272.     (5.61/UUNET-mail-drop) id AA04768; Tue, 1 Oct 91 21:11:01 -0400
  6273. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6274.     (5.61/UUNET-internet-primary) id AA29630; Tue, 1 Oct 91 21:10:49 -0400
  6275. Newsgroups: comp.std.unix
  6276. From: Geoff Clare <gwc@root.co.uk>
  6277. Subject: Re: Error detection
  6278. Message-Id: <1991Oct2.010630.28661@uunet.uu.net>
  6279. Originator: sef@uunet.UU.NET
  6280. Sender: UseNet News <usenet@uunet.UU.NET>
  6281. Nntp-Posting-Host: uunet.uu.net
  6282. X-Submissions: std-unix@uunet.uu.net
  6283. Organization: UniSoft Ltd., London, England
  6284. References: <1991Sep23.230530.26359@uunet.uu.net> <1991Sep24.022027.8149@uunet.uu.net> <1991Sep26.185717.22736@uunet.uu.net> <1991Sep30.070838.12832@uunet.uu.net>
  6285. Date: Tue, 1 Oct 1991 17:03:26 GMT
  6286. Reply-To: std-unix@uunet.UU.NET
  6287. To: std-unix@uunet.UU.NET
  6288.  
  6289. Submitted-by: gwc@root.co.uk (Geoff Clare)
  6290.  
  6291. karish@mindcraft.com (Chuck Karish) writes:
  6292.  
  6293. >>    "If any of the functions above return an error indication, the
  6294. >>    value of errno shall be set to indicate the error condition."
  6295.  
  6296. >I find it to be unequivocally clear that the 1003.1
  6297. >committee meant this "if" to mean "if under this
  6298. >implementation the function returns an error ...".  This
  6299. >defines optional behavior.
  6300.  
  6301. >For confirmation, see the rationale for 8.2.3.11:
  6302.  
  6303. >    POSIX.1 intentionally does not require that all errors
  6304. >    detected by the underlying functions be detected by the
  6305. >    functions listed here.  There are many reasonable cases
  6306. >    where this might not occur; for example, many of the
  6307. >    functions with write() as an underlying function might
  6308. >    not detect a number of error conditions in cases where
  6309. >    they simply buffer output for a subsequent flush.
  6310.  
  6311. The rationale refers to "cases where this might not occur" and "in
  6312. cases where they simply buffer output".  I.e. in some situations the
  6313. function might return the error indication and in others it might not.
  6314. This supports my viewpoint that the "if" introduces a state condition,
  6315. not an implementation condition.
  6316.  
  6317. There is definitely a state condition at work here.  The question is
  6318. whether there is a state condition AND an implementation condition.
  6319. To see this imagine for a moment that detection of the error condition
  6320. is optional.  On implementations where the condition is detected, it
  6321. still is not required to be detected by all calls to the function, only
  6322. calls made in certain situations (e.g. only when the call causes a buffer
  6323. to be filled or flushed).  So the state condition is still there in
  6324. addition to the implementation condition.
  6325.  
  6326. Having established that there is always a state condition, I claim that
  6327. there cannot also be an implementation condition.  If there were, then
  6328. POSIX.1 would contain two "if"s, but there is only one.
  6329.  
  6330. Also, it seems to me that since there is a state condition on whether
  6331. the particular call made by the test returns an error, a separate
  6332. implementation condition on whether the function detects the error
  6333. condition is redundant.  If the error condition is not detected, then
  6334. the particular call will not return an error indication, so the
  6335. implementation condition is already being catered for.
  6336. -- 
  6337. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  6338. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  6339.  
  6340.  
  6341. Volume-Number: Volume 25, Number 70
  6342.  
  6343. From std-unix-request@uunet.UU.NET  Thu Oct  3 06:51:00 1991
  6344. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6345.     (5.61/UUNET-mail-drop) id AA22148; Thu, 3 Oct 91 06:51:00 -0400
  6346. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6347.     (5.61/UUNET-internet-primary) id AA12804; Thu, 3 Oct 91 06:50:42 -0400
  6348. Newsgroups: comp.std.unix
  6349. From: Chuck Karish <karish@mindcraft.com>
  6350. Subject: Re: Error detection
  6351. Message-Id: <1991Oct3.104605.11448@uunet.uu.net>
  6352. Summary: streams and file descriptors
  6353. Originator: sef@uunet.UU.NET
  6354. Sender: UseNet News <usenet@uunet.UU.NET>
  6355. Nntp-Posting-Host: uunet.uu.net
  6356. X-Submissions: std-unix@uunet.uu.net
  6357. Organization: Mindcraft, Inc.
  6358. References: <1991Sep23.230530.26359@uunet.uu.net> <1991Sep30.225832.2188@uunet.uu.net>
  6359. Date: Wed, 2 Oct 1991 17:12:47 GMT
  6360. Reply-To: std-unix@uunet.UU.NET
  6361. To: std-unix@uunet.UU.NET
  6362.  
  6363. Submitted-by: karish@mindcraft.com (Chuck Karish)
  6364.  
  6365. In article <1991Sep30.225832.2188@uunet.uu.net> mib@geech.gnu.ai.mit.edu
  6366. (Michael I Bushnell) writes:
  6367. >I'm going to focus in this post on the following (proposed) validation
  6368. >routine:
  6369. >
  6370. >   foo = fopen (..., "r");
  6371. >   close (fileno (foo));
  6372. >   getc (foo);
  6373. >
  6374. >The question appears to be, Does the standard require the getc to
  6375. >return EOF?
  6376.  
  6377. (No.)
  6378.  
  6379. >And, if getc returns EOF, what is errno?
  6380.  
  6381. >In particular, are we
  6382. >guaranteed EBADF?  The answer is (6.4.1.4), we could get any of EBADF,
  6383. >EINTR, or EIO.
  6384.  
  6385. I don't think so.  8.2.3.11 says that errno has to be set to
  6386. the value that would be required if write() were to fail
  6387. because of a bad file descriptor.  We are guaranteed to get
  6388. [EBADF].
  6389.  
  6390. >But then, the discussion in 2.4 says that there might
  6391. >be error conditions caught before checking those three.  So, in the
  6392. >last analysis, we could get any error at all, but whatever we do get
  6393. >must be meaningful for read (or lseek).
  6394. >
  6395. >Why does this matter?  Why not require (and test for) the "obvious"
  6396. >implementation?  The GNU system will implement both file descriptors
  6397. >and streams on top of a lower level abstraction, ports.  The port
  6398. >interface supports directly mapped IO, among other things.
  6399. >above does the following in our system:
  6400.  
  6401.   ( ... )
  6402.  
  6403. >This is quite natural.  By NOT having stdio go through read, et al, it
  6404. >is able to take advantage of the superior speed provided by the port
  6405. >interface.
  6406.  
  6407. The intention of the POSIX standards process is to avoid
  6408. imposing unnecessary restrictions on how implementors achieve
  6409. the specified functionality.  Much of 1003.1's description of
  6410. the behavior of stream-using functions is, however, done with
  6411. the implicit assumption that streams will be implemented atop
  6412. POSIX.1 low-level IO (read() and write()).
  6413.  
  6414. While 8.2.3 provides a reasonably clean abstraction using the
  6415. concept of an "open file description" which can be accessed
  6416. either through a file descriptor or through a stream, there are
  6417. at least half a dozen places in the standard where there is
  6418. reference to the "file descriptor associated with a stream".
  6419.  
  6420. The 1003.1 committees should make it clear whether it is
  6421. intended that streams must be implemented using file
  6422. descriptors.  If the answer is "yes", the most straightforward
  6423. way to do this would be to provide a POSIX definition of
  6424. "stream" in Section 2.  If the answer is "no", they must clear
  6425. up the meaning of the shorthand terminology by which it's
  6426. implied that a stream has an associated file descriptor.
  6427.  
  6428. Bear in mind that there's likely to be considerable resistance
  6429. to removing the assumption that streams are built on POSIX
  6430. low-level I/O (read() and write()).  This would require at least
  6431. special treatment for the file descriptors associated with the
  6432. standard streams (stdin, stdout, stderr) and some sort of
  6433. convention or documentation requirement about how streams are
  6434. handled; for example, what is the next available file
  6435. descriptor after a stream has been fopen()ed or fclose()d?
  6436.  
  6437.     Chuck Karish        karish@mindcraft.com
  6438.     Mindcraft, Inc.        (415) 323-9000
  6439.  
  6440.  
  6441. Volume-Number: Volume 25, Number 71
  6442.  
  6443. From std-unix-request@uunet.UU.NET  Sun Oct  6 01:14:26 1991
  6444. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6445.     (5.61/UUNET-mail-drop) id AA21844; Sun, 6 Oct 91 01:14:26 -0400
  6446. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6447.     (5.61/UUNET-internet-primary) id AA06080; Sun, 6 Oct 91 01:14:24 -0400
  6448. Newsgroups: comp.std.unix
  6449. From: Geoff Clare <gwc@root.co.uk>
  6450. Subject: Re: Error detection
  6451. Message-Id: <1991Oct6.051045.12457@uunet.uu.net>
  6452. Sender: "Sean Eric Fagan - comp.std.unix" <sef@uunet.UU.NET>
  6453. X-Submissions: std-unix@uunet.uu.net
  6454. Organization: UniSoft Ltd., London, England
  6455. References: <1991Sep29.065459.17092@uunet.uu.net> <1991Sep30.201030.19276@uunet.uu.net> <1991Oct1.010439.11263@uunet.uu.net>
  6456. Date: Fri, 4 Oct 1991 12:35:27 GMT
  6457. Reply-To: std-unix@uunet.UU.NET
  6458. To: std-unix@uunet.UU.NET
  6459.  
  6460. Submitted-by: gwc@root.co.uk (Geoff Clare)
  6461.  
  6462. gwyn@smoke.brl.mil (Doug Gwyn) writes:
  6463.  
  6464. >>    if (getc(fp) == EOF && ferror(fp))
  6465.  
  6466. >Still useless, because the condition that the error be due to one of the
  6467. >situations for which errors are specified for the underlying functions
  6468.  
  6469. Obviously the code above would be used after the particular error condition
  6470. to be tested has been set up.  If there is no portable way to set up the
  6471. required error condition such that no other error condition could occur,
  6472. then the assertion should be classified as extended.  In the case of
  6473.  
  6474.     fp = fopen(file, "r");
  6475.     close(fileno(fp));
  6476.  
  6477. being used to set up the error condition, I can't see any other error
  6478. condition that could occur, so I believe the getc-EBADF assertion should
  6479. not be classified as extended.
  6480. -- 
  6481. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  6482. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  6483.  
  6484.  
  6485. Volume-Number: Volume 25, Number 72
  6486.  
  6487. From std-unix-request@uunet.UU.NET  Mon Oct  7 15:18:34 1991
  6488. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6489.     (5.61/UUNET-mail-drop) id AA23233; Mon, 7 Oct 91 15:18:34 -0400
  6490. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6491.     (5.61/UUNET-internet-primary) id AA04141; Mon, 7 Oct 91 15:18:23 -0400
  6492. Newsgroups: comp.std.unix
  6493. From: Bob Lenk <rml@hpfcdc.fc.hp.com>
  6494. Subject: Re: Error detection
  6495. Message-Id: <1991Oct7.191247.18124@uunet.uu.net>
  6496. Sender: "Sean Eric Fagan - comp.std.unix" <sef@uunet.UU.NET>
  6497. X-Submissions: std-unix@uunet.uu.net
  6498. Organization: UUNET Communications Services
  6499. References: <1991Oct2.010630.28661@uunet.uu.net>
  6500. Date: Mon, 7 Oct 1991 18:34:49 GMT
  6501. Reply-To: std-unix@uunet.UU.NET
  6502. To: std-unix@uunet.UU.NET
  6503.  
  6504. Submitted-by: rml@hpfcdc.fc.hp.com (Bob Lenk)
  6505.  
  6506. gwc@root.co.uk (Geoff Clare) writes:
  6507.  
  6508. > There is definitely a state condition at work here.  The question is
  6509. > whether there is a state condition AND an implementation condition.
  6510. > To see this imagine for a moment that detection of the error condition
  6511. > is optional.  On implementations where the condition is detected, it
  6512. > still is not required to be detected by all calls to the function, only
  6513. > calls made in certain situations (e.g. only when the call causes a buffer
  6514. > to be filled or flushed).  So the state condition is still there in
  6515. > addition to the implementation condition.
  6516.  
  6517. It could be considered a state condition, without any requirement that
  6518. any implementation ever be in one state or the other.  That means that
  6519. a test writer who wants to test this point needs to consider whether any
  6520. given test method is ever appropriate for a given implementation -
  6521. effectively an implementation condition.
  6522.  
  6523. > Having established that there is always a state condition, I claim that
  6524. > there cannot also be an implementation condition.  If there were, then
  6525. > POSIX.1 would contain two "if"s, but there is only one.
  6526. >
  6527. > Also, it seems to me that since there is a state condition on whether
  6528. > the particular call made by the test returns an error, a separate
  6529. > implementation condition on whether the function detects the error
  6530. > condition is redundant.  If the error condition is not detected, then
  6531. > the particular call will not return an error indication, so the
  6532. > implementation condition is already being catered for.
  6533.  
  6534. Exactly.  That is why POSIX.1 does not require two "if"s.  POSIX.3.1
  6535. probably requires an "if" and a "when", because its "when" clauses
  6536. must describe conditions that can be reliably reached:
  6537.  
  6538.     POSIX.1:    if P, Q
  6539.     POSIX.3.1:    if P is ever true: when P, Q
  6540.  
  6541.         Bob Lenk (rml@fc.hp.com)
  6542.  
  6543.  
  6544. Volume-Number: Volume 25, Number 73
  6545.  
  6546. From std-unix-request@uunet.UU.NET  Tue Oct  8 21:09:25 1991
  6547. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6548.     (5.61/UUNET-mail-drop) id AA22836; Tue, 8 Oct 91 21:09:25 -0400
  6549. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6550.     (5.61/UUNET-internet-primary) id AA14465; Tue, 8 Oct 91 21:09:14 -0400
  6551. From: Robin O'Neill <rto@sequent.com>
  6552. Newsgroups: comp.std.unix
  6553. Subject: What is the schedule for 1003.3.1?
  6554. Keywords: POSIX 1003.3 POSIX.3 POSIX.3.1
  6555. Message-Id: <1991Oct8.211557.837@uunet.uu.net>
  6556. Sender: UseNet News <usenet@uunet.UU.NET>
  6557. Organization: Sequent Computer Systems, Inc.
  6558. Originator: sef@rodan.UU.NET
  6559. Nntp-Posting-Host: rodan.uu.net
  6560. X-Submissions: std-unix@uunet.uu.net
  6561. Date: 8 Oct 91 21:02:12 GMT
  6562. Reply-To: std-unix@uunet.UU.NET
  6563. To: std-unix@uunet.UU.NET
  6564.  
  6565. Submitted-by: rto@sequent.com (Robin O'Neill)
  6566.  
  6567. Can anyone send me the schedule of the POSIX.3.1 test assertions?  
  6568. This should be the test assertions associated with the latest
  6569. approved POSIX.1-1990.  I.e., what is the current draft number?  
  6570. When does it go to ballot?  Is it in ballot already?  If so, which round
  6571. and when is the anticipated approval date?
  6572.  
  6573. Thanks for any info,
  6574. -rto-
  6575.  
  6576. -------------------------------------------------------------------------------
  6577. Robin T. O'Neill                    uucp:  uunet!sequent!rto
  6578. Sequent Computer Systems, Inc.            internet:  rto@sequent.com
  6579. Mail Stop DES2-741               telephone:  (503) 578-4277
  6580. 15450 S.W. Koll Parkway                wireless:  N7QPG (2m FM 147.04MHz)
  6581. Beaverton, Oregon  97006-6063           in-person:  Hey You
  6582.  
  6583.  
  6584. Volume-Number: Volume 25, Number 74
  6585.  
  6586. From std-unix-request@uunet.UU.NET  Wed Oct  9 16:21:50 1991
  6587. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6588.     (5.61/UUNET-mail-drop) id AA08921; Wed, 9 Oct 91 16:21:50 -0400
  6589. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6590.     (5.61/UUNET-internet-primary) id AA05218; Wed, 9 Oct 91 16:21:29 -0400
  6591. From: Geoff Clare <gwc@root.co.uk>
  6592. Newsgroups: comp.std.unix
  6593. Subject: Re: Error detection
  6594. Message-Id: <1991Oct9.190759.10415@uunet.uu.net>
  6595. References: <1991Oct2.010630.28661@uunet.uu.net> <1991Oct7.191247.18124@uunet.uu.net>
  6596. Sender: UseNet News <usenet@uunet.UU.NET>
  6597. Organization: UUNET Communications Services
  6598. Originator: sef@rodan.UU.NET
  6599. Nntp-Posting-Host: rodan.uu.net
  6600. X-Submissions: std-unix@uunet.uu.net
  6601. Date: 9 Oct 91 15:45:35 GMT
  6602. Reply-To: std-unix@uunet.UU.NET
  6603. To: std-unix@uunet.UU.NET
  6604.  
  6605. Submitted-by: gwc@root.co.uk (Geoff Clare)
  6606.  
  6607. rml@hpfcdc.fc.hp.com (Bob Lenk) writes:
  6608.  
  6609. >Exactly.  That is why POSIX.1 does not require two "if"s.  POSIX.3.1
  6610. >probably requires an "if" and a "when", because its "when" clauses
  6611. >must describe conditions that can be reliably reached:
  6612.  
  6613. Wrong.  A "when" clause which describes a condition that cannot be
  6614. reliably reached is perfectly acceptable in a POSIX.3.1 assertion.
  6615. It simply means the assertion must be classified as extended.
  6616.  
  6617. -- 
  6618. Geoff Clare <gwc@root.co.uk>  (USA UUCP-only mailers: ...!uunet!root.co.uk!gwc)
  6619. UniSoft Limited, London, England.   Tel: +44 71 729 3773   Fax: +44 71 729 3273
  6620.  
  6621. Volume-Number: Volume 25, Number 75
  6622.  
  6623. From std-unix-request@uunet.UU.NET  Thu Oct 10 21:05:08 1991
  6624. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6625.     (5.61/UUNET-mail-drop) id AA07044; Thu, 10 Oct 91 21:05:08 -0400
  6626. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6627.     (5.61/UUNET-internet-primary) id AA22194; Thu, 10 Oct 91 21:04:56 -0400
  6628. Newsgroups: comp.std.unix
  6629. From: Bob Lenk <rml@hpfcdc.fc.hp.com>
  6630. Subject: Re: Error detection
  6631. Message-Id: <1991Oct11.005124.14281@uunet.uu.net>
  6632. Originator: sef@rodan.UU.NET
  6633. Sender: UseNet News <usenet@uunet.UU.NET>
  6634. Nntp-Posting-Host: rodan.uu.net
  6635. X-Submissions: std-unix@uunet.uu.net
  6636. Organization: UUNET Communications Services
  6637. References: <1991Oct9.190759.10415@uunet.uu.net>
  6638. Date: Fri, 11 Oct 1991 00:44:03 GMT
  6639. Reply-To: std-unix@uunet.UU.NET
  6640. To: std-unix@uunet.UU.NET
  6641.  
  6642. Submitted-by: rml@hpfcdc.fc.hp.com (Bob Lenk)
  6643.  
  6644. gwc@root.co.uk (Geoff Clare) writes:
  6645.  
  6646. > >Exactly.  That is why POSIX.1 does not require two "if"s.  POSIX.3.1
  6647. > >probably requires an "if" and a "when", because its "when" clauses
  6648. > >must describe conditions that can be reliably reached:
  6649. >
  6650. > Wrong.  A "when" clause which describes a condition that cannot be
  6651. > reliably reached is perfectly acceptable in a POSIX.3.1 assertion.
  6652. > It simply means the assertion must be classified as extended.
  6653.  
  6654. I'm not sure how much of my statement Geoff means is wrong.  I stand
  6655. corrected that the "when" clause does not have to be reliably reached.
  6656. A correct statement would be that a "when" clause that is not restricted
  6657. by an "if" clause must be reachable (whether or not reliably or portably)
  6658. on all conforming implementations.
  6659.  
  6660. If Geoff meant that POSIX.3(.1) does not require both "if" and "when", I
  6661. am less certain.  I have given roughly the same argument to several of
  6662. the POSIX.3 working group members in the past.  The logical conclusion
  6663. is that conditional features can be completely handled by extended
  6664. assertions, and there is no need for the distinctions between type B, C,
  6665. and D assertions.  The working group clearly wanted a distinction.  I
  6666. find that the definition of "conditional feature" in POSIX.3 does little
  6667. to really define what that distinction is (it goes into great length to
  6668. explain that it is not exactly the same as "optional" in POSIX.1, but
  6669. falls short of defining what it is).
  6670.  
  6671. One school of thought is that a conditional feature is anything that
  6672. occurs on some implementations but not others.  With that definition,
  6673. the "feature" under discussion (getc() returning EOF due to an
  6674. unreadable file descriptor) would be conditional, and this assertion
  6675. would require both "if" and "when" clauses.
  6676.  
  6677. If conditional features are indeed closer to POSIX.1 options, a simple
  6678. extended assertion with one "when" would suffice.  However, test suite
  6679. writers must then understand that it is quite acceptable that a
  6680. "when" clause never be true on some conforming implementations (not
  6681. only that there may not be a reliable way to reach it, but that it
  6682. may be truly unreachable).  The feature under discussion falls into
  6683. that category.
  6684.  
  6685. In any case, my original point was that, while POSIX.3 has very specific
  6686. rules that may require multiple "if"s or "if" and "when", POSIX.1
  6687. is written in English.  Thus assertion writers cannot simply count
  6688. the number of "if"s in POSIX.1 to determine how POSIX.3.1 assertions
  6689. need to be written.
  6690.  
  6691.         Bob Lenk
  6692.         rml@fc.hp.com
  6693.         {uunet,hplabs}!fc.hp.com!rml
  6694.  
  6695.  
  6696. Volume-Number: Volume 25, Number 76
  6697.  
  6698. From std-unix-request@uunet.UU.NET  Mon Oct 14 05:58:51 1991
  6699. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6700.     (5.61/UUNET-mail-drop) id AA05789; Mon, 14 Oct 91 05:58:51 -0400
  6701. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6702.     (5.61/UUNET-internet-primary) id AA01959; Mon, 14 Oct 91 05:58:44 -0400
  6703. Newsgroups: comp.std.unix
  6704. From: Peter Collinson <pc@hillside.co.uk>
  6705. Subject: Standards Update, P1201.1: Windowing Toolkit API
  6706. Message-Id: <1991Oct14.094436.27452@uunet.uu.net>
  6707. Originator: sef@rodan.UU.NET
  6708. Sender: UseNet News <usenet@uunet.UU.NET>
  6709. Nntp-Posting-Host: rodan.uu.net
  6710. X-Submissions: std-unix@uunet.uu.net
  6711. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  6712. Date: Sun, 13 Oct 1991 23:05:15 GMT
  6713. Reply-To: std-unix@uunet.UU.NET
  6714. To: std-unix@uunet.UU.NET
  6715.  
  6716. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  6717.  
  6718. USENIX Standards Watchdog Committee
  6719. Stephen R. Walli <stephe@usenix.org>, Report Editor
  6720. P1201.1: Windowing Toolkit API
  6721.  
  6722.  
  6723. Luisa Johnson, Harris Space Systems reports on the July 8- 12, 1991
  6724. meeting in Santa Clara, CA:
  6725.  
  6726. The P1201.1 Working Group's attendance was significantly lower than
  6727. that of previous P1201.1 quarterly working group sessions.  Most
  6728. participants expected much controversy due to the recent selection of
  6729. the base and reference documents at the Boulder meeting in May.
  6730. Fortunately, the participants that did show up for the week long
  6731. meetings were more eager to start drafting the standards document than
  6732. arguing over document selection.  After all, these documents are only
  6733. informational sources to be used in the drafting of the standard and
  6734. the layered API standards document itself will most likely not
  6735. resemble either of them.
  6736.  
  6737. The working group was fairly well represented by both layered API
  6738. developers and current or future users.  With the exception of the
  6739. first morning session, no representatives from any major toolkit or
  6740. hardware vendor actively participated in the P1201.1 sessions the rest
  6741. of the week.
  6742.  
  6743. The working group spent the first morning discussing the usual
  6744. administrative items and identifying a strategy to be used for the
  6745. rest of week in order to generate the first standard draft document.
  6746. The strategy consisted of:
  6747.  
  6748.    - reviewing the strawman document outline,
  6749.  
  6750.    - identifying areas to be deferred or to be omitted from
  6751.      the standard,
  6752.  
  6753.    - identifying and describing a basic list of objects
  6754.      including their attributes.
  6755.  
  6756. As a result of the document outline review process, a few minor
  6757. modifications and additions were made to the General section, the
  6758. Terminology and General Requirements section, and appendices were
  6759. identified by the group.  Topics covered by the group included:
  6760.  
  6761.    - internationalization concerns,
  6762.  
  6763.    - geometry management and anchoring,
  6764.  
  6765.    - color,
  6766.  
  6767.    - cursors,
  6768.  
  6769. Rationale will be added regarding the basic requirements list,
  6770. language bindings, and the process that was used to select the base
  6771. and reference documents.
  6772.  
  6773. The next area tackled by the group was that of identifying areas to
  6774. defer for future meeting discussions or topics to omit from the
  6775. standard.  If the area had been or is currently being addressed by
  6776. other working or standards groups, then it was considered out of our
  6777. standard's scope.  Areas such as drawing, resource formats, and
  6778. resource languages, were identified as possible areas to expand on
  6779. once the initial first draft is completed.
  6780.  
  6781. WNDX Corporation made a presentation to the working group.  There
  6782. product allows developers to specify a look and feel that may be
  6783. different from the underlying GUI's ``look-and- feel .'' It is
  6784. implemented to the native library and emulates the style guide, so a
  6785. developer could select the MacIntosh ``look-and-feel '' on a UNIX
  6786. Windows environment.  WNDX Corporation representatives informed the
  6787. group of their desire to participate in this standard's effort and the
  6788. working group agreed that the standards effort could only benefit with
  6789. the inclusion of new approaches and their lessons learned.
  6790.  
  6791. >From the second day through the end of the week, P1201.1 worked
  6792. diligently on the identification of objects and attributes.  This
  6793. became an iterative process by which the first pass was a simple
  6794. candidate list of objects which became further defined each day.
  6795. Attributes were assigned and refined throughout the week.  No effort
  6796. was devoted to the specific syntax and semantics to be utilized.
  6797. Instead, for each object, pointers to both the Base and Reference
  6798. documents were annotated for further details.  By the end of the week,
  6799. a robust set of objects and attributes had been identified and the
  6800. working group members felt a sense of accomplishment which none had
  6801. anticipated.  Working group members felt that this had been one of the
  6802. most fruitful meetings in their turbulent history.  The next mailing
  6803. will include the approved first draft.
  6804.  
  6805. With the lack of participation by any major GUI vendor, one can only
  6806. wonder if the accomplishments achieved during this week could have
  6807. been obtained had they not been so busy fighting the GUI PAR wars.
  6808.  
  6809. Volume-Number: Volume 25, Number 77
  6810.  
  6811. From std-unix-request@uunet.UU.NET  Tue Oct 15 23:28:40 1991
  6812. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6813.     (5.61/UUNET-mail-drop) id AA06507; Tue, 15 Oct 91 23:28:40 -0400
  6814. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6815.     (5.61/UUNET-internet-primary) id AA13827; Tue, 15 Oct 91 23:28:29 -0400
  6816. Newsgroups: comp.std.unix
  6817. From: Clive Feather <clive@x.co.uk>
  6818. Subject: Shell character classes.
  6819. Message-Id: <1991Oct16.013352.20329@uunet.uu.net>
  6820. Originator: sef@rodan.UU.NET
  6821. Sender: UseNet News <usenet@uunet.UU.NET>
  6822. Nntp-Posting-Host: rodan.uu.net
  6823. X-Submissions: std-unix@uunet.uu.net
  6824. Organization: UUNET Communications Services
  6825. Date: Tue, 15 Oct 1991 14:17:18 GMT
  6826. Reply-To: std-unix@uunet.UU.NET
  6827. To: std-unix@uunet.UU.NET
  6828.  
  6829. Submitted-by: clive@x.co.uk (Clive Feather)
  6830.  
  6831. Can someone please send me a description of the character classes (i.e. the
  6832. "[...]" form of wildcard) in the Posix shell syntax, including any
  6833. internationalization facilities. Note that I explicitly want the shell
  6834. wildcards, and not normal regular expressions.
  6835.  
  6836. Thanks in advance.
  6837.  
  6838. --
  6839. Clive D.W. Feather     | IXI Limited         | If you lie to the compiler,
  6840. clive@x.co.uk          | 62-74 Burleigh St.  | it will get its revenge.
  6841. Phone: +44 223 462 131 | Cambridge   CB1 1OJ |   - Henry Spencer
  6842. (USA: 1 800 XDESK 57)  | United Kingdom      |
  6843.  
  6844.  
  6845. Volume-Number: Volume 25, Number 78
  6846.  
  6847. From std-unix-request@uunet.UU.NET  Wed Oct 16 14:32:24 1991
  6848. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6849.     (5.61/UUNET-mail-drop) id AA27016; Wed, 16 Oct 91 14:32:24 -0400
  6850. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6851.     (5.61/UUNET-internet-primary) id AA28679; Wed, 16 Oct 91 14:32:11 -0400
  6852. Newsgroups: comp.std.unix
  6853. From: "John S. Morris" <jsm@rosencrantz.osf.org>
  6854. Subject: Re: Standards Update, P1201.1: Windowing Toolkit API
  6855. Message-Id: <1991Oct16.182055.8313@uunet.uu.net>
  6856. Originator: sef@rodan.UU.NET
  6857. Sender: UseNet News <usenet@uunet.UU.NET>
  6858. Nntp-Posting-Host: rodan.uu.net
  6859. X-Submissions: std-unix@uunet.uu.net
  6860. Organization: Open Software Foundation
  6861. References: <1991Oct14.094436.27452@uunet.uu.net>
  6862. Date: Wed, 16 Oct 1991 17:01:53 GMT
  6863. Reply-To: std-unix@uunet.UU.NET
  6864. To: std-unix@uunet.UU.NET
  6865.  
  6866. Submitted-by: jsm@rosencrantz.osf.org (John S. Morris)
  6867.  
  6868. In article <1991Oct14.094436.27452@uunet.uu.net> pc@hillside.co.uk (Peter Collinson) writes:
  6869. >Submitted-by: pc@hillside.co.uk (Peter Collinson)
  6870. >
  6871. >
  6872. >With the lack of participation by any major GUI vendor, one can only
  6873. >wonder if the accomplishments achieved during this week could have
  6874. >been obtained had they not been so busy fighting the GUI PAR wars.
  6875. >
  6876. There is an up side to non-participation and a down side. The up side
  6877. has been pointed out here - yes, some forms of work can progress much
  6878. more quickly within a small group, however a down side of non-participation, 
  6879. particularly from the several experts in X Window System toolkits who have 
  6880. participated in the past, means there is a body of knowledge and experience 
  6881. in GUI architectures which is no longer available. That may mean that some 
  6882. of the work to come will not happen as quickly as some would like to think.
  6883.  
  6884. -John
  6885. ============================================================================
  6886. John S. Morris                  ___   ___   ___        Voice: (617) 621-8739
  6887. Open Software Foundation       /  /  /__   /__           Fax: (617) 225-2782
  6888. 11 Cambridge Center           /__/  ___/  /         Internet: jsm@osf.org
  6889. Cambridge, MA  02142                                    uucp: uunet!osf!jsm
  6890.  
  6891.  
  6892. Volume-Number: Volume 25, Number 79
  6893.  
  6894. From std-unix-request@uunet.UU.NET  Thu Oct 17 00:14:05 1991
  6895. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6896.     (5.61/UUNET-mail-drop) id AA22276; Thu, 17 Oct 91 00:14:05 -0400
  6897. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6898.     (5.61/UUNET-internet-primary) id AA20602; Thu, 17 Oct 91 00:13:52 -0400
  6899. Newsgroups: comp.std.unix
  6900. From: Peter Collinson <pc@hillside.co.uk>
  6901. Subject: Standards Update, POSIX.7: System Administration
  6902. Message-Id: <1991Oct16.235655.1720@uunet.uu.net>
  6903. Originator: sef@rodan.UU.NET
  6904. Sender: UseNet News <usenet@uunet.UU.NET>
  6905. Nntp-Posting-Host: rodan.uu.net
  6906. X-Submissions: std-unix@uunet.uu.net
  6907. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  6908. Date: Wed, 16 Oct 1991 14:26:41 GMT
  6909. Reply-To: std-unix@uunet.UU.NET
  6910. To: std-unix@uunet.UU.NET
  6911.  
  6912. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  6913.  
  6914. USENIX Standards Watchdog Committee
  6915. Stephen R. Walli <stephe@usenix.org>, Report Editor
  6916. POSIX.7: System Administration
  6917.  
  6918.  
  6919. Martin Kirk <m.kirm@xopen.co.uk> reports on the July 8-12, 1991
  6920. meeting in Santa Clara, CA:
  6921.  
  6922. The July meeting of the POSIX.7 (System Administration) working group
  6923. continued the new direction established over the previous two meetings.
  6924.  
  6925. Small groups continued work on Printer Management, Software
  6926. Management, and further refinement of the ``Big Sticky Issues'', i.e.
  6927. the global context of these activities.
  6928.  
  6929. The most important results from the ``Sticky Issues'' small group were
  6930. recommendations for the style and content of POSIX.7 standards.  Their
  6931. final recommendations will bring the group into full alignment with
  6932. the rest of POSIX.  The overall structure for each functional area
  6933. standard will have sections for:
  6934.  
  6935.    - POSIX.1 style programmatic interfaces based on existing practice
  6936.  
  6937.    - POSIX.2 style command line interfaces based on existing practice
  6938.  
  6939.    - Managed object definitions to provide a basis for the distributed
  6940.      system administration functionality [Ed. -- It is appropriate to
  6941.      mention that these have no relationship to the communications
  6942.      object types to be managed with the object management API being
  6943.      defined by P1224 and POSIX.17.]
  6944.  
  6945. This approach represents a compromise between ``traditional'' systems
  6946. administration and the object-oriented approach.  Where there are
  6947. existing interfaces available they will be used.  They will be
  6948. supplemented by managed object definitions needed to provide uniform
  6949. interoperability between different implementations.
  6950.  
  6951. Adopting this approach, along with the earlier decision to build
  6952. separate functional area standards instead of a monolithic tome,
  6953. should enable the group to progress more swiftly.
  6954.  
  6955. The Print Management group has been pursuing an approach based on the
  6956. MIT Palladium distributed printing system.  They received a strong
  6957. contribution from the UNIX Systems Lab (USL) championing the System V
  6958. lp print system.  This was a timely interjection, allowing us the
  6959. opportunity to address the issues that would have undoubtedly arisen
  6960. during the balloting process.  By identifying both the common subset
  6961. and the differences it should be possible to provide the appropriate
  6962. rationale for the contents of the eventual standard.
  6963.  
  6964. The Software Management group continued to make good progress.  They
  6965. are working with contributions from several sources, including AT&T,
  6966. DEC, HP, Siemens-Nixdorf, and SCO.  (My apologies to anyone I left
  6967. out).  As one would expect, all these differing systems are remarkably
  6968. similar in terms of the functionality they present to the user, and
  6969. thus the group found it relatively painless to identify the large
  6970. common subset between them.
  6971.  
  6972. The group's other activity was to identify a third functional area in
  6973. which to commence work.  The chosen candidate was User Management as
  6974. it was felt that many other system resources were managed in terms of
  6975. their relationship to users.
  6976.  
  6977. By the time the next POSIX meeting takes place in October, the OSF
  6978. Distributed Management Environment selection will have been
  6979. announced.  It will be very interesting to see what effect this has on
  6980. the system administration standards process.
  6981.  
  6982.  
  6983. Volume-Number: Volume 25, Number 80
  6984.  
  6985. From std-unix-request@uunet.UU.NET  Thu Oct 17 15:34:46 1991
  6986. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  6987.     (5.61/UUNET-mail-drop) id AA05118; Thu, 17 Oct 91 15:34:46 -0400
  6988. Received: from kithrup.com by relay1.UU.NET with SMTP 
  6989.     (5.61/UUNET-internet-primary) id AA14649; Thu, 17 Oct 91 15:34:32 -0400
  6990. Newsgroups: comp.std.unix
  6991. From: atkinson@cmf.nrl.navy.mil
  6992. Subject: Re: POSIX.7 Update
  6993. Message-Id: <1991Oct17.192422.22442@uunet.uu.net>
  6994. Originator: sef@rodan.UU.NET
  6995. Nntp-Posting-Host: rodan.uu.net
  6996. X-Submissions: std-unix@uunet.uu.net
  6997. Organization: UUNET Communications Services
  6998. References: <1991Oct16.235655.1720@uunet.uu.net>
  6999. Date: Thu, 17 Oct 1991 11:38:00 GMT
  7000. Reply-To: std-unix@uunet.UU.NET
  7001. To: std-unix@uunet.UU.NET
  7002. Sender: Network News <news@kithrup.com>
  7003. Source-Info:  From (or Sender) name not authenticated.
  7004.  
  7005. Submitted-by: atkinson@cmf.nrl.navy.mil
  7006.  
  7007. In article <1991Oct16.235655.1720@uunet.uu.net> pc@hillside.co.uk (Peter Collinson) writes:
  7008. >The most important results from the ``Sticky Issues'' small group were
  7009. >recommendations for the style and content of POSIX.7 standards.  Their
  7010. >final recommendations will bring the group into full alignment with
  7011. >the rest of POSIX.  The overall structure for each functional area
  7012. >standard will have sections for:
  7013. >
  7014. >   - POSIX.1 style programmatic interfaces based on existing practice
  7015. >
  7016. >   - POSIX.2 style command line interfaces based on existing practice
  7017.  
  7018.   So far, so good.  I hope that they use common sense in selecting
  7019. command line interfaces like lp/lpr/lpq/lprm/lpstat rather than more
  7020. obscure, less widely used ones.
  7021.  
  7022. >  The Print Management group has been pursuing an approach based on the
  7023. >MIT Palladium distributed printing system.  They received a strong
  7024. >contribution from the UNIX Systems Lab (USL) championing the System V
  7025. >lp print system.  This was a timely interjection, allowing us the
  7026. >opportunity to address the issues that would have undoubtedly arisen
  7027. >during the balloting process.  By identifying both the common subset
  7028. >and the differences it should be possible to provide the appropriate
  7029. >rationale for the contents of the eventual standard.
  7030.  
  7031.   Note Clearly that MIT Palladium is NOT "existing practice" outside
  7032. of MIT and as such is best left out of POSIX for now.  The POSIX
  7033. groups should concentrate on standardising EXISTING PRACTICE in a
  7034. clean manner.  Palladium might or might not be wonderful, but there is
  7035. insufficient experience in using it outside the MIT and especially MIT
  7036. Athena environment to justify including it in POSIX.
  7037.  
  7038.   Existing practice is what is in UNIX System V and in 4BSD systems.
  7039. Palladium hasn't been in either and there isn't enough experience
  7040. with it to make it a basis for standards work.
  7041.  
  7042.  
  7043. >The group's other activity was to identify a third functional area in
  7044. >which to commence work.  The chosen candidate was User Management as
  7045. >it was felt that many other system resources were managed in terms of
  7046. >their relationship to users.
  7047.  
  7048.   This isn't even close to being clear.  What is meant by "User Management"
  7049. and could we please have some examples ??
  7050.  
  7051.   Why do I get the feeling that the POSIX effort has gotten completely
  7052. out of hand and is now inventing new areas to "standardise" that
  7053. aren't appropriately standardised yet because they aren't well
  7054. understood and we haven't the collective experience with the
  7055. technology yet...
  7056.  
  7057. Randall Atkinson
  7058. atkinson@itd.nrl.navy.mil  (note new address :-)
  7059.  
  7060.  
  7061.  
  7062. Volume-Number: Volume 25, Number 81
  7063.  
  7064. From std-unix-request@uunet.UU.NET  Thu Oct 17 16:46:15 1991
  7065. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7066.     (5.61/UUNET-mail-drop) id AA10657; Thu, 17 Oct 91 16:46:15 -0400
  7067. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7068.     (5.61/UUNET-internet-primary) id AA06771; Thu, 17 Oct 91 16:46:05 -0400
  7069. Newsgroups: comp.std.unix
  7070. From: "John S. Morris" <jsm@rosencrantz.osf.org>
  7071. Subject: Re: POSIX.7 Update
  7072. Message-Id: <1991Oct17.203248.25857@uunet.uu.net>
  7073. Originator: sef@rodan.UU.NET
  7074. Nntp-Posting-Host: rodan.uu.net
  7075. X-Submissions: std-unix@uunet.uu.net
  7076. Organization: Open Software Foundation
  7077. References: <1991Oct16.235655.1720@uunet.uu.net> <1991Oct17.192422.22442@uunet.uu.net>
  7078. Date: Thu, 17 Oct 1991 20:05:02 GMT
  7079. Reply-To: std-unix@uunet.UU.NET
  7080. To: std-unix@uunet.UU.NET
  7081. Sender: Network News <news@kithrup.com>
  7082. Source-Info:  From (or Sender) name not authenticated.
  7083.  
  7084. Submitted-by: jsm@rosencrantz.osf.org (John S. Morris)
  7085.  
  7086. In article <1991Oct17.192422.22442@uunet.uu.net> atkinson@cmf.nrl.navy.mil writes:
  7087. >
  7088. >  Note Clearly that MIT Palladium is NOT "existing practice" outside
  7089. >of MIT and as such is best left out of POSIX for now.  The POSIX
  7090. >groups should concentrate on standardising EXISTING PRACTICE in a
  7091. >clean manner. [....deleted]
  7092. >  Why do I get the feeling that the POSIX effort has gotten completely
  7093. >out of hand and is now inventing new areas to "standardise" that
  7094. >aren't appropriately standardised yet because they aren't well
  7095. >understood and we haven't the collective experience with the
  7096. >technology yet...
  7097.  
  7098. Exactly. Couldn't be said better. Why is it that we aren't applying
  7099. the same reasoning to 1201.1? Why are we inventing technology in 
  7100. standards committees via API's? Don't we have enough examples of what 
  7101. that leads to?  Sigh.....
  7102.  
  7103. -John
  7104. ============================================================================
  7105. John S. Morris                  ___   ___   ___        Voice: (617) 621-8739
  7106. Open Software Foundation       /  /  /__   /__           Fax: (617) 225-2782
  7107. 11 Cambridge Center           /__/  ___/  /         Internet: jsm@osf.org
  7108. Cambridge, MA  02142                                    uucp: uunet!osf!jsm
  7109.  
  7110.  
  7111. Volume-Number: Volume 25, Number 82
  7112.  
  7113. From std-unix-request@uunet.UU.NET  Thu Oct 17 17:56:59 1991
  7114. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7115.     (5.61/UUNET-mail-drop) id AA26919; Thu, 17 Oct 91 17:56:59 -0400
  7116. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7117.     (5.61/UUNET-internet-primary) id AA28667; Thu, 17 Oct 91 17:56:50 -0400
  7118. Newsgroups: comp.std.unix
  7119. From: "Matthew J. Wicks" <wicks@dcdmjw.fnal.gov>
  7120. Subject: Re: POSIX.7 Update
  7121. Message-Id: <1991Oct17.214513.10095@uunet.uu.net>
  7122. Originator: sef@rodan.UU.NET
  7123. Nntp-Posting-Host: rodan.uu.net
  7124. X-Submissions: std-unix@uunet.uu.net
  7125. Organization: Fermi National Accelerator Laboratory, Batavia IL
  7126. References: <1991Oct16.235655.1720@uunet.uu.net> <1991Oct17.192422.22442@uunet.uu.net> <1991Oct17.192422.22442@uunet.uu.net>,
  7127. Date: Thu, 17 Oct 1991 21:32:08 GMT
  7128. Reply-To: std-unix@uunet.UU.NET
  7129. To: std-unix@uunet.UU.NET
  7130. Sender: Network News <news@kithrup.com>
  7131. Source-Info:  From (or Sender) name not authenticated.
  7132.  
  7133. Submitted-by: wicks@dcdmjw.fnal.gov (Matthew J. Wicks)
  7134.  
  7135. In article <1991Oct17.192422.22442@uunet.uu.net>, atkinson@cmf.nrl.navy.mil writes:
  7136. > In article <1991Oct16.235655.1720@uunet.uu.net> pc@hillside.co.uk (Peter Collinson) writes:
  7137. >   This isn't even close to being clear.  What is meant by "User Management"
  7138. > and could we please have some examples ??
  7139.  
  7140. I'm not sure if I know all the things that is meant by user management,
  7141. but is contains things like:
  7142.  
  7143.     Account addition and deletion
  7144.     Group addition and deletion
  7145.     Adding and deleting members from groups
  7146.  
  7147. I believe it will also include more complex things as well.
  7148.  
  7149. >   Why do I get the feeling that the POSIX effort has gotten completely
  7150. > out of hand and is now inventing new areas to "standardise" that
  7151. > aren't appropriately standardised yet because they aren't well
  7152. > understood and we haven't the collective experience with the
  7153. > technology yet...
  7154.  
  7155. I don't believe POSIX.7 is currently addressing areas to standardise that
  7156. aren't well understood. Printer management, software management, and user
  7157. management is partially define above are things that people have been doing
  7158. and  have "solved" for a long time. I believe your difficulty may be with
  7159. how a certain area is standardised. It seems as if you believe that Palladium
  7160. doesn't belong in the standard. However, that is something totally different
  7161. from believing that printer management shouldn't be standardised.
  7162.  
  7163. -- 
  7164. Matt Wicks
  7165. Fermi National Accelerator Laboratory
  7166. wicks@fnal.fnal.gov
  7167. 708-840-8083
  7168.  
  7169.  
  7170. Volume-Number: Volume 25, Number 83
  7171.  
  7172. From std-unix-request@uunet.UU.NET  Thu Oct 17 20:00:28 1991
  7173. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7174.     (5.61/UUNET-mail-drop) id AA04746; Thu, 17 Oct 91 20:00:28 -0400
  7175. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7176.     (5.61/UUNET-internet-primary) id AA07795; Thu, 17 Oct 91 20:00:17 -0400
  7177. Newsgroups: comp.std.unix
  7178. From: Duke Robillard <duke@pyuxv.cc.bellcore.com>
  7179. Subject: POSIX.7, Printing+Palladium, User Management
  7180. Message-Id: <1991Oct17.232150.27987@uunet.uu.net>
  7181. Originator: sef@rodan.UU.NET
  7182. Nntp-Posting-Host: rodan.uu.net
  7183. X-Submissions: std-unix@uunet.uu.net
  7184. Organization: Bellcore, Piscataway, NJ
  7185. References: <1991Oct16.235655.1720@uunet.uu.net> <1991Oct17.192422.22442@uunet.uu.net>
  7186. Date: Thu, 17 Oct 1991 21:55:06 GMT
  7187. Reply-To: std-unix@uunet.UU.NET
  7188. To: std-unix@uunet.UU.NET
  7189. Sender: Network News <news@kithrup.com>
  7190. Source-Info:  From (or Sender) name not authenticated.
  7191.  
  7192. Submitted-by: duke@pyuxv.cc.bellcore.com (Duke Robillard)
  7193.  
  7194. [As background, I'm in the POSIX.7 group.  I'm the technical editor,
  7195. and I'm working in the Printing Small Group]
  7196.  
  7197. In an article in comp.std.unix, atkinson@cmf.nrl.navy.mil writes:
  7198.  
  7199. >...selecting
  7200. >command line interfaces like lp/lpr/lpq/lprm/lpstat rather than more
  7201. >obscure, less widely used ones.
  7202.  
  7203. >>  The Print Management group has been pursuing an approach based on the
  7204. >>MIT Palladium distributed printing system. 
  7205. >  Note Clearly that MIT Palladium is NOT "existing practice" outside
  7206. >of MIT and as such is best left out of POSIX for now.  
  7207.  
  7208. I understand your point, but that's not the way the group is moving.
  7209. Thanks to the influence of Jeff Peacock, formally of USL, the latest 
  7210. version of the draft is much less Palladium-esque than before, but
  7211. Palladium is still one of the base documents.  The command set will
  7212. most likely not be lp/lpstat/etc.  And the programmer API for the
  7213. print system is still likely to be based on Palladium, since there
  7214. isn't one for SVR4 lp.  
  7215.  
  7216. If this bugs people, I would suggest that they come to Parsippany
  7217. next week to yell at us in person.  If it turns out that most people
  7218. think we're wrong, we'll change.
  7219.  
  7220. (As a side note, Palladium was recently selected for OSF's DME,
  7221. so it's about to become much more widespread)
  7222.  
  7223. >>which to commence work.  The chosen candidate was User Management as
  7224. >>it was felt that many other system resources were managed in terms of
  7225. >>their relationship to users.
  7226. >  This isn't even close to being clear.  What is meant by "User 
  7227. >Management" and could we please have some examples ??
  7228.  
  7229. A problem with standards groups is that they get caught up in their
  7230. own jargon.  (For example, I find it almost impossible to understand 
  7231. people from the OSI groups)  "User Management" is dealing with the
  7232. stuff related to user accounts.  This includes the stuff traditionally
  7233. in /etc/password, quotas, /etc/group, stuff like that.
  7234.  
  7235. >  Why do I get the feeling that the POSIX effort has gotten completely
  7236. >out of hand and is now inventing new areas to "standardise" that
  7237. >aren't appropriately standardised yet because they aren't well
  7238. >understood and we haven't the collective experience with the
  7239. >technology yet...
  7240.  
  7241. This is a real danger.  We don't think that it is happening, but
  7242. it is a concern.  
  7243.  
  7244. I suspect there are people out there who agree with the criticisms
  7245. leveled in this posting.  I would say that the best way to address
  7246. these issues is to come to a meeting and complain.  We WILL listen.
  7247. You could have a major impact--the USL person who championed lp
  7248. last time did.
  7249.  
  7250. The next meeting is next week, Oct 21-25 in Parsippany, NJ.  The
  7251. one after that is January 13-17, in Irvine, CA.
  7252.  
  7253. Bob Robillard
  7254. Duke Robillard                              DoD #0130
  7255. Internet:   duke@pyuxv.cc.bellcore.com
  7256. USENET:     {backbone}!bcr!pyuxv!duke
  7257.  
  7258.  
  7259. Volume-Number: Volume 25, Number 84
  7260.  
  7261. From std-unix-request@uunet.UU.NET  Tue Oct 22 02:58:23 1991
  7262. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7263.     (5.61/UUNET-mail-drop) id AA27352; Tue, 22 Oct 91 02:58:23 -0400
  7264. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7265.     (5.61/UUNET-internet-primary) id AA00283; Tue, 22 Oct 91 02:09:51 -0400
  7266. Newsgroups: comp.std.unix
  7267. From: "Scott E. Preece" <preece@urbana.mcd.mot.com>
  7268. Subject: Re: POSIX.7 Update
  7269. Message-Id: <1991Oct22.040826.16047@uunet.uu.net>
  7270. Originator: sef@rodan.UU.NET
  7271. Nntp-Posting-Host: rodan.uu.net
  7272. X-Submissions: std-unix@uunet.uu.net
  7273. Organization: UUNET Communications Services
  7274. Date: Sun, 20 Oct 1991 05:31:26 GMT
  7275. Reply-To: std-unix@uunet.UU.NET
  7276. To: std-unix@uunet.UU.NET
  7277. Sender: Network News <news@kithrup.com>
  7278. Source-Info:  From (or Sender) name not authenticated.
  7279.  
  7280. Submitted-by: preece@urbana.mcd.mot.com (Scott E. Preece)
  7281.  
  7282. | >  Why do I get the feeling that the POSIX effort has gotten completely
  7283. | >out of hand and is now inventing new areas to "standardise" that
  7284. | >aren't appropriately standardised yet because they aren't well
  7285. | >understood and we haven't the collective experience with the
  7286. | >technology yet...
  7287. | Exactly. Couldn't be said better. Why is it that we aren't applying
  7288. | the same reasoning to 1201.1? Why are we inventing technology in 
  7289. | standards committees via API's? Don't we have enough examples of what 
  7290. | that leads to?  Sigh.....
  7291. | -John
  7292. ---
  7293. 1201.1 is working on distilling a standard from the experience of a
  7294. group of technology providers whose experience covers a wide range of
  7295. hardware and operating systems and who have strong ideas about what
  7296. works and what doesn't work.  My impression is that that was the way an
  7297. IEEE working group was supposed to work.  The group is not "inventing
  7298. technology through APIs", it is on the contrary developing an API that
  7299. expresses several existing technologies.  The people representing those
  7300. technologies in 1201.1 are working together to make sure the resulting
  7301. API suits the needs of their technologies.  The result should be
  7302. eminently implementable and I would expect that some of the work group
  7303. members will have implementations by the time the group is ready to ballot.
  7304.  
  7305. I like that model for developing a standard far better than one which
  7306. would allow a single technology vendor to say "We'd like to have our
  7307. technology be published as an IEEE standard, please; the standard has to
  7308. be exactly what our product is and the balloting rules have to be that
  7309. anything that would change it is out of scope."  If POSIX had taken that
  7310. model when it began, we would no doubt have "IEEE Standard BSD UNIX" and
  7311. "IEEE Standard System V UNIX" and "IEEE Standard HP-UX" and "IEEE
  7312. Standard Ultrix" and the net gain in application portability would have
  7313. been approximately zero.
  7314.  
  7315. If one is looking for danger, one might look at the move this Summer by
  7316. a group of large companies (including, I am sorry to say, my own) to
  7317. push the IEEE to bless as standards products which hadn't even been
  7318. described yet, like the OSF DME offering.  The people pushing that
  7319. movement clearly believe that having a single standard is much more
  7320. important than whether the standard is a good one.
  7321.  
  7322. scott
  7323.  
  7324. --
  7325. scott preece
  7326. (In this forum, as at IEEE TCOS meetings, I hang my Motorola hat at the
  7327. door; I speak *only* for myself. That's the way the book says it's
  7328. supposed to work.)
  7329.  
  7330. motorola/mcg urbana design center    1101 e. university, urbana, il   61801
  7331. uucp:    uunet!uiucuxc!udc!preece,     arpa:    preece@urbana.mcd.mot.com
  7332. phone:    217-384-8589              fax:    217-384-8550
  7333.  
  7334.  
  7335. Volume-Number: Volume 25, Number 85
  7336.  
  7337. From std-unix-request@uunet.UU.NET  Thu Oct 24 06:48:53 1991
  7338. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7339.     (5.61/UUNET-mail-drop) id AA28891; Thu, 24 Oct 91 06:48:53 -0400
  7340. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7341.     (5.61/UUNET-internet-primary) id AA23459; Thu, 24 Oct 91 06:48:26 -0400
  7342. Newsgroups: comp.std.unix
  7343. From: Kee Hinckley <nazgul@alfalfa.com>
  7344. Subject: Re: POSIX.7 Update
  7345. Message-Id: <1991Oct24.080322.9936@uunet.uu.net>
  7346. Originator: sef@rodan.UU.NET
  7347. Nntp-Posting-Host: rodan.uu.net
  7348. X-Submissions: std-unix@uunet.uu.net
  7349. Organization: asi
  7350. References: <1991Oct22.040826.16047@uunet.uu.net>
  7351. Date: Wed, 23 Oct 1991 17:45:44 GMT
  7352. Reply-To: std-unix@uunet.UU.NET
  7353. To: std-unix@uunet.UU.NET
  7354. Sender: Network News <news@kithrup.com>
  7355. Source-Info:  From (or Sender) name not authenticated.
  7356.  
  7357. Submitted-by: nazgul@alfalfa.com (Kee Hinckley)
  7358.  
  7359. In article <1991Oct22.040826.16047@uunet.uu.net> preece@urbana.mcd.mot.com (Scott E. Preece) writes:
  7360. >IEEE working group was supposed to work.  The group is not "inventing
  7361. >technology through APIs", it is on the contrary developing an API that
  7362. >expresses several existing technologies.  The people representing those
  7363.  
  7364. I have to disagree.  There are two technologies involved here.  GUI toolkits,
  7365. and virtual toolkits (layered on anything, GUI or not).  P1201 is not
  7366. reinventing the first, I'll grant that.  But it is reinventing the second.
  7367. Virtual toolkits are an unproven technology (sample implementations have
  7368. only existed for a few years and have not been used in any major commercial
  7369. applications that I'm aware of).  It is also not at all clear that software
  7370. developers would want or could use such toolkits.  A quick survey of Mac
  7371. applications shows that almost all of them extend the toolkit in one way
  7372. or another, but such extensions are not portable and often not even possible
  7373. in a virtual toolkit.  Software developers have complained greatly about
  7374. the speed and memory intensiveness of existing X toolkits, yet a virtual
  7375. toolkit will *increase* the size and weight of applications.
  7376.  
  7377. Unfortunately most software development houses can't afford to send someone
  7378. to P1201 meetings.  I can barely afford the time to read the mailings.
  7379.  
  7380. P1201 is inventing new technology, and it is doing so soley because it
  7381. was unable to overcome the political problems that would have entailed
  7382. from selecting or extending existing technology.  I firmly believe that
  7383. the reason that P1201 is now off and doing work without political
  7384. interference is that the task they have set for themselves is so
  7385. ridiculously impossible (at least in any substantially useful implementation)
  7386. that no one is worried about it ever becoming a competitive standard.
  7387.  
  7388.  
  7389. -- 
  7390. Alfalfa Software, Inc.          |       Poste:  The EMail for Unix
  7391. nazgul@alfalfa.com              |       Send Anything... Anywhere
  7392. 617/497-2922                    |       info@alfalfa.com
  7393.  
  7394. I'm not sure which upsets me more: that people are so unwilling to accept
  7395. responsibility for their own actions, or that they are so eager to regulate
  7396. everyone else's.
  7397.  
  7398.  
  7399. Volume-Number: Volume 25, Number 86
  7400.  
  7401. From std-unix-request@uunet.UU.NET  Thu Oct 24 06:49:15 1991
  7402. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7403.     (5.61/UUNET-mail-drop) id AA28926; Thu, 24 Oct 91 06:49:15 -0400
  7404. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7405.     (5.61/UUNET-internet-primary) id AA23504; Thu, 24 Oct 91 06:48:46 -0400
  7406. Newsgroups: comp.std.unix
  7407. From: "John S. Morris" <jsm@rosencrantz.osf.org>
  7408. Subject: Re: POSIX.7 Update
  7409. Message-Id: <1991Oct24.080520.11065@uunet.uu.net>
  7410. Originator: sef@rodan.UU.NET
  7411. Nntp-Posting-Host: rodan.uu.net
  7412. X-Submissions: std-unix@uunet.uu.net
  7413. Organization: Open Software Foundation
  7414. References: <1991Oct22.040826.16047@uunet.uu.net>
  7415. Date: Wed, 23 Oct 1991 19:40:08 GMT
  7416. Reply-To: std-unix@uunet.UU.NET
  7417. To: std-unix@uunet.UU.NET
  7418. Sender: Network News <news@kithrup.com>
  7419. Source-Info:  From (or Sender) name not authenticated.
  7420.  
  7421. Submitted-by: jsm@rosencrantz.osf.org (John S. Morris)
  7422.  
  7423. In article <1991Oct22.040826.16047@uunet.uu.net> preece@urbana.mcd.mot.com (Scott E. Preece) writes:
  7424. >1201.1 is working on distilling a standard from the experience of a
  7425. >group of technology providers whose experience covers a wide range of
  7426. >hardware and operating systems and who have strong ideas about what
  7427. >works and what doesn't work.  My impression is that that was the way an
  7428.  
  7429. I'm glad to see 1201.1 has changed since the last time I sat in.
  7430. And it appears to be on a much more pragmatic path according to your
  7431. description. 
  7432.  
  7433. >I like that model for developing a standard far better than one which
  7434. >would allow a single technology vendor to say "We'd like to have our
  7435. >technology be published as an IEEE standard, please; the standard has to
  7436. >be exactly what our product is and the balloting rules have to be that
  7437. >anything that would change it is out of scope."  If POSIX had taken that
  7438. >model when it began, we would no doubt have "IEEE Standard BSD UNIX" and
  7439. >"IEEE Standard System V UNIX" and "IEEE Standard HP-UX" and "IEEE
  7440. >Standard Ultrix" and the net gain in application portability would have
  7441. >been approximately zero.
  7442.  
  7443. Well, I have to disagree. I don't find anything in the IEEE or the
  7444. Computer Society rules that says this is what the IEEE is about.
  7445. And when one looks at the realm of IEEE standards, I think 1003.1
  7446. stands out as the exception rather than the rule. For example, look
  7447. at all the hardware standards (many more than POSIX after all) and
  7448. see how many fit your description. On the other how many applications
  7449. have been written to 1003.1 versus the single product DOS? I believe
  7450. there are many valid reasons for standardizing on an existing specification
  7451. rather than "harmonizing" a series of similar specs. 
  7452.  
  7453. Your quote of the intent of my PAR is an interesting one - given that I 
  7454. specifically negated that assertion in the TCOS/SS-SEC. People sometimes
  7455. read more into things than are really there. If you check the wording
  7456. of the PAR it is consistent with the intent of the proposal and not at
  7457. all in violation of IEEE rules. And once the standard is approved - it 
  7458. is a completely moot point, since then the IEEE would own all rights to 
  7459. the specification and it could evolve in whatever direction the IEEE
  7460. would like.
  7461.  
  7462. Anyway, if in your model, standards could be developed as quickly as
  7463. end users want them - I'd have some different opinions.
  7464.  
  7465. >If one is looking for danger, one might look at the move this Summer by
  7466. >a group of large companies (including, I am sorry to say, my own) to
  7467. >push the IEEE to bless as standards products which hadn't even been
  7468. >described yet, like the OSF DME offering.  The people pushing that
  7469. >movement clearly believe that having a single standard is much more
  7470. >important than whether the standard is a good one.
  7471.  
  7472. Sorry, I don't know anything about this. OSF has never had such a policy
  7473. in any case. The Motif proposal was made after three years of experience
  7474. and at the request of more than fifty end users, ISV's and system
  7475. vendors. If you saw my proposal, you would notice many significant
  7476. organizations supporting it. Such a move is no doubt related to the
  7477. great demand for standards in this area.
  7478.  
  7479. >(In this forum, as at IEEE TCOS meetings, I hang my Motorola hat at the
  7480. >door; I speak *only* for myself. That's the way the book says it's
  7481. >supposed to work.)
  7482.  
  7483. Actually the book says more than that. In TCOS I represent my organization
  7484. as an Institutional Representative not myself. (It also happens that 
  7485. personally I agree with most of my organziations' perspectives 8-)).
  7486.  
  7487. -John
  7488. ============================================================================
  7489. John S. Morris                  ___   ___   ___        Voice: (617) 621-8739
  7490. Open Software Foundation       /  /  /__   /__           Fax: (617) 225-2782
  7491. 11 Cambridge Center           /__/  ___/  /         Internet: jsm@osf.org
  7492. Cambridge, MA  02142                                    uucp: uunet!osf!jsm
  7493.  
  7494.  
  7495. Volume-Number: Volume 25, Number 87
  7496.  
  7497. From std-unix-request@uunet.UU.NET  Tue Oct 29 03:44:14 1991
  7498. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7499.     (5.61/UUNET-mail-drop) id AA19079; Tue, 29 Oct 91 03:44:14 -0500
  7500. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7501.     (5.61/UUNET-internet-primary) id AA10527; Tue, 29 Oct 91 03:43:47 -0500
  7502. Newsgroups: comp.std.unix
  7503. From: "Scott E. Preece" <preece@urbana.mcd.mot.com>
  7504. Subject: Re: POSIX.7 Update
  7505. Message-Id: <1991Oct29.082745.11428@uunet.uu.net>
  7506. Originator: sef@rodan.UU.NET
  7507. Nntp-Posting-Host: rodan.uu.net
  7508. X-Submissions: std-unix@uunet.uu.net
  7509. Organization: UUNET Communications Services
  7510. Date: Mon, 28 Oct 1991 16:19:43 GMT
  7511. Reply-To: std-unix@uunet.UU.NET
  7512. To: std-unix@uunet.UU.NET
  7513. Sender: Network News <news@kithrup.com>
  7514. Source-Info:  From (or Sender) name not authenticated.
  7515.  
  7516. Submitted-by: preece@urbana.mcd.mot.com (Scott E. Preece)
  7517.  
  7518. Kee Hinckley writes:
  7519.  
  7520. | Virtual toolkits are an unproven technology (sample implementations have
  7521. | only existed for a few years and have not been used in any major commercial
  7522. | applications that I'm aware of).  It is also not at all clear that software
  7523. | developers would want or could use such toolkits.  A quick survey of Mac
  7524. | applications shows that almost all of them extend the toolkit in one way
  7525. | or another, but such extensions are not portable and often not even possible
  7526. | in a virtual toolkit.  Software developers have complained greatly about
  7527. | the speed and memory intensiveness of existing X toolkits, yet a virtual
  7528. | toolkit will *increase* the size and weight of applications.
  7529. ---
  7530. Unless all the vendors who spoke to the committee are lying
  7531. outrageously, there are in fact *a lot* of major applications fielded
  7532. using one virtual toolkit or another.  Most of the instances presented
  7533. to the group were in-house projects rather than software for sale,
  7534. though some of the major ISVs have their own virtual toolkits which do
  7535. underly released commercial products.  Some ISVs will clearly not want
  7536. to use a layered toolkit, just as some ISVs build wholly separate
  7537. products for different operating systems; if you have the time and
  7538. resources, are willing to deal with out-of-synch releases on different
  7539. bases, and want to make sure you get the absolute last bit of
  7540. performance and polish on each platform, that's the only way to go.  On
  7541. the other hand, delivering a product that is slightly slower and
  7542. slightly larger and uses slightly less of the maximum envelope of
  7543. functionality on each toolkit, *but* uses exactly the same source base
  7544. on each platform allows the developer to concentrate on application
  7545. functionality, rather than interface functionality, and helps insure
  7546. that releases on all platforms are in synch and that fixing a bug found
  7547. on one platform fixes the same bug for all platforms.  These are not
  7548. small advantages.
  7549.  
  7550. As to the second point (that most applications extend the toolkit), one
  7551. could argue that such extensions are not a good thing -- that they
  7552. either indicate shortcomings in the toolkit or failure of the developers
  7553. to live within the rules, at risk of confusing their users.
  7554. In any case, the vendors working in P1201.1 all provide mechanisms for
  7555. getting to the underlying toolkit, when developers are willing to
  7556. sacrifice portability for some other factor.
  7557.  
  7558. scott
  7559.  
  7560. --
  7561. scott preece
  7562. motorola/mcg urbana design center    1101 e. university, urbana, il   61801
  7563. uucp:    uunet!uiucuxc!udc!preece,     arpa:    preece@urbana.mcd.mot.com
  7564. phone:    217-384-8589              fax:    217-384-8550
  7565.  
  7566.  
  7567. Volume-Number: Volume 25, Number 88
  7568.  
  7569. From std-unix-request@uunet.UU.NET  Thu Oct 31 07:12:17 1991
  7570. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7571.     (5.61/UUNET-mail-drop) id AA27798; Thu, 31 Oct 91 07:12:17 -0500
  7572. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7573.     (5.61/UUNET-internet-primary) id AA06816; Thu, 31 Oct 91 07:09:13 -0500
  7574. Xref: kithrup comp.std.unix:405 comp.std.internat:694
  7575. Newsgroups: comp.std.unix,comp.std.internat
  7576. From: Andrew Hume <andrew@alice.att.com>
  7577. Subject: Storing identifiers
  7578. Message-Id: <1991Oct31.115139.21580@uunet.uu.net>
  7579. Followup-To: comp.std.internat
  7580. Originator: sef@rodan.UU.NET
  7581. Nntp-Posting-Host: rodan.uu.net
  7582. X-Submissions: std-unix@uunet.uu.net
  7583. Organization: AT&T Bell Laboratories, Murray Hill NJ
  7584. Date: Thu, 31 Oct 1991 02:08:58 GMT
  7585. Reply-To: std-unix@uunet.UU.NET
  7586. To: std-unix@uunet.UU.NET
  7587. Sender: Network News <news@kithrup.com>
  7588. Source-Info:  From (or Sender) name not authenticated.
  7589.  
  7590. Submitted-by: andrew@alice.att.com (Andrew Hume)
  7591.  
  7592.     I am the technical editor for a working paper
  7593. covering file system formats for write once and rewritable disks
  7594. within X3. This paper is also about to be taken as teh base
  7595. paper for ECMA and eventually ISO conideration.
  7596.  
  7597.     the question i have has to do with various identifier fields.
  7598. These are fixed lengths, mostly 128 bytes but some are 32 bytes.
  7599. We support all sorts of character sets, including 2022 and 10646
  7600. (when that gets fixed), but we believe that in practice, most
  7601. use will be with one-byte-per-char charsets. Accordingly, we
  7602. would like the fields to include at least one (00) byte (they
  7603. will be (00) filled on the right anyway) so they are conveniently
  7604. handled from C.
  7605.  
  7606.     the actual question is whether one null is enough or should
  7607. we have 4 (00) bytes? My feeling is that multi-byte char folks
  7608. tend not to use null terminators but i don't know. These fields
  7609. do not have lengths associated with them.
  7610.  
  7611.     andrew hume
  7612.     andrew@research.att.com
  7613.  
  7614. [ Note the followup-To, comp.std.unix readers -- mod ]
  7615.  
  7616. Volume-Number: Volume 25, Number 89
  7617.  
  7618. From std-unix-request@uunet.UU.NET  Fri Nov  1 15:41:06 1991
  7619. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7620.     (5.61/UUNET-mail-drop) id AA02216; Fri, 1 Nov 91 15:41:06 -0500
  7621. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7622.     (5.61/UUNET-internet-primary) id AA20284; Fri, 1 Nov 91 15:40:44 -0500
  7623. Newsgroups: comp.std.unix
  7624. From: Kee Hinckley <nazgul@alfalfa.com>
  7625. Subject: Re: POSIX.7 Update
  7626. Message-Id: <1991Nov1.202943.25495@uunet.uu.net>
  7627. Originator: sef@rodan.UU.NET
  7628. Nntp-Posting-Host: rodan.uu.net
  7629. X-Submissions: std-unix@uunet.uu.net
  7630. Organization: asi
  7631. References: <1991Oct29.082745.11428@uunet.uu.net>
  7632. Date: Thu, 31 Oct 1991 21:33:17 GMT
  7633. Reply-To: std-unix@uunet.UU.NET
  7634. To: std-unix@uunet.UU.NET
  7635. Sender: Network News <news@kithrup.com>
  7636. Source-Info:  From (or Sender) name not authenticated.
  7637.  
  7638. Submitted-by: nazgul@alfalfa.com (Kee Hinckley)
  7639.  
  7640. In article <1991Oct29.082745.11428@uunet.uu.net> preece@urbana.mcd.mot.com (Scott E. Preece) writes:
  7641. >| Virtual toolkits are an unproven technology (sample implementations have
  7642. >| only existed for a few years and have not been used in any major commercial
  7643. >| applications that I'm aware of).  It is also not at all clear that software
  7644. >| developers would want or could use such toolkits.  A quick survey of Mac
  7645. >| applications shows that almost all of them extend the toolkit in one way
  7646. >| or another, but such extensions are not portable and often not even possible
  7647. >| in a virtual toolkit.  Software developers have complained greatly about
  7648. >| the speed and memory intensiveness of existing X toolkits, yet a virtual
  7649. >| toolkit will *increase* the size and weight of applications.
  7650. >---
  7651. >Unless all the vendors who spoke to the committee are lying
  7652. >outrageously, there are in fact *a lot* of major applications fielded
  7653. >using one virtual toolkit or another.  Most of the instances presented
  7654.  
  7655. Examples?
  7656.  
  7657. >to the group were in-house projects rather than software for sale,
  7658. >though some of the major ISVs have their own virtual toolkits which do
  7659. >underly released commercial products.  Some ISVs will clearly not want
  7660.  
  7661. The task of writing a virtual toolkit for an ISV is very different than
  7662. that of writing one for the entire industry.  Extensibility is no longer
  7663. as important, and functionality can be limited to those features that
  7664. that particular ISV needs.  There are vendors who have multiple-GUI
  7665. toolkits that they use for major commercial products (Neuron Data
  7666. comes to mind), but that's a very different beast than a toolkit which
  7667. overlays an number of existing GUI toolkit.
  7668.  
  7669. >performance and polish on each platform, that's the only way to go.  On
  7670. >the other hand, delivering a product that is slightly slower and
  7671. >slightly larger and uses slightly less of the maximum envelope of
  7672. >functionality on each toolkit, *but* uses exactly the same source base
  7673.  
  7674. I picked a random assortment of Mac applications one day (around 20
  7675. or so) and found *none* which didn't extend the toolkit in some way.
  7676. If you believe that a virtual toolkit can be built which is only somewhat
  7677. larger (and the Unix toolkits are mainly too large already) and only
  7678. slightly slower (I finally saw a Unix machine that ran it's GUI as fast
  7679. as a Mac - but it took an HP700 to pull it off), and still have room
  7680. for extensibility (both in terms of future enhancements and vendor
  7681. needs), internatinalization, resolution independent geometry management...
  7682. and all of the other things which the P1201 documents claim to have
  7683. as goals - then by all means, do it.  Maybe I'm just being pessimistic,
  7684. but I just don't believe it's possible.
  7685.  
  7686. >that releases on all platforms are in synch and that fixing a bug found
  7687. >on one platform fixes the same bug for all platforms.  These are not
  7688.  
  7689. That raises an interesting issue.  None of the current Unix GUI toolkits
  7690. are renouned for their bug-free features.  Finding those bugs is
  7691. currently a major task.  Adding another toolkit on top of them is 
  7692. going to make that task even harder.
  7693.  
  7694. >As to the second point (that most applications extend the toolkit), one
  7695. >could argue that such extensions are not a good thing -- that they
  7696. >either indicate shortcomings in the toolkit or failure of the developers
  7697. >to live within the rules, at risk of confusing their users.
  7698.  
  7699. No general toolkit can, or should be expected to, anticipate the needs
  7700. of all applications.  In a dynamic environment applications are 
  7701. constantly pushing the GUI envelope, and the toolkits play catch up
  7702. by looking at those apps which seem to have done a good job and adding
  7703. those features that seem worthwhile.  It's a constant evolutionary
  7704. pattern, with the marketplace making the choices.  Any attempt to
  7705. cut off such extensions or worse yet, place them in the sole control
  7706. of the toolkit vender, is a sure recipe for failure.
  7707.  
  7708. >In any case, the vendors working in P1201.1 all provide mechanisms for
  7709. >getting to the underlying toolkit, when developers are willing to
  7710. >sacrifice portability for some other factor.
  7711.  
  7712. I understand that this is a goal of P1201.1, and in fact I consider
  7713. it, and the other goals expressed, all quite laudable.  But I'm not
  7714. a politician, I'm a techie, and I've yet to see a technical explanation
  7715. for how those goals are going to come to pass.
  7716.  
  7717. A slight side note.  I had a conversation off-line (so to speak) with
  7718. someone about this subject.  During that discussion I did come to the
  7719. realization that one good thing could come from P1201.1.  If the
  7720. API were well-designed, it would be possible to write a toolkit using
  7721. the API that was *not* virtual, and thus would not have a number of
  7722. the design problems that a virtual toolkit must suffer from.  The
  7723. drawback to this is that a good toolkit API is going to have some
  7724. different design goals (and less limitations) than a VAPI, so it's
  7725. unlikely that such a toolkit would overcome much more than the speed
  7726. and memory problems.  However, if P1201.1 is to become generally used
  7727. I suspect that it will only happen if such "native" toolkits are
  7728. written.
  7729.  
  7730.                             -kee
  7731. -- 
  7732. Alfalfa Software, Inc.          |       Poste:  The EMail for Unix
  7733. nazgul@alfalfa.com              |       Send Anything... Anywhere
  7734. 617/497-2922                    |       info@alfalfa.com
  7735.  
  7736. I'm not sure which upsets me more: that people are so unwilling to accept
  7737. responsibility for their own actions, or that they are so eager to regulate
  7738. everyone else's.
  7739.  
  7740.  
  7741. Volume-Number: Volume 25, Number 90
  7742.  
  7743. From std-unix-request@uunet.UU.NET  Mon Nov  4 17:48:42 1991
  7744. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  7745.     (5.61/UUNET-mail-drop) id AA25914; Mon, 4 Nov 91 17:48:42 -0500
  7746. Received: from kithrup.com by relay2.UU.NET with SMTP 
  7747.     (5.61/UUNET-internet-primary) id AA19997; Mon, 4 Nov 91 17:48:29 -0500
  7748. Newsgroups: comp.std.unix
  7749. From: Bob Bagwill <bagwill@swe.ncsl.nist.gov>
  7750. Subject: Current P1201.1 PAR [was Re: POSIX.7 Update]
  7751. Message-Id: <1991Nov4.214751.2145@uunet.uu.net>
  7752. Originator: sef@rodan.UU.NET
  7753. Keywords: uniform layerable
  7754. Nntp-Posting-Host: rodan.uu.net
  7755. X-Submissions: std-unix@uunet.uu.net
  7756. Organization: Computer Systems Lab
  7757. References: <1991Oct29.082745.11428@uunet.uu.net> <1991Nov1.202943.25495@uunet.uu.net>
  7758. Date: Mon, 4 Nov 1991 17:00:06 GMT
  7759. Reply-To: std-unix@uunet.UU.NET
  7760. To: std-unix@uunet.UU.NET
  7761. Sender: Network News <news@kithrup.com>
  7762. Source-Info:  From (or Sender) name not authenticated.
  7763.  
  7764. Submitted-by: bagwill@swe.ncsl.nist.gov (Bob Bagwill)
  7765.  
  7766. FYI, the current P1201.1 PAR refers to a Uniform (rather than Virtual)
  7767. API, and the API must be layerable (rather than layered) on top of
  7768. multiple toolkits (Macintosh, MS Window, OpenLook, Motif, etc). 
  7769. That means an API vendor can do whatever they like to make the
  7770. API efficient for a particular platform, including circumventing the
  7771. native toolkit, if necessary or possible.
  7772.  
  7773. --
  7774. Bob Bagwill
  7775. NIST P1201.1 attendee
  7776. -- 
  7777. Bob Bagwill    NIST/Computer Systems Lab/Software Engineering Group
  7778.  
  7779.  
  7780. Volume-Number: Volume 25, Number 91
  7781.  
  7782. From std-unix-request@uunet.UU.NET  Wed Nov  6 01:53:13 1991
  7783. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  7784.     (5.61/UUNET-mail-drop) id AA18559; Wed, 6 Nov 91 01:53:13 -0500
  7785. Received: from kithrup.com by relay2.UU.NET with SMTP 
  7786.     (5.61/UUNET-internet-primary) id AA05214; Wed, 6 Nov 91 01:53:10 -0500
  7787. Newsgroups: comp.std.unix
  7788. From: NORCOTT_BILL@tandem.com
  7789. Subject: Does AT&T System VR4 comply with POSIX 1003.2 ??
  7790. Message-Id: <1991Nov6.020128.24155@uunet.uu.net>
  7791. Originator: sef@rodan.UU.NET
  7792. Nntp-Posting-Host: rodan.uu.net
  7793. X-Submissions: std-unix@uunet.uu.net
  7794. Organization: UUNET Communications Services
  7795. Date: Mon, 4 Nov 1991 00:32:00 GMT
  7796. Reply-To: std-unix@uunet.UU.NET
  7797. To: std-unix@uunet.UU.NET
  7798. Sender: Network News <news@kithrup.com>
  7799. Source-Info:  From (or Sender) name not authenticated.
  7800.  
  7801. Submitted-by: NORCOTT_BILL@tandem.com
  7802.  
  7803.  
  7804. I would like to know whether or not AT&T UNIX System V Release 4 complies with
  7805. the POSIX 1003.2 and 1003.2a draft standards for shell and utilities?  What
  7806. about X/Open XPG3 and XPG4?
  7807.  
  7808. Please reply by mail to Bill Norcott at:
  7809.  
  7810.      norcott_bill@tandem.com
  7811.  
  7812. Regards,
  7813. Bill Norcott
  7814.  
  7815.  
  7816. Volume-Number: Volume 25, Number 92
  7817.  
  7818. From std-unix-request@uunet.UU.NET  Wed Nov 13 16:31:47 1991
  7819. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  7820.     (5.61/UUNET-mail-drop) id AA09256; Wed, 13 Nov 91 16:31:47 -0500
  7821. Received: from kithrup.com by relay2.UU.NET with SMTP 
  7822.     (5.61/UUNET-internet-primary) id AA27022; Wed, 13 Nov 91 16:31:38 -0500
  7823. Newsgroups: comp.std.unix
  7824. From: Dave Cline <dave@denver.88open.org>
  7825. Subject: Re: Does AT&T System VR4 comply with POSIX 1003.2 ??
  7826. Message-Id: <1991Nov13.212102.24423@uunet.uu.net>
  7827. Originator: sef@rodan.UU.NET
  7828. Nntp-Posting-Host: rodan.uu.net
  7829. X-Submissions: std-unix@uunet.uu.net
  7830. Organization: UUNET Communications Services
  7831. Date: Thu, 7 Nov 1991 19:06:55 GMT
  7832. Reply-To: std-unix@uunet.UU.NET
  7833. To: std-unix@uunet.UU.NET
  7834. Sender: Network News <news@kithrup.com>
  7835. Source-Info:  From (or Sender) name not authenticated.
  7836.  
  7837. Submitted-by: dave@denver.88open.org (Dave Cline)
  7838.  
  7839. In NORCOTT_BILL@tandem.com writes:
  7840. > I would like to know whether or not AT&T UNIX System V Release 4 complies with
  7841. > the POSIX 1003.2 and 1003.2a draft standards for shell and utilities?  What
  7842. > about X/Open XPG3 and XPG4?
  7843.  
  7844. When you say SVR4, you've got to qualify it with an architecture.  It's
  7845. not monolithic.
  7846.  
  7847. To the best of my knowledge, 1003.2 isn't final yet. 
  7848.  
  7849. I believe current SVR4 is not compatible with the current P1003.2 draft.
  7850.  
  7851. Dave Cline                            uucp: ...uunet!88opensi!dave
  7852. 88open Consortium, Ltd.                     dave@88open.org
  7853. 100 Homeland Court, Suite 800
  7854. San Jose, CA 95112
  7855.  
  7856. Volume-Number: Volume 25, Number 93
  7857.  
  7858. From std-unix-request@uunet.UU.NET  Thu Nov 14 04:29:12 1991
  7859. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7860.     (5.61/UUNET-mail-drop) id AA10256; Thu, 14 Nov 91 04:29:12 -0500
  7861. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7862.     (5.61/UUNET-internet-primary) id AA14341; Thu, 14 Nov 91 04:29:04 -0500
  7863. Newsgroups: comp.std.unix
  7864. From: Perry Lewis <perry@kanatek.ocunix.on.ca>
  7865. Subject: FIPS 151-1 conflict
  7866. Message-Id: <1991Nov14.091550.17927@uunet.uu.net>
  7867. Originator: sef@rodan.UU.NET
  7868. Nntp-Posting-Host: rodan.uu.net
  7869. X-Submissions: std-unix@uunet.uu.net
  7870. Organization: Kanatek
  7871. Date: Wed, 13 Nov 1991 22:13:20 GMT
  7872. Reply-To: std-unix@uunet.UU.NET
  7873. To: std-unix@uunet.UU.NET
  7874. Sender: Network News <news@kithrup.com>
  7875. Source-Info:  From (or Sender) name not authenticated.
  7876.  
  7877. Submitted-by: perry@kanatek.uucp (Perry Lewis)
  7878.  
  7879. Perhaps someone out there can clear up a problem for me. A customer of ours
  7880. who has a network of Sun systems and Interactive SVR3.2.2 systems reported
  7881. that these 2 operating systems have implemented the FIPS 151-1 multiple
  7882. groups specification differently. Both systems load a table of group id's
  7883. the user belongs to into kernel space upon login from the /etc/group file.
  7884. However, on the Sun, the user can access any file which is owned by one of
  7885. his groups simultaneously. On the Interactive system, the user must execute
  7886. a newgrp to access a file owned by one of his groups. Therefore, Sun users
  7887. can simultaneously access files owned by 8 different groups while Interactive
  7888. users can only access one group at a time.
  7889.  
  7890.     A call to Interactive support informed me that their implementation
  7891. was correct. They weren't concerned that Sun had done it differently. Which
  7892. one is correct?
  7893.  
  7894. -- 
  7895. ____________________________________________________________________________
  7896. Perry W. Lewis                  |   perry@kanatek.ocunix.on.ca
  7897. Kanatek Technologies            |   Voice: (613) 591-1482
  7898. Kanata, Ontario, Canada         |   FAX:   (613) 591-1488
  7899.  
  7900.  
  7901. Volume-Number: Volume 25, Number 94
  7902.  
  7903. From std-unix-request@uunet.UU.NET  Thu Nov 14 19:12:39 1991
  7904. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7905.     (5.61/UUNET-mail-drop) id AA01483; Thu, 14 Nov 91 19:12:39 -0500
  7906. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7907.     (5.61/UUNET-internet-primary) id AA27304; Thu, 14 Nov 91 19:12:25 -0500
  7908. Newsgroups: comp.std.unix
  7909. From: Chuck Karish <karish@pangea.stanford.edu>
  7910. Subject: Re: FIPS 151-1 conflict
  7911. Message-Id: <1991Nov14.235909.13044@uunet.uu.net>
  7912. Summary: It's complicated.
  7913. Originator: sef@rodan.UU.NET
  7914. Nntp-Posting-Host: rodan.uu.net
  7915. X-Submissions: std-unix@uunet.uu.net
  7916. Organization: Stanford Univ. Earth Sciences
  7917. References: <1991Nov14.091550.17927@uunet.uu.net>
  7918. Date: Thu, 14 Nov 1991 23:40:30 GMT
  7919. Reply-To: std-unix@uunet.UU.NET
  7920. To: std-unix@uunet.UU.NET
  7921. Sender: Network News <news@kithrup.com>
  7922. Source-Info:  From (or Sender) name not authenticated.
  7923.  
  7924. Submitted-by: karish@pangea.stanford.edu (Chuck Karish)
  7925.  
  7926. In article <1991Nov14.091550.17927@uunet.uu.net> perry@kanatek.ocunix.on.ca
  7927. (Perry Lewis) writes:
  7928. >
  7929. >However, on the Sun, the user can access any file which is owned by one of
  7930. >his groups simultaneously. On the Interactive system, the user must execute
  7931. >a newgrp to access a file owned by one of his groups. Therefore, Sun users
  7932. >can simultaneously access files owned by 8 different groups while Interactive
  7933. >users can only access one group at a time.
  7934.  
  7935. The file group class described in POSIX.1 matches the SunOS
  7936. behavior.  However, the 'newgrp' implementation, with or without
  7937. a group password, meets the POSIX definition of an additional
  7938. file access control mechanism.  This conforms to FIPS 151-1 as
  7939. long as it's documented properly in the application to NIST.
  7940.  
  7941. >    A call to Interactive support informed me that their implementation
  7942. >was correct. They weren't concerned that Sun had done it differently. Which
  7943. >one is correct?
  7944.  
  7945. They both can conform to the letter of the POSIX.1 FIPS.  I'd
  7946. rather use a system that works the way Sun's does.
  7947. --
  7948.  
  7949.     Chuck Karish        karish@mindcraft.com
  7950.     (415) 323-9000        karish@forel.stanford.edu
  7951.  
  7952.  
  7953. Volume-Number: Volume 25, Number 95
  7954.  
  7955. From std-unix-request@uunet.UU.NET  Thu Nov 14 19:12:47 1991
  7956. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7957.     (5.61/UUNET-mail-drop) id AA01491; Thu, 14 Nov 91 19:12:47 -0500
  7958. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7959.     (5.61/UUNET-internet-primary) id AA27377; Thu, 14 Nov 91 19:12:36 -0500
  7960. Newsgroups: comp.std.unix
  7961. From: Monika Haerdtner <haerdt@informatik.uni-stuttgart.de>
  7962. Subject: OSF's ANDF
  7963. Message-Id: <1991Nov15.000031.13589@uunet.uu.net>
  7964. Originator: sef@rodan.UU.NET
  7965. Nntp-Posting-Host: rodan.uu.net
  7966. X-Submissions: std-unix@uunet.uu.net
  7967. Organization: IPVR, Universitaet Stuttgart, Germany
  7968. Date: Thu, 14 Nov 1991 15:18:39 GMT
  7969. Reply-To: std-unix@uunet.UU.NET
  7970. To: std-unix@uunet.UU.NET
  7971. Sender: Network News <news@kithrup.com>
  7972. Source-Info:  From (or Sender) name not authenticated.
  7973.  
  7974. Submitted-by: haerdt@informatik.uni-stuttgart.de (Monika Haerdtner)
  7975.  
  7976. I am interested in the specification of the ANDF (architecture-neutral
  7977. software distribution format) standard of the OSF. Does anyone have a
  7978. copy of this specification or a pointer how to get one. Is it
  7979. available on the net?
  7980.  
  7981. Thank you very much,
  7982. Monika
  7983.  
  7984. Volume-Number: Volume 25, Number 96
  7985.  
  7986. From std-unix-request@uunet.UU.NET  Fri Nov 15 04:07:00 1991
  7987. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7988.     (5.61/UUNET-mail-drop) id AA21361; Fri, 15 Nov 91 04:07:00 -0500
  7989. Received: from kithrup.com by relay1.UU.NET with SMTP 
  7990.     (5.61/UUNET-internet-primary) id AA15733; Fri, 15 Nov 91 04:06:57 -0500
  7991. Newsgroups: comp.std.unix
  7992. From: Doug Gwyn <gwyn@smoke.brl.mil>
  7993. Subject: Re: Does AT&T System VR4 comply with POSIX 1003.2 ??
  7994. Message-Id: <1991Nov15.075740.21362@uunet.uu.net>
  7995. Originator: sef@rodan.UU.NET
  7996. Nntp-Posting-Host: rodan.uu.net
  7997. X-Submissions: std-unix@uunet.uu.net
  7998. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  7999. References: <1991Nov13.212102.24423@uunet.uu.net>
  8000. Date: Fri, 15 Nov 1991 07:10:57 GMT
  8001. Reply-To: std-unix@uunet.UU.NET
  8002. To: std-unix@uunet.UU.NET
  8003. Sender: Network News <news@kithrup.com>
  8004. Source-Info:  From (or Sender) name not authenticated.
  8005.  
  8006. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  8007.  
  8008. In article <1991Nov13.212102.24423@uunet.uu.net> dave@denver.88open.org (Dave Cline) writes:
  8009. >I believe current SVR4 is not compatible with the current P1003.2 draft.
  8010.  
  8011. Another way to phrase that is that draft IEEE Std 1003.2 does not
  8012. reflect existing UNIX practice.
  8013.  
  8014.  
  8015. Volume-Number: Volume 25, Number 97
  8016.  
  8017. From std-unix-request@uunet.UU.NET  Fri Nov 15 14:47:30 1991
  8018. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  8019.     (5.61/UUNET-mail-drop) id AA03457; Fri, 15 Nov 91 14:47:30 -0500
  8020. Received: from kithrup.com by relay1.UU.NET with SMTP 
  8021.     (5.61/UUNET-internet-primary) id AA22808; Fri, 15 Nov 91 14:47:21 -0500
  8022. Newsgroups: comp.std.unix
  8023. From: Maarten Litmaath <maart@nikhefh.nikhef.nl>
  8024. Subject: Re: Does AT&T System VR4 comply with POSIX 1003.2 ??
  8025. Message-Id: <1991Nov15.193609.23547@uunet.uu.net>
  8026. Originator: sef@rodan.UU.NET
  8027. Nntp-Posting-Host: rodan.uu.net
  8028. Reply-To: Maarten Litmaath <maart@nikhef.nl>
  8029. X-Submissions: std-unix@uunet.uu.net
  8030. Organization: Nat. Inst. for Nuclear and High-Energy Physics, Amsterdam
  8031. References: <1991Nov13.212102.24423@uunet.uu.net> <1991Nov15.075740.21362@uunet.uu.net> <1991Nov15.075740.21362@uunet.uu.net>,
  8032. Date: Fri, 15 Nov 1991 13:17:44 GMT
  8033. To: std-unix@uunet.UU.NET
  8034. Sender: Network News <news@kithrup.com>
  8035. Source-Info:  From (or Sender) name not authenticated.
  8036.  
  8037. Submitted-by: maart@nikhefh.nikhef.nl (Maarten Litmaath)
  8038.  
  8039. In article <1991Nov15.075740.21362@uunet.uu.net>,
  8040.     gwyn@smoke.brl.mil (Doug Gwyn) writes:
  8041. \In article <1991Nov13.212102.24423@uunet.uu.net>
  8042. \    dave@denver.88open.org (Dave Cline) writes:
  8043. \>I believe current SVR4 is not compatible with the current P1003.2 draft.
  8044. \
  8045. \Another way to phrase that is that draft IEEE Std 1003.2 does not
  8046. \reflect existing UNIX practice.
  8047.  
  8048. Indeed, it does not reflect any of all existing _flavours_ of UNIX
  8049. practice in full, so what?  Would you rather have a minimal standard
  8050. that would guarantee no shell script to be portable that does anything
  8051. beyond the complexity of "echo hello world"?  Oh, of course, I forgot
  8052. that SVR4 happens to be the perfect UNIX system.
  8053.  
  8054.  
  8055. Volume-Number: Volume 25, Number 98
  8056.  
  8057. From std-unix-request@uunet.UU.NET  Fri Nov 15 14:47:52 1991
  8058. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  8059.     (5.61/UUNET-mail-drop) id AA03583; Fri, 15 Nov 91 14:47:52 -0500
  8060. Received: from kithrup.com by relay1.UU.NET with SMTP 
  8061.     (5.61/UUNET-internet-primary) id AA22956; Fri, 15 Nov 91 14:47:42 -0500
  8062. Newsgroups: comp.std.unix
  8063. From: David A Willcox <willcox@urbana.mcd.mot.com>
  8064. Subject: Re: FIPS 151-1 conflict
  8065. Message-Id: <1991Nov15.193659.23645@uunet.uu.net>
  8066. Originator: sef@rodan.UU.NET
  8067. Nntp-Posting-Host: rodan.uu.net
  8068. X-Submissions: std-unix@uunet.uu.net
  8069. Organization: Motorola Computer Group, Urbana Design Center
  8070. References: <1991Nov14.091550.17927@uunet.uu.net>
  8071. Date: Fri, 15 Nov 1991 14:50:28 GMT
  8072. Reply-To: std-unix@uunet.UU.NET
  8073. To: std-unix@uunet.UU.NET
  8074. Sender: Network News <news@kithrup.com>
  8075. Source-Info:  From (or Sender) name not authenticated.
  8076.  
  8077. Submitted-by: willcox@urbana.mcd.mot.com (David A Willcox)
  8078.  
  8079. >Submitted-by: perry@kanatek.uucp (Perry Lewis)
  8080.  
  8081. >Perhaps someone out there can clear up a problem for me. A customer of ours
  8082. >who has a network of Sun systems and Interactive SVR3.2.2 systems reported
  8083. >that these 2 operating systems have implemented the FIPS 151-1 multiple
  8084. >groups specification differently. Both systems load a table of group id's
  8085. >the user belongs to into kernel space upon login from the /etc/group file.
  8086. >However, on the Sun, the user can access any file which is owned by one of
  8087. >his groups simultaneously. On the Interactive system, the user must execute
  8088. >a newgrp to access a file owned by one of his groups. Therefore, Sun users
  8089. >can simultaneously access files owned by 8 different groups while Interactive
  8090. >users can only access one group at a time.
  8091.  
  8092. >    A call to Interactive support informed me that their implementation
  8093. >was correct. They weren't concerned that Sun had done it differently. Which
  8094. >one is correct?
  8095.  
  8096. Speaking as an individual who worked on the POSIX.1 standard, but NOT
  8097. speaking for IEEE or the POSIX working group as a whole and NOT for my
  8098. employer...
  8099.  
  8100. The Sun implementation is certainly what was intended by POSIX.1, and
  8101. I don't see how Interactive can interpret the standard to allow their
  8102. implementation.
  8103.  
  8104. (Well, a clarification: Interactive's implementation is allowed by
  8105. POSIX.1 if they don't support multiple groups.  However, support for
  8106. multiple groups implies the Sun behavior, and multiple group support is
  8107. required by FIPS 151-1.  Therefore Interactive's implementation is
  8108. allowed under POSIX.1, but not FIPS 151-1.)
  8109.  
  8110. To quote the 1988 version of POSIX.1:
  8111.     
  8112.     file group class.  A process is in the file group class of a file
  8113.     if the process is not in the file owner class and if the effective
  8114.     group ID or one of the supplimentary group IDs of the process
  8115.     matches the group ID associated with the file.  Other members of
  8116.     this class may be implementation-defined.
  8117.  
  8118.     supplimentary group ID.  A process has up to {NGROUPS_MAX}
  8119.     supplimentary group IDs used in determining file access
  8120.     permissions, in addition to the effective group ID. ...
  8121.  
  8122. Of course, POSIX.1 doesn't provide any mechanism for filling in the
  8123. multiple group IDs of the process; that's considered an administrative
  8124. matter outside of the scope of the standard.  I suppose that Interactive
  8125. could claim that they support multiple groups, but don't provide any
  8126. mechanism to fill in the supplimentary group IDs.  I would put this in
  8127. the same class as the implementation that had a fork() function that
  8128. always failed with EAGAIN;  it might be, technically, compliant, but I
  8129. certainly wouldn't buy it. 
  8130.  
  8131. I hope that somebody will ask IEEE for an offical interpretation on this
  8132. subject.
  8133.  
  8134. David A. Willcox
  8135. Motorola MCG - Urbana        UUCP: ...!uiucuxc!udc!willcox
  8136. 1101 E. University Ave.        INET: willcox@urbana.mcd.mot.com
  8137. Urbana, IL 61801        FONE: 217-384-8534
  8138.  
  8139.  
  8140. Volume-Number: Volume 25, Number 99
  8141.  
  8142. From std-unix-request@uunet.UU.NET  Fri Nov 15 17:03:59 1991
  8143. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  8144.     (5.61/UUNET-mail-drop) id AA03496; Fri, 15 Nov 91 17:03:59 -0500
  8145. Received: from kithrup.com by relay1.UU.NET with SMTP 
  8146.     (5.61/UUNET-internet-primary) id AA03627; Fri, 15 Nov 91 17:03:50 -0500
  8147. Newsgroups: comp.std.unix
  8148. From: "Robert L. Henderson" <hender@nas.nasa.gov>
  8149. Subject: Question on Posix.12 Protocol Independent Interface
  8150. Message-Id: <1991Nov15.214856.29398@uunet.uu.net>
  8151. Originator: sef@rodan.UU.NET
  8152. Keywords: POSIX, PII, select
  8153. Nntp-Posting-Host: rodan.uu.net
  8154. Reply-To: "Robert L. Henderson" <hender@nas.nasa.gov>
  8155. X-Submissions: std-unix@uunet.uu.net
  8156. Organization: NASA Ames Research Center
  8157. Date: Fri, 15 Nov 1991 19:50:25 GMT
  8158. To: std-unix@uunet.UU.NET
  8159. Sender: Network News <news@kithrup.com>
  8160. Source-Info:  From (or Sender) name not authenticated.
  8161.  
  8162. Submitted-by: hender@nas.nasa.gov (Robert L. Henderson)
  8163.  
  8164. To anyone who is involved with Posix.12, the Protocol Independent Interface 
  8165. working group...
  8166.  
  8167. If I plan to develop an application using PII and specifically SNI,  can I 
  8168. associate a communication handle with a file descriptor?  
  8169.  
  8170. What I need to do is have a server "select" [sni_gather()]  from a network 
  8171. channel and a fifo (named pipe).  I can do this today using select() with a 
  8172. pipe's file descriptor 
  8173. and a socket.
  8174.  
  8175. -- 
  8176.  
  8177. Bob Henderson
  8178. hender@nas.nasa.gov
  8179. NASA Ames Research Center
  8180.  
  8181. "My goal in life?  To find the winning lotto ticket on the sidewalk!"
  8182.  
  8183. Volume-Number: Volume 25, Number 100
  8184.  
  8185. From std-unix-request@uunet.UU.NET  Fri Nov 15 17:04:06 1991
  8186. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  8187.     (5.61/UUNET-mail-drop) id AA03528; Fri, 15 Nov 91 17:04:06 -0500
  8188. Received: from kithrup.com by relay1.UU.NET with SMTP 
  8189.     (5.61/UUNET-internet-primary) id AA03645; Fri, 15 Nov 91 17:03:56 -0500
  8190. Newsgroups: comp.std.unix
  8191. From: Jason Zions <jason@cnd.hp.com>
  8192. Subject: Re: Does AT&T System VR4 comply with POSIX 1003.2 ??
  8193. Message-Id: <1991Nov15.215303.29549@uunet.uu.net>
  8194. Originator: sef@rodan.UU.NET
  8195. Nntp-Posting-Host: rodan.uu.net
  8196. X-Submissions: std-unix@uunet.uu.net
  8197. Organization: Colorado Networks Division, Hewlett-Packard Co.
  8198. References: <1991Nov13.212102.24423@uunet.uu.net> <1991Nov15.075740.21362@uunet.uu.net>
  8199. Date: Fri, 15 Nov 1991 21:22:25 GMT
  8200. Reply-To: std-unix@uunet.UU.NET
  8201. To: std-unix@uunet.UU.NET
  8202. Sender: Network News <news@kithrup.com>
  8203. Source-Info:  From (or Sender) name not authenticated.
  8204.  
  8205. Submitted-by: jason@cnd.hp.com (Jason Zions)
  8206.  
  8207. In article <1991Nov15.075740.21362@uunet.uu.net> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  8208.  
  8209. >In article <1991Nov13.212102.24423@uunet.uu.net> dave@denver.88open.org 
  8210. >(Dave Cline) writes:
  8211. >>I believe current SVR4 is not compatible with the current P1003.2 draft.
  8212.  
  8213. >Another way to phrase that is that draft IEEE Std 1003.2 does not
  8214. >reflect existing UNIX practice.
  8215.  
  8216. Doug, you know *much* better than that. By this argument, ANSI C didn't
  8217. reflect any one implementor's existing practice either.
  8218.  
  8219. Or were you repeating the AT&T party line, i.e. "If it's not SVRx, it's not
  8220. UNIX"? In that case, POSIX was never intended to reflect solely UNIX
  8221. practice; it was intended to reflect concensus practice of a variety of
  8222. implemented operating systems bearing a family resemblence to UNIX.
  8223.  
  8224. Jason Zions
  8225. Chair of, but not speaking for, IEEE P1003.8
  8226.  
  8227. [ I thought Doug was pointing out some of the difficulties with "standard
  8228.   *nix," as well as problems with standards committees inventing things.
  8229.   Doug's comment can be applied to almost every UNIX(tm) and UNIX-like
  8230.   vendor around, since things were added to the 1003.2 standard-in-progress
  8231.   which don't necessarily exist elsewhere.  Some claim this to be necessary,
  8232.   good, and worthwhile; others think it is bad and should be discouraged.
  8233.   Just a point -- mod ]
  8234.  
  8235. Volume-Number: Volume 25, Number 101
  8236.  
  8237. From std-unix-request@uunet.UU.NET  Sun Nov 17 19:06:41 1991
  8238. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  8239.     (5.61/UUNET-mail-drop) id AA13151; Sun, 17 Nov 91 19:06:41 -0500
  8240. Received: from kithrup.com by relay1.UU.NET with SMTP 
  8241.     (5.61/UUNET-internet-primary) id AA12507; Sun, 17 Nov 91 19:06:29 -0500
  8242. Newsgroups: comp.std.unix
  8243. From: Andrew Josey <andrew@uel.co.uk>
  8244. Subject: XOPEN-testing mailing list
  8245. Message-Id: <1991Nov17.234817.17940@uunet.uu.net>
  8246. Originator: sef@rodan.UU.NET
  8247. Nntp-Posting-Host: rodan.uu.net
  8248. X-Submissions: std-unix@uunet.uu.net
  8249. Organization: UUNET Communications Services
  8250. Date: Sat, 16 Nov 1991 12:04:00 GMT
  8251. Reply-To: std-unix@uunet.UU.NET
  8252. To: std-unix@uunet.UU.NET
  8253. Sender: Network News <news@kithrup.com>
  8254. Source-Info:  From (or Sender) name not authenticated.
  8255.  
  8256. Submitted-by: andrew@uel.co.uk (Andrew Josey)
  8257.  
  8258. This is to announce the creation of the xopen-testing mailing
  8259. list.  The intent is to provide a forum for discussion
  8260. of issues related to testing systems for conformance
  8261. to the X/OPEN Portability Guide (XPG), including Issue 3 (XPG3) 
  8262. and later (Issue 4 is due out in mid-1992).
  8263.  
  8264. The scope of this newsletter is the discussion of items
  8265. associated with the testing of the X/Open Portability Guide - including
  8266. but not limited to test suite technology (X/Open's VSX and other 
  8267. third party test suites for the XPG), latest news on X/Open 
  8268. Branding and other related issues. These issues can include problems 
  8269. related to test suites in general, testability of various features 
  8270. of the XPG, and portability of the test suites.
  8271.  
  8272. Where discussions stray into general standards issues, I
  8273. will try to redirect them to the appropriate venues, such
  8274. as the comp.std.unix news group or the POSIX mailing list.
  8275.  
  8276. I reserve the right to exclude submissions that are in bad taste, 
  8277. contain proprietary information, or are outside the scope of the 
  8278. list as described here. The list will be distributed in digest form
  8279. at regular intervals.
  8280.  
  8281. To submit articles to the list email:
  8282.  
  8283.  xopen-testing@uel.co.uk
  8284.  
  8285.  
  8286. To subscribe to this newsletter email:
  8287.  
  8288.   xopen-testing-request@uel.co.uk
  8289.  
  8290.  
  8291. Note that mail to xopen-testing-request@uel.co.uk or to my personal
  8292. mailbox will not be re-distributed unless it contains a specific 
  8293. request to do so.  
  8294.  
  8295. -- 
  8296. Andrew Josey <andrew@uel.co.uk>  (uucp: ...!uunet!uel.co.uk!andrew)
  8297. UNIX System Laboratories Europe Ltd, London, UK. Tel: +44 81 567 7711
  8298.  
  8299.  
  8300. Volume-Number: Volume 25, Number 102
  8301.  
  8302. From std-unix-request@uunet.UU.NET  Sun Nov 17 19:06:43 1991
  8303. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  8304.     (5.61/UUNET-mail-drop) id AA13156; Sun, 17 Nov 91 19:06:43 -0500
  8305. Received: from kithrup.com by relay1.UU.NET with SMTP 
  8306.     (5.61/UUNET-internet-primary) id AA12523; Sun, 17 Nov 91 19:06:31 -0500
  8307. Newsgroups: comp.std.unix
  8308. From: karrer@bernina.ethz.ch
  8309. Subject: Re: Does AT&T System VR4 comply with POSIX 1003.2 ??
  8310. Message-Id: <1991Nov17.235213.19256@uunet.uu.net>
  8311. Originator: sef@rodan.UU.NET
  8312. Nntp-Posting-Host: rodan.uu.net
  8313. X-Submissions: std-unix@uunet.uu.net
  8314. Organization: UUNET Communications Services
  8315. References: <1991Nov13.212102.24423@uunet.uu.net> <1991Nov15.075740.21362@uunet.uu.net> <1991Nov15.215303.29549@uunet.uu.net>
  8316. Date: Sun, 17 Nov 1991 00:02:11 GMT
  8317. Reply-To: std-unix@uunet.UU.NET
  8318. To: std-unix@uunet.UU.NET
  8319. Sender: Network News <news@kithrup.com>
  8320. Source-Info:  From (or Sender) name not authenticated.
  8321.  
  8322. Submitted-by: karrer@bernina.ethz.ch
  8323.  
  8324. jason@cnd.hp.com (Jason Zions) writes:
  8325.  
  8326. >In article <1991Nov15.075740.21362@uunet.uu.net> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  8327. [...]
  8328. >>>I believe current SVR4 is not compatible with the current P1003.2 draft.
  8329.  
  8330. >>Another way to phrase that is that draft IEEE Std 1003.2 does not
  8331. >>reflect existing UNIX practice.
  8332.  
  8333. >Doug, you know *much* better than that. By this argument, ANSI C didn't
  8334. >reflect any one implementor's existing practice either.
  8335.  
  8336. >Or were you repeating the AT&T party line, i.e. "If it's not SVRx, it's not
  8337. >UNIX"? In that case, POSIX was never intended to reflect solely UNIX
  8338. >practice; it was intended to reflect concensus practice of a variety of
  8339. >implemented operating systems bearing a family resemblence to UNIX.
  8340.  
  8341. Let's face it: SVRx is not a standard, it's a non-standard.
  8342.  
  8343. Every vendor i've come along who said "I'm SVID compliant" has shown to
  8344. me the most cruel stabbings to what the original unix spirit was.
  8345.  
  8346. Typical example: the /etc/rc and /etc/rc.local script to fire up
  8347. multi-user mode.
  8348.  
  8349. seems SVRx has buried this once simple and easy-to-manage concept
  8350. into directories like /etc/rcN.d.
  8351.  
  8352. SGI has cast more weirdness into this with their /etc/config.
  8353.  
  8354. HP-UX thinks "/etc/checklist" is a better name for /etc/fstab.
  8355.  
  8356. STARDENT thinks "/etv/vfstab" would be an even better name for HP's
  8357. "/etc/checklist"; claims SVR4 but hasn't come up with a way to
  8358. use the DNS.
  8359.  
  8360. I will not even try to say anything about AIIII!!!X.
  8361.  
  8362. /* */
  8363.  
  8364. I run a machine where rc.local is 184 lines long; this machine runs
  8365. news, PP (a smtp/X.400/uucp/MAIL-11 gateway), quipu (an X.500 directory
  8366. server). 184 lines is something i would suppose that even a very dumb
  8367. sysadmin could cope with.
  8368.  
  8369. /* */
  8370.  
  8371. And while I'm at it - please: name me a "SVRx-compliant" system that can run:
  8372.  
  8373. - perl.
  8374. - X11R5, wcl, aXe.
  8375. - C-news, nntp, nn, rn, trn, xrn, gnus.
  8376. - less, traceroute, tcpdump, nfswatch.
  8377. - gcc, bison, flex, emacs, TeX.
  8378. - ISODE, PP, quipu.
  8379.  
  8380.  
  8381.  
  8382. Then, start your next round of "standartisation" again.
  8383.  
  8384.  
  8385. +-----------
  8386.   Andi Karrer, Communication Systems, ETH Zuerich, Switzerland
  8387.   karrer@bernina.ethz.ch                 - terible simplifieur
  8388.   /s=karrer/ou=bernina/o=ethz/prmd=switch/admd=arcom/c=ch/
  8389.  
  8390.  
  8391. Volume-Number: Volume 25, Number 103
  8392.  
  8393. From std-unix-request@uunet.UU.NET  Sun Nov 17 19:06:48 1991
  8394. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  8395.     (5.61/UUNET-mail-drop) id AA13163; Sun, 17 Nov 91 19:06:48 -0500
  8396. Received: from kithrup.com by relay1.UU.NET with SMTP 
  8397.     (5.61/UUNET-internet-primary) id AA12533; Sun, 17 Nov 91 19:06:37 -0500
  8398. Newsgroups: comp.std.unix
  8399. From: Dan Bernstein <brnstnd@kramden.acf.nyu.edu>
  8400. Subject: Re: Does AT&T System VR4 comply with POSIX 1003.2 ??
  8401. Message-Id: <1991Nov17.235435.20100@uunet.uu.net>
  8402. Originator: sef@rodan.UU.NET
  8403. Nntp-Posting-Host: rodan.uu.net
  8404. X-Submissions: std-unix@uunet.uu.net
  8405. Organization: IR
  8406. References: <1991Nov13.212102.24423@uunet.uu.net> <1991Nov15.075740.21362@uunet.uu.net> <1991Nov15.193609.23547@uunet.uu.net>
  8407. Date: Sat, 16 Nov 1991 22:00:05 GMT
  8408. Reply-To: std-unix@uunet.UU.NET
  8409. To: std-unix@uunet.UU.NET
  8410. Sender: Network News <news@kithrup.com>
  8411. Source-Info:  From (or Sender) name not authenticated.
  8412.  
  8413. Submitted-by: brnstnd@KRAMDEN.ACF.NYU.EDU (Dan Bernstein)
  8414.  
  8415. Maarten Litmaath writes:
  8416. > Doug Gwyn writes:
  8417. > > Dave Cline writes:
  8418. > > > I believe current SVR4 is not compatible with the current P1003.2 draft.
  8419. > > Another way to phrase that is that draft IEEE Std 1003.2 does not
  8420. > > reflect existing UNIX practice.
  8421. > Indeed, it does not reflect any of all existing _flavours_ of UNIX
  8422. > practice in full, so what?  Would you rather have a minimal standard
  8423. > that would guarantee no shell script to be portable that does anything
  8424. > beyond the complexity of "echo hello world"?
  8425.  
  8426. If that's the state of standardization of the current market, then yes.
  8427. Letting POSIX control UNIX is like turning the United States President
  8428. into a dictator with absolute power to make the law.
  8429.  
  8430. What makes standard-writing so attractive is that it strokes your ego.
  8431. You get to write down your musings about how the world should work, and
  8432. boom! Everyone does what you say. You don't have to waste time actually
  8433. *implementing* your ideas, or working out the problems, or competing
  8434. with people who were foolish enough to try their non-POSIX-approved
  8435. products on the market. You've got an _ego standard_.
  8436.  
  8437. This psychological explanation may sound a bit nasty, but it explains a
  8438. lot. It explains why POSIX members react emotionally to any hint that
  8439. their standards don't reflect the real world or are technically
  8440. inferior. It explains why no POSIX ``standard'' describes the state of
  8441. any actual system at the time of standardization. It explains why POSIX
  8442. people are so incredibly enthusiastic about writing standards, when in
  8443. the real world writing a standard means drudging through existing
  8444. documentation and rehashing it in the dullest possible language.
  8445.  
  8446. I wish POSIX would stop shooting off into the cosmos, come back to
  8447. earth, and spend some time documenting what UNIX systems actually *do*.
  8448.  
  8449. ---Dan
  8450.  
  8451.  
  8452. Volume-Number: Volume 25, Number 104
  8453.  
  8454. From std-unix-request@uunet.UU.NET  Sun Nov 17 19:06:54 1991
  8455. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  8456.     (5.61/UUNET-mail-drop) id AA13170; Sun, 17 Nov 91 19:06:54 -0500
  8457. Received: from kithrup.com by relay1.UU.NET with SMTP 
  8458.     (5.61/UUNET-internet-primary) id AA12549; Sun, 17 Nov 91 19:06:43 -0500
  8459. Newsgroups: comp.std.unix
  8460. From: Doug Gwyn <gwyn@smoke.brl.mil>
  8461. Subject: Re: Does AT&T System VR4 comply with POSIX 1003.2 ??
  8462. Message-Id: <1991Nov17.235708.21037@uunet.uu.net>
  8463. Originator: sef@rodan.UU.NET
  8464. Nntp-Posting-Host: rodan.uu.net
  8465. X-Submissions: std-unix@uunet.uu.net
  8466. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  8467. References: <1991Nov13.212102.24423@uunet.uu.net> <1991Nov15.075740.21362@uunet.uu.net> <1991Nov15.215303.29549@uunet.uu.net>
  8468. Date: Sun, 17 Nov 1991 03:41:06 GMT
  8469. Reply-To: std-unix@uunet.UU.NET
  8470. To: std-unix@uunet.UU.NET
  8471. Sender: Network News <news@kithrup.com>
  8472. Source-Info:  From (or Sender) name not authenticated.
  8473.  
  8474. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  8475.  
  8476. In article <1991Nov15.215303.29549@uunet.uu.net> jason@cnd.hp.com (Jason Zions) writes:
  8477. >>Another way to phrase that is that draft IEEE Std 1003.2 does not
  8478. >>reflect existing UNIX practice.
  8479. >[ I thought Doug was pointing out some of the difficulties with "standard
  8480. >  *nix," as well as problems with standards committees inventing things.
  8481. >  Doug's comment can be applied to almost every UNIX(tm) and UNIX-like
  8482. >  vendor around, since things were added to the 1003.2 standard-in-progress
  8483. >  which don't necessarily exist elsewhere.  Some claim this to be necessary,
  8484. >  good, and worthwhile; others think it is bad and should be discouraged.
  8485. >  Just a point -- mod ]
  8486.  
  8487. I wasn't promoting any "AT&T party line"; however, for the information of
  8488. all you Berkeleyites out there who don't read the trade journals, SVR4
  8489. did manage to merge into a single system essentially all major UNIX
  8490. variants and thus should certainly be considered a base model for POSIX
  8491. standardization, as it was for X/Open for example.  No, what I was really
  8492. complaining about is the large amount of committee invention in 1003.2,
  8493. especially such atrocities as "c89", the regular expression mess, and a
  8494. rash of commands and options not previously implemented in ANY version of
  8495. UNIX.  I (and many others) worked hard for YEARS to eliminate or at least
  8496. minimize the variations between different versions of UNIX, culminating
  8497. in SVR4 (which is a fine base for further improvement).  The LAST thing
  8498. we need at this point is to start another incompatible variant of UNIX.
  8499.  
  8500. If you really want to know what I think would be appropriate for 1003.2,
  8501. go back and read my command/option set proposal made to 1003.2 years ago.
  8502. It spelled out exactly what *I* as a provider of portable software would
  8503. want in a UNIX environment to which I'm porting software.  It was much
  8504. smaller and cleaner than the last 1003.2 proposal I saw..
  8505.  
  8506.  
  8507. Volume-Number: Volume 25, Number 105
  8508.  
  8509.