home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / std_unix / volume.27 < prev    next >
Internet Message Format  |  1992-05-20  |  443KB

  1. From std-unix-request@uunet.UU.NET Sat Feb 22 01:24:56 1992
  2. Received: from rodan.UU.NET by ftp.UU.NET with SMTP 
  3.     (5.61/UUNET-guest-mail-drop) id AA22227; Sat, 22 Feb 92 01:24:54 -0500
  4. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  5.     (5.61/UUNET-mail-drop) id AA23467; Sat, 22 Feb 92 01:23:28 -0500
  6. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  7.     (5.61/UUNET-internet-primary) id AA09712; Sat, 22 Feb 92 01:23:22 -0500
  8. Newsgroups: comp.std.unix
  9. From: Sean Eric Fagan <sef@uunet.UU.NET>
  10. Subject: Policy and Guidelines for comp.std.unix
  11. Message-Id: <1992Feb22.061341.4465@uunet.uu.net>
  12. Originator: sef@ftp.UU.NET
  13. Nntp-Posting-Host: ftp.uu.net
  14. Reply-To: std-unix@uunet.UU.NET
  15. X-Submissions: std-unix@uunet.uu.net
  16. Organization: UUNET Communications Services
  17. Date: Fri, 21 Feb 1992 22:03:32 GMT
  18. To: std-unix@uunet.UU.NET
  19. Sender: Network News <news@kithrup.com>
  20. Source-Info:  From (or Sender) name not authenticated.
  21. Status: R
  22.  
  23. Submitted-by: sef@uunet.UU.NET (Sean Eric Fagan)
  24.  
  25. This is a policy statement for comp.std.unix.
  26.  
  27. This is Volume 27 of comp.std.unix.
  28. These volumes are purely for administrative convenience.
  29. Feel free to continue any previous discussion or to start new ones.
  30.  
  31. Subject: Topic.
  32.  
  33. The USENET newsgroup comp.std.unix, also known as the mailing list
  34. std-unix@uunet.uu.net, is for discussions of standards related to
  35. the UNIX operating system, particularly of IEEE P1003, or POSIX,
  36. including IEEE 1003.1, 1003.2, etc.
  37.  
  38. Other related standards bodies and subjects include but are not limited to
  39.     IEEE 1201 and IEEE 1238,
  40.     ISO/IEC JTC1 SC22 WG15 (the ISO and IEC version of POSIX),
  41.     the U.S. and other Technical Advisory Groups (TAGs) to WG15,
  42.     the X3.159 Programming Language C Standard by the ANSI X3J11 committee,
  43.     ISO/IEC JTC1 SC22 WG14 (the ISO and IEC version of X3.159),
  44.     ANSI X3J16 on the C++ programming language,
  45.     ANSI X3B11.1 on WORM File Systems,
  46.     the National Institute of Standards and Technology (NIST),
  47.     and their Federal Information Processing Standards (FIPS),
  48.     X/Open and their X/Open Portability Guide (XPG),
  49.     the Open Software Foundation (OSF),
  50.     UNIX International (UI),
  51.     the UniForum Technical Committee,
  52.     the AFUU Working Groups,
  53.     PortSoft,
  54.     AT&T System V Interface Definition (SVID),
  55.     System V Release 3, System V Release 4,
  56.     4.2BSD, 4.3BSD, 4.4BSD,
  57.     Tenth Edition UNIX, Plan 9 from Bell Labs,
  58.     Mach, Chorus, Amoeba, GNU,
  59.     and the USENIX Standards Watchdog Committee.
  60.  
  61. Subject: Moderator.
  62.  
  63. The newsgroup comp.std.unix and the mailing list std-unix@uunet.uu.net
  64. is moderated.  The moderator is Sean Eric Fagan.
  65.  
  66. Subject: Disclaimer.
  67.  
  68. Postings by any committee member in this newsgroup do not represent 
  69. any position (including any draft, proposed or actual, of a standard) 
  70. of the committee as a whole or of any subcommittee unless explicitly 
  71. stated otherwise in such remarks.  Postings and comments by the moderator
  72. do not necessarily reflect any person's or organization's opinions.
  73.  
  74. * UNIX is a Registered Trademark of AT&T.
  75. ** IEEE is a Trademark of the Institute for Electrical and Electronics
  76.     Engineers, Inc.
  77. *** POSIX is not a trademark.
  78. Various other names mentioned above may be trademarks.
  79. I hope their owners will not object if I do not list them all here.
  80.  
  81.  
  82. Subject: Postings.
  83.  
  84. Submissions for posting to the newsgroup and comments about the newsgroup
  85. (including requests to subscribe or unsubscribe to the mailing list)
  86. should go to two different addresses:
  87.  
  88.         DNS address            UUCP source route
  89. Submissions    std-unix@uunet.uu.net        uunet!std-unix
  90. Comments    std-unix-request@uunet.uu.net    uunet!std-unix-request
  91.  
  92. In addition to those addresses, I can be reached (electronically) as sef at
  93. either uunet.uu.net, kithrup.com, or cygnus.com (e.g., sef@kithrup.COM).  If
  94. you get a bounce from one of those addresses, or do not get a reply within a
  95. week, send mail to one or more of the others.  For submissions, I prefer
  96. std-unix@uunet.uu.net, as that is where I do the list maintainance.
  97. Permission to post to the newsgroup is assumed for mail to std-unix.
  98. Permission to post is not assumed for mail to std-unix-request,
  99. unless explicitly granted in the mail.  Mail to my personal addresses
  100. will be treated like mail to std-unix-request if it obviously refers
  101. to the newsgroup.
  102.  
  103. The mailing list is distributed on the Internet, UUCP, and elsewhere.
  104. There is a redistribution list on BITNET for BITNET, EARN, and NetNorth.
  105. Please send submissions from those networks to std-unix@uunet.uu.net
  106. nonetheless, because messages sent to the BITNET LISTSERV will not reach
  107. the whole list.
  108.  
  109. If you have access to USENET, it is better (more efficient, cheaper,
  110. less effort for me to manage) to subscribe to the newsgroup comp.std.unix
  111. than to the mailing list.  Submissions should still go to the above
  112. addresses, although many (perhaps most) USENET hosts will forward
  113. attempts to post directly to the newsgroup to the moderator.
  114.  
  115. Posted articles may originate from uunet.uu.net, kithrup.com, or cygnus.com.
  116. There are also occasional guest moderators, who may post from still other 
  117. machines.  Guest moderators are announced in advance by the regular moderator.
  118.  
  119. Subject: Archives.
  120.  
  121. Archives for comp.std.unix or std-unix@uunet.uu.net may be found on UUNET.
  122. Most of them are compressed, so if you don't have compress, get it first
  123. (it's in the comp.sources.unix archives).
  124.  
  125. The comp.std.unix archives may be retrieved by anonymous FTP over the Internet.
  126. Connect to uunet.uu.net with FTP and log in as user anonymous with password
  127. guest.
  128.  
  129. The current volume is in the file
  130.         ~ftp/usenet/comp.std.unix/archive
  131. or
  132.         ~ftp/usenet/comp.std.unix/volume.27
  133. The previous volume may be retrieved as 
  134.         ~ftp/usenet/comp.std.unix/volume.26.Z
  135. and so forth for more ancient volumes.
  136.  
  137. For hosts with direct UUCP connections to UUNET, UUCP transfer from
  138. host uunet should work with, for example,
  139.         uucp uunet!'~ftp/usenet/comp.std.unix/archive' archive
  140. You will have to put a backslash before the ! (i.e., \!)
  141. if you're using the C shell.
  142.  
  143. The output of "cd ~ftp/usenet/comp.std.unix; ls -l" is in
  144.         ~ftp/usenet/comp.std.unix/list
  145. and the output of "cd ~ftp/usenet/comp.std.unix; ls -l *" is in
  146.         ~ftp/usenet/comp.std.unix/longlist
  147.  
  148. For further details, retrieve the file
  149.         ~ftp/usenet/comp.std.unix/README
  150.  
  151.  
  152. Subject: General submission acceptance policy.
  153.  
  154. Submissions are never ignored (although they might be overlooked).
  155. If you don't see your article posted and you don't get a mailed
  156. response from the moderator, your submission probably didn't arrive.
  157. However, travel schedules and other business sometimes intervene
  158. (and for that matter it can take many hours for a submission to
  159. get to the moderator and the posted message to get back to the poster),
  160. so you may sometimes not see anything for a few days.  If you wait
  161. and still don't see anything, try sending again.
  162.  
  163. As moderator, I reject relatively few artciles:  maybe 1 out of 10;
  164. although that amount varies, it is a good rough estimate.  I retain the
  165. right to reject submissions.  If a submission does not appear relevant
  166. to comp.std.unix, it is sent back to the submittor with a note saying
  167. why it is not appropriate.  Usually this is because it just doesn't fit
  168. the topic of the newsgroup, in which case I suggest another newsgroup.
  169. Sometimes it is because someone else has already given the same answer
  170. to a question, in which case I ask if the submittor really wants it
  171. posted.  Occasionally I suggest editing that would make an article more
  172. appropriate to the newsgroup.  If a message appears to be directed
  173. towards me, I will reply; if I am unsure, I wil ask the sender if
  174. posting is really necessary or desired.
  175.  
  176. Very occasionally I may reject an article outright:  this will most likely
  177. be because it contains ad hominem attacks, which are never permitted
  178. in this technical newsgroup.  There are many other potential reasons
  179. for rejection, however, such as inclusion of copyrighted material.
  180. Fortunately, most such problems have not come up.
  181.  
  182. Note that while technical postings on technical subjects are encouraged,
  183. postings about the politics of standardization are also appropriate,
  184. since it is impossible to separate politics from standards.
  185.  
  186. Crosspostings are discouraged.  Submissions such as ``how do I find
  187. xyz piece of software'' or ``is the x implementation better than the
  188. y implementation'' that come in for multiple newsgroups usually get
  189. sent back to the submittor with a suggestion to resubmit without
  190. comp.std.unix in the Newsgroups: line.  Sometimes I'll crosspost if
  191. there's clear relevance to comp.std.unix, but I always add a
  192. Followup-To: line in an attempt to direct further discussion to a
  193. single newsgroup, usually comp.std.unix.  This policy is useful because
  194. crossposting often produces verbose traffic of little relevance to
  195. comp.std.unix.
  196.  
  197.  
  198.  
  199. Subject: Editorial policy.
  200.  
  201. When posting a submission, I sometimes make changes to it.  These
  202. are of three types:  headers and trailers; comments; and typographical.
  203.  
  204. Headers and trailers
  205.  
  206. Header changes include:
  207. + Cleaning up typos, particularly in Subject: lines.
  208. + Rationalizing From: lines to contain only one address syntax,
  209.     either hosta!hostb!host!user or, preferably, user@domain.
  210.     Very occasionally, this might cause an improper address
  211.     to be generated.  If this occurrs, and you think you may
  212.     submit an article again, send me a note, and I will attempt
  213.     to use an address you suggest next time.
  214. + Adding a Reply-To: line.  This usually points to the newsgroup
  215.     submission address in the mailing list, but to the submitter
  216.     in the newsgroup, for reasons too messy to detail here.
  217. + Adding the Approved: line.
  218. + Deleting any Distribution: line, as detailed in the next paragraph.
  219.  
  220. The only distribution used in comp.std.unix is no distribution, i.e.,
  221. worldwide.  If it's not of worldwide interest, it doesn't belong in
  222. comp.std.unix.  Anything pertaining to the IEEE/CS TCOS standards
  223. or committees (e.g., IEEE 1003, IEEE 1201), the ANSI X3.159 Programming
  224. Language C Standard (X3J11), or the ISO 9945 POSIX work (ISO/IEC JTC1
  225. SC22 WG15) is of worldwide interest.  If a submission arrives with a
  226. Distribution:  line, such as na or us, I delete that line.
  227.  
  228. Every article has a trailing line of the form
  229. >    Volume-Number: Volume 22, Number 42
  230. This allows the reader to notice articles lost in transmission and
  231. permits the moderator to more easily catalog articles in the archives.
  232. Volumes usually change after about 100 articles, but are purely for
  233. administrative convenience; discussions begun in one volume should
  234. be continued into the next volume.  Due to the way news is transmitted,
  235. articles may appear out of order at some sites if I send out several
  236. at once.
  237.  
  238. Also, signatures that are excessively long may be truncated.
  239.  
  240.  
  241.  
  242. Subject: Comments
  243.  
  244. Comments by the moderator are sometimes added to clarify obscure
  245. issues.  These are always enclosed in square brackets with the
  246. closing mark ``-mod,'' [ like this -mod ].  Sometimes entire articles
  247. appear that are written by the moderator:  these always end with
  248. a signature that includes the words ``moderator, comp.std.unix.''
  249.  
  250. Comments by the editor of the USENIX Standards Watchdog Reports
  251. sometimes appear in those reports.  Such comments are always
  252. enclosed in square brackets and begin with the word ``Editor:''
  253. [ Editor: like this ].
  254.  
  255. Comments by the publisher of the USENIX Standards Watchdog Reports
  256. sometimes appear in those reports.  Such comments are always
  257. enclosed in square brackets and end with the mark ``-pub,''
  258. [ like this -pub ].
  259.  
  260. Entire articles may appear by the editor or publisher of the
  261. Watchdog Reports, and those are always identified by the signature.
  262.  
  263. Subject: Typographical
  264.  
  265. People submitting articles sometimes enclose parenthetical comments
  266. in brackets [] instead of parentheses ().  I usually change these
  267. to parentheses to avoid confusion with the above conventions for
  268. comments by the moderator, editor, or publisher.
  269.  
  270. Obvious misspellings, such as ``it's'' for the possesive or
  271. ``its'' as a contraction of ``it is'' are corrected (when I notice them).
  272.  
  273. Excess white space is deleted.  (This includes multiple blank lines at 
  274. times.)
  275.  
  276. Lines longer than 80 characters are reformatted.
  277.  
  278. Redundant quoted headers are often omitted.
  279.  
  280. Very long quotations of previous articles are sometimes shortened.
  281.  
  282.  
  283.  
  284. Subject: Common kinds of postings.
  285.  
  286. There are several sets of postings that reoccur in comp.std.unix
  287. at more or less regular intervals.  Here are three of the most common.
  288.  
  289. Calendar of UNIX-Related Events
  290.  
  291. Susanne W. Smith <sws@calvin.wa.com> of Windsound Consulting of Edmonds,
  292. Washington and John S. Quarterman <jsq@tic.com> of Texas Internet Consulting
  293. (TIC) of Austin, Texas publish a combined calendar of planned conferences,
  294. workshops, or standards meetings related to the UNIX operating system.
  295. These appear about every other month in four articles with these titles:
  296.     Calendar of UNIX-related Events
  297.     Access to UNIX User Groups
  298.     Access to UNIX-Related Publications
  299.     Access to UNIX-Related Standards
  300. The first three are posted to
  301.     comp.std.unix,comp.unix.questions,comp.org.usenix
  302. The one about standards is posted only to comp.std.unix.
  303.  
  304. These calendar postings are a private project of Windsound and TIC,
  305. although they are coordinated with various groups such as USENIX, EUUG,
  306. AUUG, JUS, UniForum, and IEEE TCOS.  Smith and Quarterman encourage
  307. others to reuse this information, but ask for proper acknowledgment.
  308.  
  309. USENIX Standards Watchdog Reports
  310.  
  311. The USENIX Association sponsors a set of reports after each quarterly
  312. meeting of the IEEE 1003 and IEEE 1201 standards committees.  These
  313. reports are written by volunteers who are already attending committee
  314. meetings and are edited by the Watchdog Report Editor, who is Stephen
  315. E. Walli <stephe@mks.com>.  Reports on other committees, such as X3J11,
  316. are also included when available.  These reports are published in
  317. comp.std.unix/std-unix@uunet.uu.net and ;login:  The Newsletter of the
  318. USENIX Association.  They are also available for publication elsewhere.
  319.  
  320. EUUG/USENIX ISO Monitor Project
  321.  
  322. The European UNIX systems Users Group (EUUG) and the USENIX Association
  323. jointly sponsor an observer to the ISO/IEC JTC1 SC22 WG15 (ISO POSIX)
  324. standards committee.  This observer, Dominic Dunlop <domo@tsa.co.uk>,
  325. writes a report after each WG15 meeting, of which there are usually
  326. two a year.  These reports are published in the EUUG Newsletter
  327. (EUUGN), :login;, and comp.std.unix.  They are also available for
  328. publication elsewhere.
  329.  
  330. Archives of the EUUG/USENIX ISO Monitor Reports, the USENIX Standards
  331. Watchdog Reports, and the Windsound/TIC Calendar of UNIX-Related Events
  332. may be found on uunet.uu.net.  Retrieve ~ftp/usenet/comp.std.unix/README 
  333. for details.
  334.  
  335. Sean Eric Fagan, moderator, comp.std.unix and std-unix@uunet.uu.net.
  336.  
  337. Volume-Number: Volume 27, Number 1
  338.  
  339. From std-unix-request@uunet.UU.NET Sat Feb 22 02:51:06 1992
  340. Received: from rodan.UU.NET by ftp.UU.NET with SMTP 
  341.     (5.61/UUNET-guest-mail-drop) id AA23815; Sat, 22 Feb 92 02:51:05 -0500
  342. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  343.     (5.61/UUNET-mail-drop) id AA25329; Sat, 22 Feb 92 02:50:14 -0500
  344. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  345.     (5.61/UUNET-internet-primary) id AA16421; Sat, 22 Feb 92 02:50:12 -0500
  346. Newsgroups: comp.std.unix
  347. From: Mike Wulkan <WULKAN@torolab6.vnet.ibm.com>
  348. Subject:       return from a signal-catching function
  349. Message-Id: <1992Feb22.073722.18969@uunet.uu.net>
  350. Originator: sef@ftp.UU.NET
  351. Nntp-Posting-Host: ftp.uu.net
  352. X-Submissions: std-unix@uunet.uu.net
  353. Organization: UUNET Communications Services
  354. Date: Fri, 21 Feb 1992 20:55:50 GMT
  355. Reply-To: std-unix@uunet.UU.NET
  356. To: std-unix@uunet.UU.NET
  357. Sender: Network News <news@kithrup.com>
  358. Source-Info:  From (or Sender) name not authenticated.
  359. Status: R
  360.  
  361. Submitted-by: WULKAN@TOROLAB6.VNET.IBM.COM (Mike Wulkan)
  362.  
  363. I have a question as to the intent of the following statement in section
  364. 3.3.1.3 of 1003.1:
  365.  
  366.   521 (c) The behavior of a process is undefined after it returns normally
  367.   522     from a signal-catching function for a SIGFPE, SIGILL, or SIGSEGV
  368.   523     signal that was not generated by the kill() function or the raise()
  369.   524     function defined by the C Standard {2}.
  370.  
  371. whereas the ANSI C Standard states in section 4.7.1.1:
  372.  
  373.   ...  If func executes a return statement and the value of sig was
  374.   SIGFPE or any other implementation-defined value corresponding to a
  375.   computational exception, the behavior is undefined. ...
  376.  
  377. Is the intent of Posix to "limit" the scope of "other
  378. implementation-defined value" to exactly SIGFPE, SIGILL and SIGSEGV?
  379.  
  380. Or is Posix simply extending the list to include SIGILL and SIGSEGV
  381. while still allowing for other implementation-defined values?
  382.  
  383. Mike Wulkan
  384.  
  385.  
  386. Volume-Number: Volume 27, Number 3
  387.  
  388. From std-unix-request@uunet.UU.NET Sat Feb 22 02:51:07 1992
  389. Received: from rodan.UU.NET by ftp.UU.NET with SMTP 
  390.     (5.61/UUNET-guest-mail-drop) id AA23817; Sat, 22 Feb 92 02:51:06 -0500
  391. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  392.     (5.61/UUNET-mail-drop) id AA25315; Sat, 22 Feb 92 02:50:01 -0500
  393. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  394.     (5.61/UUNET-internet-primary) id AA16389; Sat, 22 Feb 92 02:49:59 -0500
  395. Newsgroups: comp.std.unix
  396. From: Chesley Reyburn <cmr@cvedc.prime.com>
  397. Subject: Re: POSIX question: dynamic linking
  398. Message-Id: <1992Feb22.073646.18830@uunet.uu.net>
  399. Originator: sef@ftp.UU.NET
  400. Keywords: POSIX dynamic linking
  401. Nntp-Posting-Host: ftp.uu.net
  402. X-Submissions: std-unix@uunet.uu.net
  403. Organization: Computervision R&D, Beaverton OR
  404. References: <1992Feb12.221447.2080@uunet.uu.net> <1992Feb18.204251.3356@uunet.uu.net> <1992Feb19.202414.8126@uunet.uu.net>
  405. Date: Thu, 20 Feb 1992 17:47:39 GMT
  406. Reply-To: std-unix@uunet.UU.NET
  407. To: std-unix@uunet.UU.NET
  408. Sender: Network News <news@kithrup.com>
  409. Source-Info:  From (or Sender) name not authenticated.
  410. Status: R
  411.  
  412. Submitted-by: cmr@cvedc.prime.com (Chesley Reyburn)
  413.  
  414. barmar@think.com (Barry Margolin) writes:
  415.  
  416. >What about the kind of stuff that one needs dlopen() for, i.e. where a
  417. >runtime-specified module must be linked in?  That's a source-level view.
  418.  
  419. Thank you!  I sent mail yesterday to Mr. Lewine stating the same
  420. thing and proposing something like:
  421.     
  422.     void *(*local_func())(char *filename, char *entryname)
  423.  
  424. Where local_func() is part of POSIX.  Filename is a fully qualified
  425. file name where the source code that describes the function may be found.
  426. Entryname describes the entry point in the object.
  427.  
  428. The only problem that I can see is that the above function
  429. limits the new functions to always only returning a pointer
  430. to void.  Perhaps an additional argument describing the type
  431. of return value?
  432.  
  433. Chesley Reyburn                       cmr@cvedc.prime.com
  434. ECAE Software, Prime Computer, Inc.   Phone: 503/645-2410
  435. 14952 NW Greenbrier Parkway           Beaverton, OR 97006-5733, USA
  436.  
  437.  
  438. Volume-Number: Volume 27, Number 2
  439.  
  440. From std-unix-request@uunet.UU.NET  Sat Feb 22 18:44:14 1992
  441. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  442.     (5.61/UUNET-mail-drop) id AA25673; Sat, 22 Feb 92 18:44:14 -0500
  443. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  444.     (5.61/UUNET-internet-primary) id AA25730; Sat, 22 Feb 92 18:44:12 -0500
  445. Newsgroups: comp.std.unix
  446. From: Barry Margolin <barmar@think.com>
  447. Subject: Re: POSIX question: dynamic linking
  448. Message-Id: <1992Feb22.232922.16009@uunet.uu.net>
  449. Originator: sef@ftp.UU.NET
  450. Keywords: POSIX dynamic linking
  451. Nntp-Posting-Host: ftp.uu.net
  452. X-Submissions: std-unix@uunet.uu.net
  453. Organization: Thinking Machines Corporation, Cambridge MA, USA
  454. References: <1992Feb18.204251.3356@uunet.uu.net> <1992Feb19.202414.8126@uunet.uu.net> <1992Feb22.073646.18830@uunet.uu.net>
  455. Date: Sat, 22 Feb 1992 16:21:30 GMT
  456. Reply-To: std-unix@uunet.UU.NET
  457. To: std-unix@uunet.UU.NET
  458. Sender: Network News <news@kithrup.com>
  459. Source-Info:  From (or Sender) name not authenticated.
  460.  
  461. Submitted-by: barmar@think.com (Barry Margolin)
  462.  
  463. In article <1992Feb22.073646.18830@uunet.uu.net> cmr@cvedc.prime.com (Chesley Reyburn) writes:
  464. >Thank you!  I sent mail yesterday to Mr. Lewine stating the same
  465. >thing and proposing something like:
  466. >    
  467. >    void *(*local_func())(char *filename, char *entryname)
  468. ...
  469. >The only problem that I can see is that the above function
  470. >limits the new functions to always only returning a pointer
  471. >to void.
  472.  
  473. I don't think that's a problem.  The caller should be required to cast the
  474. returned pointer to the actual type of the function that is being linked
  475. in.  So, if you're trying to dynamically load a function that returns an
  476. int, you would write:
  477.  
  478. int (*foo_fun)();
  479. foo_fun = (int (*)()) local_func(filename, entryname);
  480.  
  481. BTW, why did you specify void* in the first place?  Since the default
  482. return type in C is int, it would probably be more intuitive for
  483. local_func() to return an int function rather than a void* function.
  484. Another reasonable default would be a void function.  But either way, the
  485. caller will have to cast it if the default isn't appropriate for that
  486. function.
  487.  
  488. -- 
  489. Barry Margolin
  490. System Manager, Thinking Machines Corp.
  491.  
  492. barmar@think.com          {uunet,harvard}!think!barmar
  493.  
  494.  
  495. Volume-Number: Volume 27, Number 4
  496.  
  497. From std-unix-request@uunet.UU.NET  Sat Feb 22 18:44:17 1992
  498. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  499.     (5.61/UUNET-mail-drop) id AA25688; Sat, 22 Feb 92 18:44:17 -0500
  500. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  501.     (5.61/UUNET-internet-primary) id AA25740; Sat, 22 Feb 92 18:44:16 -0500
  502. Newsgroups: comp.std.unix
  503. From: Chuck Karish <karish@mindcraft.com>
  504. Subject: Re: return from a signal-catching function
  505. Message-Id: <1992Feb22.232957.16129@uunet.uu.net>
  506. Originator: sef@ftp.UU.NET
  507. Nntp-Posting-Host: ftp.uu.net
  508. X-Submissions: std-unix@uunet.uu.net
  509. Organization: Mindcraft, Inc.
  510. References: <1992Feb22.073722.18969@uunet.uu.net>
  511. Date: Sat, 22 Feb 1992 17:28:17 GMT
  512. Reply-To: std-unix@uunet.UU.NET
  513. To: std-unix@uunet.UU.NET
  514. Sender: Network News <news@kithrup.com>
  515. Source-Info:  From (or Sender) name not authenticated.
  516.  
  517. Submitted-by: karish@mindcraft.com (Chuck Karish)
  518.  
  519. In article <1992Feb22.073722.18969@uunet.uu.net> WULKAN@TOROLAB6.VNET.IBM.COM
  520. (Mike Wulkan) writes:
  521. >Submitted-by: WULKAN@TOROLAB6.VNET.IBM.COM (Mike Wulkan)
  522. >I have a question as to the intent of the following statement in section
  523. >3.3.1.3 of 1003.1:
  524. >
  525. >  521 (c) The behavior of a process is undefined after it returns normally
  526. >  522     from a signal-catching function for a SIGFPE, SIGILL, or SIGSEGV
  527. >  523     signal that was not generated by the kill() function or the raise()
  528. >  524     function defined by the C Standard {2}.
  529. >
  530. >Is the intent of Posix to "limit" the scope of "other
  531. >implementation-defined value" to exactly SIGFPE, SIGILL and SIGSEGV?
  532. >
  533. >Or is Posix simply extending the list to include SIGILL and SIGSEGV
  534. >while still allowing for other implementation-defined values?
  535.  
  536. SIGFPE, SIGILL, and SIGSEGV are the signal names defined by
  537. POSIX.1 that correspond to computational exceptions.  Elsewhere
  538. in POSIX.1 it is stated that the implemention may generate
  539. other, implementation-defined signals.  The names of these
  540. signals and the conditions under which they are generated
  541. are to be documented in the POSIX conformance document.
  542.  
  543. POSIX.1 tries not to keep the implementation from providing
  544. additional signals or errno values that give more information
  545. to the programmer, as long as the base behavior specified
  546. by the Standard is also supported and the appropriate
  547. documentation is provided.
  548.  
  549.  
  550.     Chuck Karish        karish@mindcraft.com
  551.     Mindcraft, Inc.        (415) 323-9000
  552.  
  553.  
  554. Volume-Number: Volume 27, Number 5
  555.  
  556. From std-unix-request@uunet.UU.NET  Sat Feb 22 18:44:25 1992
  557. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  558.     (5.61/UUNET-mail-drop) id AA25697; Sat, 22 Feb 92 18:44:25 -0500
  559. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  560.     (5.61/UUNET-internet-primary) id AA25754; Sat, 22 Feb 92 18:44:23 -0500
  561. Newsgroups: comp.std.unix
  562. From: Chuck Karish <karish@mindcraft.com>
  563. Subject: Re: POSIX question: dynamic linking
  564. Message-Id: <1992Feb22.233114.16404@uunet.uu.net>
  565. Originator: sef@ftp.UU.NET
  566. Nntp-Posting-Host: ftp.uu.net
  567. X-Submissions: std-unix@uunet.uu.net
  568. Organization: Mindcraft, Inc.
  569. References: <1992Feb18.204251.3356@uunet.uu.net> <1992Feb19.202414.8126@uunet.uu.net> <1992Feb22.073646.18830@uunet.uu.net>
  570. Date: Sat, 22 Feb 1992 17:48:10 GMT
  571. Reply-To: std-unix@uunet.UU.NET
  572. To: std-unix@uunet.UU.NET
  573. Sender: Network News <news@kithrup.com>
  574. Source-Info:  From (or Sender) name not authenticated.
  575.  
  576. Submitted-by: karish@mindcraft.com (Chuck Karish)
  577.  
  578. In article <1992Feb22.073646.18830@uunet.uu.net> cmr@cvedc.prime.com
  579. (Chesley Reyburn) writes:
  580. >Submitted-by: cmr@cvedc.prime.com (Chesley Reyburn)
  581. >barmar@think.com (Barry Margolin) writes:
  582. >>What about the kind of stuff that one needs dlopen() for, i.e. where a
  583. >>runtime-specified module must be linked in?  That's a source-level view.
  584.  
  585. The charge of the POSIX.1 committee was to codify existing
  586. practice in the industry.  I think the examples of prior art used
  587. to represent existing practice were 4.2BSD and System 5 Release 1.
  588. Neither of these supported dynamic linking.
  589.  
  590. >Thank you!  I sent mail yesterday to Mr. Lewine stating the same
  591. >thing and proposing something like:
  592. >    
  593. >    void *(*local_func())(char *filename, char *entryname)
  594. >
  595. >Where local_func() is part of POSIX.  Filename is a fully qualified
  596. >file name where the source code that describes the function may be found.
  597. >Entryname describes the entry point in the object.
  598.  
  599. The problem, of course, is that local_func() is not part
  600. of POSIX.1.  If the POSIX.1 work were starting today,
  601. dynamic linking would probably be a part of the committee's
  602. work and would probably be the subject of a battle over
  603. what model to adopt.
  604.  
  605. As Don Lewine pointed out, POSIX.1 does not contain any
  606. concept of compiling or linking.  That's handled, for now,
  607. in an optional section of POSIX.2.  The right place for
  608. dynamic linking in the POSIX scheme would be in POSIX.1, but
  609. it would require a change in that standard's scope as
  610. well as consideration of the constraints this would
  611. impose on other standards.
  612.  
  613.     Chuck Karish        karish@mindcraft.com
  614.     Mindcraft, Inc.        (415) 323-9000
  615.  
  616.  
  617. Volume-Number: Volume 27, Number 5
  618.  
  619. From std-unix-request@uunet.UU.NET  Sun Feb 23 17:58:00 1992
  620. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  621.     (5.61/UUNET-mail-drop) id AA21356; Sun, 23 Feb 92 17:58:00 -0500
  622. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  623.     (5.61/UUNET-internet-primary) id AA05442; Sun, 23 Feb 92 17:57:51 -0500
  624. Newsgroups: comp.std.unix
  625. From: Chesley Reyburn <cmr@cvedc.prime.com>
  626. Subject: Re: POSIX question: dynamic linking
  627. Message-Id: <1992Feb23.225202.2728@uunet.uu.net>
  628. X-Submissions: std-unix@uunet.uu.net
  629. Organization: Computervision R&D, Beaverton OR
  630. References: <1992Feb18.204251.3356@uunet.uu.net> <1992Feb19.202414.8126@uunet.uu.net> <1992Feb22.073646.18830@uunet.uu.net> <1992Feb22.233114.16404@uunet.uu.net>
  631. Date: Sun, 23 Feb 1992 19:57:38 GMT
  632. Reply-To: std-unix@uunet.UU.NET
  633. To: std-unix@uunet.UU.NET
  634. Sender: Network News <news@kithrup.com>
  635. Source-Info:  From (or Sender) name not authenticated.
  636.  
  637. Submitted-by: cmr@cvedc.prime.com (Chesley Reyburn)
  638.  
  639. karish@mindcraft.com (Chuck Karish) writes:
  640.  
  641. >As Don Lewine pointed out, POSIX.1 does not contain any
  642. >concept of compiling or linking.  That's handled, for now,
  643. >in an optional section of POSIX.2.  The right place for
  644. >dynamic linking in the POSIX scheme would be in POSIX.1, but
  645. >it would require a change in that standard's scope as
  646. >well as consideration of the constraints this would
  647. >impose on other standards.
  648.  
  649. I am really confused by a scope that allows things such as
  650. fork() and longjmp() and not dynamic linking.  I actually
  651. don't care how POSIX makes the source code specified in 
  652. local_func() available to me.  It can use mutated cockroaches
  653. instead of compilers for all I care. :->  I just want functional
  654. access to source code specified during execution.
  655.  
  656. I realize that the books are written and the standards published.
  657. But standards are revised from time to time.  Especially if they
  658. are used a lot.  I expect POSIX to get used a LOT.  What I would
  659. like is an agreement in principle that the next time POSIX.1 gets
  660. revisited, dynamic linking gets included.
  661.  
  662. Chesley Reyburn                       cmr@cvedc.prime.com
  663. ECAE Software, Prime Computer, Inc.   Phone: 503/645-2410
  664. 14952 NW Greenbrier Parkway           Beaverton, OR 97006-5733, USA
  665.  
  666.  
  667. Volume-Number: Volume 27, Number 6
  668.  
  669. From std-unix-request@uunet.UU.NET  Mon Feb 24 18:11:50 1992
  670. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  671.     (5.61/UUNET-mail-drop) id AA07269; Mon, 24 Feb 92 18:11:50 -0500
  672. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  673.     (5.61/UUNET-internet-primary) id AA16962; Mon, 24 Feb 92 18:11:28 -0500
  674. Newsgroups: comp.std.unix
  675. From: Peter Collinson <pc@hillside.co.uk>
  676. Subject: Standards Update - Editorial
  677. Message-Id: <1992Feb24.230506.19550@uunet.uu.net>
  678. Reply-To: stephe@mks.com
  679. X-Submissions: std-unix@uunet.uu.net
  680. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  681. Date: Mon, 24 Feb 1992 22:51:13 GMT
  682. To: std-unix@uunet.UU.NET
  683. Sender: Network News <news@kithrup.com>
  684. Source-Info:  From (or Sender) name not authenticated.
  685.  
  686. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  687.  
  688. ENOBANDWDTH
  689. Stephe Walli
  690. USENIX Standards Report Editor
  691.  
  692. [ENOBANDWDTH] - No Band Width Left An asynchronous signal was caught
  693. (such as SIGBALLOT, SIGPLSCOMMENT or SIGMORE2RD; See the description of
  694. <signal.h> in 3.3.1) while the programmer process was busy dealing
  695. with the last such signal.  The current handler shall be interrupted
  696. after attempting to save context, and the new handler begins to
  697. execute.  Signals shall continue to be delivered, interrupting one
  698. another, until {_POSIX_LAST_STRAW} is reached.  (See description of
  699. Run- Time Randomly Varying Values in 2.8.4.1; Please note sysconf()
  700. always returns either a value of one greater than the true value at
  701. any particular time, or the return value from rand().) Once the true
  702. value of {_POSIX_LAST_STRAW} is reached, the entire precarious stack
  703. comes clattering down.  The last interrupt handler with enough context
  704. to still maintain some semblance of integrity returns [ENOBANDWDTH].
  705. A programmer process may attempt to notify its parent process of the
  706. condition in an implementation defined way, but it shall be ignored.
  707.  
  708. All joking aside, POSIX is finally beginning to strain the seams of
  709. the working groups, along with the standards process in which it lives.
  710.  
  711. There was a time when POSIX meant a working group of around 20 people
  712. defining a system interface for source code portability, based on the
  713. C language interface to UNIX (356 pages). Then it started to grow.
  714.  
  715. The shell and utilities were added (~ 900 + ~ 300 pages) making
  716. POSIX.2.  Someone thought conformance testing should be done in a
  717. standard way, and since they started suspecting POSIX was going to
  718. grow some more, they decided to make a standard for defining test
  719. methods (47 pages).  Then there were the test methods themselves.
  720. (Another 500 pages each for POSIX.1 and POSIX.2 so far.) Then came
  721. real-time, to take all the real-time sorts of things that POSIX.1
  722. couldn't settle on, along with a few things of interest only to the
  723. real-time community. (Another ~ 400 pages, plus threads.)
  724.  
  725. You can continue in this vein for quite some time. The POSIX.20 (Ada
  726. Bindings for POSIX.4/.4a Real-time services) project has recently
  727. started up.  This doesn't take into account the other related IEEE
  728. Technical Committee on Operating Systems standards (P1201 GUIs, P1224
  729. X.400, P1238 FTAM).
  730.  
  731. The working groups NOW number between 350 and 400 people, who attend
  732. four one week long meetings a year. (As an aside, do the back of the
  733. envelope calculation as to the amount of money that represents. Using
  734. 350, $2000/week expenses, and a loaded staff cost of another
  735. $1500/week, I get $4,900,000/year.) The working groups generate a
  736. considerable quantity of reading material, documenting discussions and
  737. decisions, reviewing and co-ordinating with related efforts, proposing
  738. alternatives, and commenting on other proposals.  This all on the way
  739. to producing the actual draft document to ballot as a standard.
  740.  
  741. An average C programmer or applications designer would likely be
  742. interested in the base interfaces (POSIX.1), most of the real-time
  743. services (POSIX.4), some security (POSIX.6), and possible some of the
  744. networking (Transparent File Access - POSIX.8, and Protocol Independent
  745. Communications - POSIX.12). And of course the shell (POSIX.2/.2a).
  746. Whew! That's a lot of paper.  POSIX Zen koan:  Does a tree scream in
  747. the wilderness every time a new project request is approved?
  748.  
  749. Before all the Ada and Fortran programmers start howling about the
  750. ``C'' programmer reference, let me explain. Until recently, the Ada or
  751. Fortran involvement in POSIX has been two small working groups who
  752. realised very early in the game that this standard was going to be
  753. extremely important. They have each now produced a standard binding of
  754. their respective languages to the C-based POSIX.1 standard.
  755.  
  756. The Ada working group is now beginning to address POSIX.4 and
  757. POSIX.4a.  The Fortran working group is beginning a Fortran 90 version
  758. of POSIX.1 (the original POSIX.9 standard being an F77 binding.) These
  759. groups are well placed to begin opening the way for a large segment of
  760. the systems building community that doesn't work in C to gain access
  761. to the benefits of a standard systems interface. They are, however,
  762. the exceptions to date, rather than the rule.
  763.  
  764. With several vendors delivering POSIX.1 interfaces and POSIX.2 shells
  765. on their non-UNIX derived operating systems, the growth of interest in
  766. POSIX based open systems is only just beginning.  This could bring in
  767. a badly needed injection of new blood to the POSIX working groups.  BUT
  768. these people will not have the often needed historical context.  They
  769. will require some time in the system to come up to speed on all of its
  770. perversities.
  771.  
  772. Let's argue that you do care about all of these related base
  773. standards.  (You should! They are being forced upon you in many
  774. cases.) That means you should be involved enough to at least ballot.
  775. Maybe not every section of every document, but certainly sections in
  776. each of these drafts. You cannot standby idly trusting that a good
  777. standard will fall out of the end of the process, and you can then use
  778. it. If you are a member of a technical user group such as USENIX, then
  779. the only difference between you and the people building the POSIX
  780. standards are that they've found the financial support of their
  781. organisations to attend the meetings. Think about it.
  782.  
  783. If you cannot attend the meetings, then you should ballot the draft
  784. documents.  (Ballot early! Ballot often!) But this then brings us back
  785. to [ENOBANDWDTH].  The balloting schedule for 1992 (as taken from a
  786. balloting status report of last December) looks something like the
  787. table.
  788.  
  789.           Project               Ballot       Date        Size
  790. _______________________________________________________________
  791. POSIX.0 (Guide)               1st Ballot   July 92     ~250 pgs
  792. POSIX.1a (More .1)            1st Ballot   Summer 92   ~100 pgs
  793. POSIX.1/LIS                   1st Ballot   Spring 92   ~400 pgs
  794. POSIX.2a (UPE)                3rd Recirc   Jan 92      ~300 pgs
  795. POSIX.3.2 (.2 Test methods)   1st Ballot   Spring 92   ~500 pgs
  796. POSIX.4 (Real-time)           3rd Recirc   Spring 92   ~320 pgs
  797. POSIX.4a (Threads)            1st Recirc   Winter 92   ~200 pgs
  798. POSIX.4b (More Real-Time)     1st Ballot   Fall 92     tbd
  799. POSIX.5 (Ada)                 Final        Spring 92   ~300 pgs
  800. POSIX.10 (Super. AEP)         1st Ballot   July 92     ~75 pgs
  801. POSIX.12 (Protocol Indep.)    1st Ballot   Fall 92     ~400 pgs
  802. POSIX.13 (Real-time AEP)      1st Ballot   Spring 92   ~80 pgs
  803. POSIX.15 (Batch)              1st Ballot   July 92     ~175 pgs
  804. POSIX.16 (C Binding)          1st Ballot   Spring 92   ~200 pgs
  805. POSIX.17 (Direct. Serv.)      1st Ballot   Spring 92   tbd
  806. POSIX.18 (PEP)                1st Ballot   Spring 92   tbd
  807.  
  808. A few of these are a little bit specialized, such as POSIX.10
  809. (Supercomputing Profile), POSIX.13 (Real-time Profiles), POSIX.15
  810. (Supercomputing Batch Interfaces), and POSIX.17 (Directory Services).
  811. Note, however that these are the smaller documents.  And I haven't
  812. mentioned the non- POSIX TCOS standards from P1201 (GUI), P1224
  813. (X.400), and P1238 (FTAM) that are also sending drafts to ballot in
  814. 1992.
  815.  
  816. After a punishing year of balloting in 1991, the Ballotting Vice-Chair
  817. is staging the drafts so as to not completely bury the balloting
  818. groups in which there is often a lot of overlap. This means a working
  819. group had better hit its target date, or it will be left stuck
  820. circling the balloting schedule, looking for another time slot to hit.
  821.  
  822. This heavy balloting load is starting to lead to the break down of the
  823. mock balloting process. In the ``good ol' days'' a document could be
  824. sent to mock ballot to test the waters, before committing to the
  825. serious work of a formal ballot.  With so many documents out for
  826. formal ballot, most mock ballots are finding themselves at the bottom
  827. of the pile.  [ENOBANDWDTH]
  828.  
  829. The heavy balloting of large documents to large balloting groups is
  830. beginning to take its toll in other ways. The IEEE Standards Office
  831. can no longer absorb the entire cost of copying and distribution. For
  832. the first time in POSIX's history, the current invitation to ballot is
  833. charging a fee per document ($25) to join the group.  [ENOFINANCES]?
  834.  
  835. We've really only touched on the balloting load. If you are serious,
  836. and you find the financing, you can look forward to spending four
  837. weeks a year in exotic locations like Parsippany, New Jersey, at the
  838. working group meetings. If you stick strictly to a working group or
  839. two, you will actually be able to get out of the hotel for dinner.
  840. (Parsippany didn't have a lot to offer here, but then we have been to
  841. New Orleans.)
  842.  
  843. If you are interested in any of the cross group issues, such as
  844. Language Independent Specifications, Conformance Testing, or most
  845. important of all, the overall structure of the POSIX standards, and
  846. the process of building it, you can look forward to six 12 to 13 hour
  847. days (not five).
  848.  
  849. If you are a serious participant, i.e. you actually do work between
  850. meetings, you probably spend at least another week of your time on
  851. POSIX for every week of meeting time.  Unless you are self-employed,
  852. it is unlikely you do this in plain sight at your place of business.
  853. It's generally frowned upon. After all, your manager already feels he's
  854. paying for you to attend four of these ``conferences'' a year.
  855. [ENOSUPPRT]?
  856.  
  857. It is often surprising to discover how little corporate support exists
  858. for people in the process. There are many stories of people who cannot
  859. find the consistent support to participate, either moral or financial,
  860. who work for companies you would assume have an obvious stake in POSIX.
  861. While their companies love to bask in the glow of their ``obvious
  862. commitment to open systems'', their people are put through the wringer
  863. trying to get the job done right.  (Please see the last line of the
  864. ENOBANDWDTH definition again.)
  865.  
  866. So the coming year will be interesting. As many of the POSIX projects
  867. reach ballot, the number of documents circulating in ballot grows. The
  868. relentless and blind pressure from the market place to build more
  869. standards faster, will grow, rather than fade. The number of POSIX
  870. projects will continue to grow, before we've even figured out how the
  871. current ones integrate. Hark - I hear a tree screaming.
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926. Volume-Number: Volume 27, Number 7
  927.  
  928. From std-unix-request@uunet.UU.NET  Mon Feb 24 18:12:10 1992
  929. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  930.     (5.61/UUNET-mail-drop) id AA07271; Mon, 24 Feb 92 18:12:10 -0500
  931. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  932.     (5.61/UUNET-internet-primary) id AA16943; Mon, 24 Feb 92 18:11:23 -0500
  933. Newsgroups: comp.std.unix
  934. From: Peter Collinson <pc@hillside.co.uk>
  935. Subject: Standards Update, POSIX.4, POSIX.4a, POSIX.13, POSIX.4b Real-time Extensions
  936. Message-Id: <1992Feb24.230603.19744@uunet.uu.net>
  937. X-Submissions: std-unix@uunet.uu.net
  938. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  939. Date: Mon, 24 Feb 1992 22:52:47 GMT
  940. Reply-To: std-unix@uunet.UU.NET
  941. To: std-unix@uunet.UU.NET
  942. Sender: Network News <news@kithrup.com>
  943. Source-Info:  From (or Sender) name not authenticated.
  944.  
  945. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  946.  
  947. USENIX Standards Watchdog Committee
  948. Stephen Walli <stephe@usenix.org>, Report Editor
  949. Report on POSIX.4, POSIX.4a, POSIX.13, POSIX.4b Real-time Extensions
  950.  
  951.  
  952. Bill O. Gallmeister <bog@lynx.com> reports on the January 13-17
  953. meeting in Irvine, CA:
  954.  
  955. Summary
  956.  
  957. This meeting, we concentrated on the real-time profiles document
  958. (POSIX.13), and on the new real-time interfaces (POSIX.4b).  POSIX.13
  959. was released to ballot at the end of this meeting.  In addition,
  960. technical reviewers for POSIX.4 and POSIX.4a were able to make good
  961. progress on their respective drafts.  POSIX.4 may complete balloting
  962. in the Fall of 1992; POSIX.4a will probably take another six months
  963. after that.  Our current intention is to ballot POSIX.4b after the
  964. October meeting.  By that time, POSIX.4 itself should be through the
  965. IEEE balloting process and into an ISO ballot, though we will probably
  966. still be balloting POSIX.4a.
  967.  
  968. POSIX.13:  Real-Time Profiles
  969.  
  970. The big news here is that POSIX.13 is now ready to ballot!  After a
  971. number of small mock ballots, the working group closed on what should
  972. be the functionality in each of the four profiles contained in
  973. POSIX.13.  POSIX.13 is the first POSIX profile document to reach
  974. ballot. With any luck, we will begin POSIX.13 ballot resolution at the
  975. April, 1992 meeting.
  976.  
  977. POSIX.4b:  New Real-Time Interfaces
  978.  
  979. Our goal this week was to settle on the contents of POSIX.4b and to
  980. produce first drafts of each chapter. We came close.  Some first
  981. chapter drafts should be coming in the mailings.
  982.  
  983. POSIX.4b includes chapters for: interrupt control; timeouts on all
  984. blocking functions; enhanced memory allocation; sporadic server
  985. scheduling; spawn (a combined fork/exec); the ability to wait on
  986. multiple things, also known as event flags; CPU time budgeting (the
  987. ability to set time budgets for other processes/threads and examine
  988. time spent by those processes/threads); and more interfaces for
  989. driver/application communication (i.e., ioctl).  Some of these
  990. chapters actually did make it into the draft by Friday.  Other
  991. facilities were brand new, and are still being debated (CPU time
  992. budgeting, event flags and ioctl were especially contentious).  The
  993. contents are not cast in stone, but it indicates the small groups
  994. which the working group will form at the next meeting.
  995.  
  996. Ioctl
  997.  
  998. The standard method of driver/application communication, aside from
  999. the obvious read/write, is ioctl.  POSIX.1 elected not to standardize
  1000. ioctl, instead preferring to provide alternate standard interfaces to
  1001. control those devices, such as TTYs, for which a standard set of ioctls
  1002. existed.  For devices which were not standard, POSIX.1 did not wish to
  1003. provide a standard interface for doing non- standard things.
  1004.  
  1005. There was some agreement with this approach in POSIX.4, but the idea
  1006. had been raised that perhaps there were a suitable set of standard
  1007. devices which might benefit from standard ioctls (SCSI devices, IEEE
  1008. 488 devices, and so forth).
  1009.  
  1010. A small group (me) gathered up a list of standard devices for
  1011. consideration for a standardized control interface.  Whether the
  1012. interface was ioctl or not is, at this point, largely immaterial.
  1013. When this list was presented, it was rather short; it turned out that
  1014. most of the impetus for ioctl is not the desire to perform standard
  1015. I/O operations (rewind a tape, eject a floppy), but rather to do non-
  1016. standard things (rotate a radar, drop some control rods, e.g.).  We
  1017. decided to form a small group to further explore this issue.
  1018.  
  1019. Enhanced Memory Allocation
  1020.  
  1021. An interface by which memory can be allocated from various special
  1022. pools (NVRAM, Video Ram, for instance) is standard practice in much of
  1023. the real-time community.  This is the idea behind an enhanced memory
  1024. allocation interface. It was pointed out that the mmap() facility
  1025. could be used to carve off parts of an appropriate memory area, and an
  1026. allocator could be easily constructed at application level based on
  1027. this.  This was seen to be the correct way of allocating special
  1028. memory.
  1029.  
  1030. Asynchronous Interfaces
  1031.  
  1032. Some have requested that POSIX.4 provide asynchronous interfaces to
  1033. blocking services. Some objected that we have already done so;
  1034. POSIX.4a provides an asynchronous interface to any system interface by
  1035. allowing threads to be created for the purpose of using those
  1036. interfaces without suspending the original thread.  For instance, an
  1037. asynchronous open routine can easily be emulated by creating a
  1038. separate thread to perform a synchronous open, then signal the
  1039. original thread and go away.  Despite this, we have an agenda bullet
  1040. to explore this possibility in Dallas this April.
  1041.  
  1042. POSIX.4 and POSIX.4a Draft Status
  1043.  
  1044. POSIX.4 has completed its third round of balloting and the ballot
  1045. objections are dropping off in a gratifying fashion.  The draft should
  1046. be out for its next-to-last recirculation by the April meeting.  IEEE
  1047. approval is expected in the Fall of 1992. POSIX.4a is approaching its
  1048. next circulation and should be re-circulated by the Fall meeting as
  1049. well.  POSIX.4a will actually be re-balloted rather than re-
  1050. circulated, because it was not able to achieve a 75% approval rate.
  1051. This means that the entire draft will be open for comment, rather than
  1052. just the parts of the draft that have changed from the previous
  1053. draft.  The balloting group, however, will remain the same.
  1054.  
  1055.  
  1056. Volume-Number: Volume 27, Number 8
  1057.  
  1058. From std-unix-request@uunet.UU.NET  Mon Feb 24 18:12:17 1992
  1059. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1060.     (5.61/UUNET-mail-drop) id AA07273; Mon, 24 Feb 92 18:12:17 -0500
  1061. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1062.     (5.61/UUNET-internet-primary) id AA16988; Mon, 24 Feb 92 18:11:32 -0500
  1063. Newsgroups: comp.std.unix
  1064. From: Peter Collinson <pc@hillside.co.uk>
  1065. Subject: Standards Update, POSIX.5, POSIX.20: Ada Bindings
  1066. Message-Id: <1992Feb24.230726.19966@uunet.uu.net>
  1067. Reply-To: dswanson@email.sp.unisys.com
  1068. X-Submissions: std-unix@uunet.uu.net
  1069. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1070. Date: Mon, 24 Feb 1992 22:54:21 GMT
  1071. To: std-unix@uunet.UU.NET
  1072. Sender: Network News <news@kithrup.com>
  1073. Source-Info:  From (or Sender) name not authenticated.
  1074.  
  1075. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1076.  
  1077. USENIX Standards Watchdog Committee
  1078.  
  1079. Stephen Walli <stephe@usenix.org>, Report Editor
  1080. Report on POSIX.5, POSIX.20: Ada Bindings
  1081.  
  1082.  
  1083. Del Swanson <dswanson@email.sp.unisys.com> reports on the January
  1084. 13-17 meeting in Irvine, CA:
  1085.  
  1086. The POSIX.5 working group is producing an Ada binding to the C-based
  1087. POSIX.1 document. The group is also involved with a new project,
  1088. POSIX.20.  This will be an Ada binding to the programming language
  1089. independent specification of POSIX.4 (Real-time Extensions) and
  1090. POSIX.4a (Threads).
  1091.  
  1092. The meeting in Irvine was spent on the finishing touches to the
  1093. POSIX.5 document, which is finishing ballot, and getting a good start
  1094. on the new POSIX.20 work.
  1095.  
  1096. The group had been somewhat shocked at the overwhelming positive
  1097. response to the first recirculation of the POSIX.5 document. There was
  1098. almost 90% approval by the almost 300 balloters. This is a compliment
  1099. to the great ballot resolution job on the part of the technical
  1100. reviewers. It was a slight embarrassment, however, since there were
  1101. known errors in the draft. In fact, the draft had been sent out for
  1102. recirculation even though an error had been discovered at the last
  1103. minute. We assumed that it could be fixed in the next recirculation.
  1104.  
  1105. The group decided to ``do the right thing'', and make one more
  1106. recirculation with minor editorial changes and a couple of error
  1107. corrections. Draft 8 is expected to be the final recirculation. It
  1108. should have a fast turn-around, and it is expected to be approved at
  1109. the June meeting of the IEEE Standards Board.
  1110.  
  1111. Several new members have joined the group because of their interest in
  1112. the POSIX.20 binding of the real-time extensions.  They showed
  1113. themselves to be eager participants, astute observers, and acquainted
  1114. with the issues we will be facing in this task.
  1115.  
  1116. The single issue that will demand our attention more than any other
  1117. during the binding deliberations is how the relationship of Ada tasks
  1118. to POSIX.4a threads will be represented in the binding. As background,
  1119. most of us are convinced that the p-threads as defined in POSIX.4a will
  1120. provide an adequate capability for Ada implementations to use for a
  1121. direct mapping of Ada tasks. Further, we believe that the services
  1122. provided in the POSIX.4 materials will be sufficient for a reasonably
  1123. straight-forward implementation of Ada tasking semantics by Ada
  1124. runtime libraries.
  1125.  
  1126. Nevertheless, the semantics of tasks are not identical to the
  1127. semantics of threads (for example, Ada allows no orphans). Further,
  1128. since Ada as a language introduces concurrency along with the rules of
  1129. interactions, the runtime libraries of Ada implementations like to be
  1130. able to make assumptions about the state of tasks. Disrupting this
  1131. state would likely be disastrous.  For example, if an application
  1132. directly aborted a thread (which had been mapped as a task) the
  1133. runtime library could become quickly confused.
  1134.  
  1135. Opinions about how to deal with this situation range widely, and tend
  1136. to be held strongly. Some participants believe that services such as
  1137. pthread_create() that are available via language construct (declare a
  1138. task) should not be visible to applications by direct call to the
  1139. operating system. Others believe that every interface should be made
  1140. directly visible by way of the Ada binding. Many attempts are being
  1141. made to integrate the needs of the various factions. This issue will
  1142. arise in many ways throughout the entire POSIX.20 project.
  1143.  
  1144. One issue that was resolved was the basic character of the binding.
  1145. The IEEE POSIX working groups have taken the lead from ISO WG15 (ISO
  1146. POSIX) that all POSIX standards will be formulated as language
  1147. independent specifications (LIS), and this will be accompanied by a
  1148. series of thin programming language bindings.  While there continues
  1149. to be scepticism evidenced by some members of the group, who doubt the
  1150. wisdom (or the possibility) of this approach, we agreed that we would
  1151. be converts to the cause.
  1152.  
  1153. We will produce a thin binding to the LIS versions of POSIX.4 and
  1154. POSIX.4a.  We will do so enthusiastically. We will help the POSIX.4
  1155. working group in so far as we can to produce a viable LIS version.
  1156.  
  1157. We are fortunate that a couple of our members have received funding to
  1158. give us a head start on some labor-intensive activities. The U.S. Navy
  1159. funded a solid first draft of the test assertions for POSIX.5. The
  1160. U.S. Army funded a first draft thin Ada binding (or transliteration)
  1161. of the existing C-based POSIX.4 document.
  1162.  
  1163. In summary, we are expecting some significant progress at our next
  1164. meeting, now that most people are oriented to the issues.  Several
  1165. people have volunteered to write position papers, and to start working
  1166. on chapters to present for consideration in April.
  1167.  
  1168. Your Ada Snitch.
  1169.  
  1170.  
  1171. Volume-Number: Volume 27, Number 9
  1172.  
  1173. From std-unix-request@uunet.UU.NET  Mon Feb 24 18:12:43 1992
  1174. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1175.     (5.61/UUNET-mail-drop) id AA07364; Mon, 24 Feb 92 18:12:43 -0500
  1176. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1177.     (5.61/UUNET-internet-primary) id AA17125; Mon, 24 Feb 92 18:11:53 -0500
  1178. Newsgroups: comp.std.unix
  1179. From: Peter Collinson <pc@hillside.co.uk>
  1180. Subject: Standards Update, U.S. Standards Technical Advisory Groups
  1181. Message-Id: <1992Feb24.230914.20351@uunet.uu.net>
  1182. Reply-To: hill@prc.unisys.com
  1183. X-Submissions: std-unix@uunet.uu.net
  1184. Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
  1185. Date: Mon, 24 Feb 1992 22:56:36 GMT
  1186. To: std-unix@uunet.UU.NET
  1187. Sender: Network News <news@kithrup.com>
  1188. Source-Info:  From (or Sender) name not authenticated.
  1189.  
  1190. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  1191.  
  1192. John Hill <hill@prc.unisys.com> reports on U.S. Standards Technical
  1193. Advisory Groups
  1194.  
  1195.  
  1196. Standards, like automobiles, come in several sizes, shapes, and colors
  1197. suitable to the use to which they will be put.  With cars there are
  1198. options for just about everything; from appearance, to utility, to
  1199. emissions control.  Not only that, cars are also sold with features
  1200. specifically accommodating the place in which they are to be used.  If
  1201. you don't have a strong grasp of what that means then try driving your
  1202. '61 Ford Fairlane down any London street during crush hour.  Your car
  1203. won't fit, it's too wide.  Its outside mirrors aren't a breakaway
  1204. type, so you are dangerous to pedestrians.  Not to mention that you
  1205. steer on the wrong side of the car for the side of the street on which
  1206. you are driving. In London cars have features to accommodate their
  1207. situation.  Just like your '61 Fairlane fits local US requirements in
  1208. the early sixties.
  1209.  
  1210. What does this have to do with standards?  A lot.  The analogy helps
  1211. highlight some of the problems of developing worldwide standards.
  1212. Driving and cars provide interesting examples.  It would be helpful if
  1213. it were simpler to drive in foreign places without being a hazard to
  1214. the local inhabitants, as well as to one's self.  What's more, it
  1215. would be convenient to have the same situation, in terms of driving
  1216. conditions and cars, presented all over the world.  But, in the UK
  1217. there are unique local requirements for cars, just as there are in all
  1218. other nations of the world.
  1219.  
  1220. Consider the situation.  In countries the world over, the local people
  1221. know their driving conditions better than anyone and from them can
  1222. determine the requirements for a suitable car.  After all, they face
  1223. the situation every day.  But conditions differ from country to
  1224. country.  This places different requirements on the cars to be
  1225. operated in each country.  From a producer perspective, this results in
  1226. different product variants to accommodate each country in which the
  1227. product is used.  From a world user perspective, this results in
  1228. inconvenience during use.  (It does however, simplify the matter of
  1229. determining where you are.  All you have to do is look at the car
  1230. you're driving.)  From a general interest perspective, it is confusing
  1231. at best and baffling at its worst.
  1232.  
  1233. Information technology exhibits many of the same properties as cars.
  1234. In the case of telecommunications, there truly are a multitude of
  1235. factors which take on local values.  One trivial example is the
  1236. assignment of characters to numbers on the telephone keypad.  A
  1237. tougher problem is the variability in the quality of phone line
  1238. service across the broad spectrum of transmission rates.  Please
  1239. recognize that these examples are objective, deterministic and based on
  1240. universally accepted physical laws and phenomena.  Software is, well,
  1241. softer.  In any event, there is great interest in having a single
  1242. worldwide standard wherever feasible.
  1243.  
  1244. Standards bodies
  1245.  
  1246. Enter IEC, CCITT and ISO.  These are the organizations which develop
  1247. formal worldwide standards.  Their names are actually French and won't
  1248. be cited here.  It is useful to recognize that, as a general
  1249. characterization of their scopes, they handle electrotechnical (e.g.
  1250. safety, EMI), telecommunications (e.g.  ISDN) and everything else (e.g.
  1251. food storage, mechanical contraceptive devices, fuels and lubricants)
  1252. respectively.  Development of standards for information technology
  1253. spans the traditional boundaries of both ISO and IEC and, as such, is
  1254. managed jointly by both ISO and IEC in Joint Technical Committee 1
  1255. (JTC1).
  1256.  
  1257. The membership of ISO, IEC, CCITT and JTC1 is at a higher level than
  1258. organizations.  CCITT is a treaty organization; the U.S. is
  1259. represented by the Department of State.  ANSI represents the U.S.  as
  1260. the member body in ISO, the national committee in IEC, and the
  1261. national body in JTC1.  AFNOR, BSI, SIS, DIN and ON, as examples, are
  1262. the national body representatives of France, the UK, Sweden, Germany
  1263. and Austria respectively.  Other standards bodies participate in a
  1264. limited manner.  The most visible of these is the regional standards
  1265. developer, the European Computer Manufacturers' Association (ECMA).
  1266.  
  1267. If one were to examine the scope of technical activity of JTC1, the
  1268. unavoidable conclusion is that it's broad and deep.  Not only does it
  1269. cover a lot of ground (media to programming languages) but also in
  1270. excruciating detail.  It is unrealistic to expect that a single
  1271. organization can develop and promote a national body position in all
  1272. the JTC1 technical activities.  In the U.S., the concept of Technical
  1273. Advisory Group (TAG) was put forward to handle this.
  1274.  
  1275. Tags
  1276.  
  1277. TAGs are enabled by ANSI to develop the U.S. position on a limited set
  1278. of items for specifically identified JTC1 activities.  What's that
  1279. mean?  Essentially, that ANSI assigns to individual standards bodies
  1280. the responsibility of handling U.S. technical interest for specific
  1281. international standards activities.
  1282.  
  1283. Most of the time the enabling of specific organizations to act as a
  1284. TAG for an international standards development effort is simple and
  1285. not controversial.  Individual programming languages, developed in
  1286. working groups of JTC1 subcommittees, are typically simple.  For
  1287. example, there is only one U.S. group developing standards for POSIX,
  1288. IEEE's P1003, and one for COBOL, X3's technical committee, X3J4.  As a
  1289. result, the identification of the TAG for those working groups is
  1290. straight forward.
  1291.  
  1292. Sometimes the assignment of TAG responsibility is not so easy.  Take
  1293. the example of JTC1's subcommittee on languages, SC22.  There are
  1294. several U.S. standards development organizations which make-up the TAG
  1295. to SC22. The IEEE has POSIX and Modula-2; CODASYL has FIMS; the
  1296. Department of Defense has Ada; and X3 has a multitude of others.
  1297. Within X3, a subgroup manages the issues that overlap those TAGs or
  1298. that do not fall within the activities of any of them.
  1299.  
  1300. As a sidelight allow me to point out that the U.S. even needs a TAG to
  1301. JTC1 itself.
  1302.  
  1303. Let's regroup for a moment.  There are TAGs in the U.S. for all levels
  1304. of ISO, IEC, CCITT and JTC1 in which the U.S. has an interest.  Using
  1305. JTC1 as a representative example, this means there are TAGs with
  1306. responsibility for JTC1 itself, for the JTC1 subcommittees, for the
  1307. JTC1 special working groups, for the JTC1 technical subcommittees, and
  1308. for the working groups of each JTC1 technical subcommittee in which
  1309. the U.S. is interested.  If there is activity anywhere within JTC1
  1310. that is of interest to the U.S., there is a TAG.  Someone has to do
  1311. the work.
  1312.  
  1313. Work of TAGS
  1314.  
  1315. A logical question now is "What are these TAGs empowered to do?"
  1316. Simple question, but a complex answer.  There are, however some rules
  1317. of thumb to help out.
  1318.  
  1319.    - the more important the decision, the higher the U.S.  consensus
  1320.      that is required
  1321.  
  1322.    - the more detailed and technical the subject, the higher the
  1323.      weight given to the opinions of technical experts
  1324.  
  1325. Some examples are useful.  One action JTC1 places a heavy value on is
  1326. the final approval of standards.  As a result, JTC1 rules require that
  1327. a ballot be taken of its members (remember them, they're the
  1328. representative national standards organizations) for adopting a
  1329. document as a worldwide standard.  Similarly, JTC1 members must vote to
  1330. approve new work items.  One way to think of this is that JTC1 makes
  1331. decisions that affect the beginning (i.e.  approval of new work items)
  1332. and ending (i.e. final approval) for standards.  JTC1 also makes all
  1333. decisions involving the establishment and dissolution of its immediate
  1334. subgroups.
  1335.  
  1336. JTC1 TAG establishes the U.S. positions on matters such as new work
  1337. items and final approval of standards.
  1338.  
  1339. Let us examine a lower level, technical decision of JTC1.  If we apply
  1340. the second rule from above, we will conclude that the decisions at
  1341. this level are delegated to the working group (of the technical
  1342. subcommittee of JTC1).  One such decision is the determination of what
  1343. text should be contained in a draft standard.  It doesn't get much more
  1344. detailed or technical than that.  The working group determines that.
  1345. All by themselves.
  1346.  
  1347. There is a whole world of grey between the two examples cited above.
  1348. Typically the decisions revolve around ``recommendations to forward''
  1349. documents in various stages of completion for consideration or
  1350. approval by higher authority committees.  A complete description of the
  1351. decisions and recommendations is not really appropriate for this
  1352. article.  However, if you're interested allow me to point you to two
  1353. companion documents.
  1354.  
  1355.    - the JTC1 directives (available from ANSI)
  1356.  
  1357.    - the JTC1 TAG technical document 1 (available from CBEMA)
  1358.  
  1359. They are in the form of procedures but for ease of use have
  1360. comprehensive indices.
  1361.  
  1362. There are a few messages for you to carry away.
  1363.  
  1364.    - TAGs are empowered by ANSI
  1365.  
  1366.    - TAGs represent the U.S.
  1367.  
  1368.    - there are TAGs for every worldwide standards activity that is of
  1369.      interest to the U.S.
  1370.  
  1371.    - the more important the decision, the higher the need for national
  1372.      body consensus; the more technical the decision, the lower the
  1373.      need for national body consensus
  1374.  
  1375. This has been a brief exposure of technical advisory groups in the
  1376. U.S..  As you have observed, the subject is complicated.  The best way
  1377. to understand them is to join one that is in your particular area of
  1378. interest and expertise.  Rather than fuss and fret about the problems
  1379. you see with them, it is recommended that you become a part of the
  1380. solution.
  1381.  
  1382.  
  1383. Volume-Number: Volume 27, Number 11
  1384.  
  1385. From std-unix-request@uunet.UU.NET  Wed Feb 26 15:30:10 1992
  1386. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1387.     (5.61/UUNET-mail-drop) id AA16267; Wed, 26 Feb 92 15:30:10 -0500
  1388. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1389.     (5.61/UUNET-internet-primary) id AA29715; Wed, 26 Feb 92 15:30:08 -0500
  1390. Newsgroups: comp.std.unix
  1391. From: proto@mitchell.hac.com
  1392. Subject: X/Open's XTI standard & OSF's TLI standard
  1393. Message-Id: <1992Feb26.202311.17679@uunet.uu.net>
  1394. Keywords: XTI, TLI, API
  1395. Reply-To: proto@mitchell.hac.com
  1396. X-Submissions: std-unix@uunet.uu.net
  1397. Organization: Hughes Aircraft Company
  1398. Date: Tue, 25 Feb 1992 18:51:06 GMT
  1399. To: std-unix@uunet.UU.NET
  1400. Sender: Network News <news@kithrup.com>
  1401. Source-Info:  From (or Sender) name not authenticated.
  1402.  
  1403. Submitted-by: proto@mitchell.hac.com
  1404.  
  1405. Does anyone out there have any information regarding
  1406. X/Open's XTI (X/Open Transport Interface) API standard
  1407. or OSF's TLI (Transport Layer Interface) API? 
  1408.  
  1409. We are presently looking into incorporating one of the
  1410. above API standards into our applications, and therefore
  1411. need more information about them.   I'm interested 
  1412. finding out what the status of these standards is, how 
  1413. to obtain a copy of the standard, and if any 
  1414. implementations exist.
  1415.  
  1416. I'll post a summary of the volume of responses warrant it.
  1417.  
  1418. thanks in advance.
  1419.  
  1420. -----------------------------------------------------------
  1421. Scott Thomas                      | 
  1422. Space & Communications Group      | ...still searching for
  1423. Hughes Aircraft Co.               | the perfect sigature...
  1424. sthomas@mitchell.eos.scg.hac.com  |
  1425.  
  1426.  
  1427. Volume-Number: Volume 27, Number 14
  1428.  
  1429. From std-unix-request@uunet.UU.NET  Wed Feb 26 15:31:13 1992
  1430. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1431.     (5.61/UUNET-mail-drop) id AA16301; Wed, 26 Feb 92 15:31:13 -0500
  1432. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1433.     (5.61/UUNET-internet-primary) id AA29720; Wed, 26 Feb 92 15:30:09 -0500
  1434. Newsgroups: comp.std.unix
  1435. From: peter da silva <peter@ficc.ferranti.com>
  1436. Subject: Standards Update: POSIX.4[a] Asynchronous I/O vs. Threads.
  1437. Message-Id: <1992Feb26.202224.17514@uunet.uu.net>
  1438. X-Submissions: std-unix@uunet.uu.net
  1439. Organization: UUNET Communications Services
  1440. Date: Tue, 25 Feb 1992 21:51:30 GMT
  1441. Reply-To: std-unix@uunet.UU.NET
  1442. To: std-unix@uunet.UU.NET
  1443. Sender: Network News <news@kithrup.com>
  1444. Source-Info:  From (or Sender) name not authenticated.
  1445.  
  1446. Submitted-by: peter@ficc.ferranti.com (peter da silva)
  1447.  
  1448. Peter Collinson noted in the recent Standards Update that there was
  1449. opposition to a standard non-blocking system call interface, on the
  1450. grounds that the threads interface provided the same functionality.
  1451.  
  1452. For the case where threads are implemented in user mode, or as a side
  1453. effect of threads, it's likely that most implementations will have
  1454. some such facility anyway. Given this, I think it would be highly
  1455. desirable to spell out a standard interface, whether or not the facility
  1456. itself is mandated.
  1457.  
  1458. In the past I have seen two families of interfaces to this, either one
  1459. of which would be acceptable: In the first, you allocate some sort of
  1460. magic token (LUNs, Event Flags, Signal Bits, etc...) from a pool, and
  1461. pass them to the asynchronous call interface. You can later test or wait
  1462. on these tokens to see if an event has occurred. The other interface is
  1463. for the async call to return a token which you can use later, similar to
  1464. the way UNIX file handles work.
  1465.  
  1466. Personally, I prefer the latter interface. It's similar to the existing
  1467. UNIX open/read/write setup, and the tokens could even be file descriptors
  1468. in some implementations.
  1469.  
  1470.  
  1471.  
  1472. Volume-Number: Volume 27, Number 13
  1473.  
  1474. From std-unix-request@uunet.UU.NET  Wed Feb 26 15:31:14 1992
  1475. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1476.     (5.61/UUNET-mail-drop) id AA16304; Wed, 26 Feb 92 15:31:14 -0500
  1477. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1478.     (5.61/UUNET-internet-primary) id AA29774; Wed, 26 Feb 92 15:30:19 -0500
  1479. Newsgroups: comp.std.unix
  1480. From: "Mike Wulkan" <WULKAN@torolab6.vnet.ibm.com>
  1481. Subject: Re: return from a signal-catching function
  1482. Message-Id: <1992Feb26.202432.17940@uunet.uu.net>
  1483. X-Submissions: std-unix@uunet.uu.net
  1484. Organization: UUNET Communications Services
  1485. References: <1992Feb22.232957.16129@uunet.uu.net>,
  1486. Date: Wed, 26 Feb 1992 13:08:42 GMT
  1487. Reply-To: std-unix@uunet.UU.NET
  1488. To: std-unix@uunet.UU.NET
  1489. Sender: Network News <news@kithrup.com>
  1490. Source-Info:  From (or Sender) name not authenticated.
  1491.  
  1492. Submitted-by: WULKAN@TOROLAB6.VNET.IBM.COM ("Mike Wulkan")
  1493.  
  1494. In article <1992Feb22.232957.16129@uunet.uu.net>,
  1495. karish@mindcraft.com (Chuck Karish) writes:
  1496.  
  1497. >SIGFPE, SIGILL, and SIGSEGV are the signal names defined by
  1498. >POSIX.1 that correspond to computational exceptions.  Elsewhere
  1499. >in POSIX.1 it is stated that the implementation may generate
  1500. >other, implementation-defined signals.  The names of these
  1501. >signals and the conditions under which they are generated
  1502. >are to be documented in the POSIX conformance document.
  1503. >
  1504. >POSIX.1 tries not to keep the implementation from providing
  1505. >additional signals or errno values that give more information
  1506. >to the programmer, as long as the base behavior specified
  1507. >by the Standard is also supported and the appropriate
  1508. >documentation is provided.
  1509.  
  1510. I had no question regarding additional implementation defined signals.
  1511. My question was whether an implementation could choose to designate one
  1512. of the other Posix defined signals as "computational" with regards to
  1513. the undefined behaviour when returning from a handler?  I think the
  1514. answer is no.
  1515.  
  1516. On a similar note, there seems to be a contradiction in the
  1517. section describing SIG_IGN which reads:
  1518.  
  1519.   "Delivery of the signal shall have no effect on the process.
  1520.   The behavior of a process is undefined after it ignores a SIGFPE,
  1521.   SIGILL, or SIGSEGV signal ..."
  1522.  
  1523. Why would the behavior of a process be UNDEFINED if the signal has NO
  1524. EFFECT on the process?  Obviously the signal has an effect!  Why not
  1525. simply disallow SIG_IGN to be specified for SIGFPE, SIGILL and SIGSEGV as
  1526. is done for SIGKILL and SIGSTOP?  At the very least it would seem that
  1527. the section would be more accurately worded:
  1528.  
  1529.   The behavior of the process is undefined after a SIGFPE, SIGILL, or
  1530.   SIGSEGV signal is delivered, otherwise delivery of the signal shall
  1531.   have no effect on the process.
  1532.  
  1533. Mike Wulkan
  1534.  
  1535.  
  1536. Volume-Number: Volume 27, Number 15
  1537.  
  1538. From std-unix-request@uunet.UU.NET  Wed Feb 26 15:39:48 1992
  1539. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1540.     (5.61/UUNET-mail-drop) id AA17304; Wed, 26 Feb 92 15:39:48 -0500
  1541. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1542.     (5.61/UUNET-internet-primary) id AA02493; Wed, 26 Feb 92 15:39:46 -0500
  1543. Newsgroups: comp.std.unix
  1544. From: Doug Gwyn <gwyn@smoke.brl.mil>
  1545. Subject: Re: return from a signal-catching function
  1546. Message-Id: <1992Feb26.202135.17342@uunet.uu.net>
  1547. X-Submissions: std-unix@uunet.uu.net
  1548. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  1549. References: <1992Feb22.073722.18969@uunet.uu.net>
  1550. Date: Mon, 24 Feb 1992 22:49:35 GMT
  1551. Reply-To: std-unix@uunet.UU.NET
  1552. To: std-unix@uunet.UU.NET
  1553. Sender: Network News <news@kithrup.com>
  1554. Source-Info:  From (or Sender) name not authenticated.
  1555.  
  1556. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  1557.  
  1558. In article <1992Feb22.073722.18969@uunet.uu.net> WULKAN@TOROLAB6.VNET.IBM.COM (Mike Wulkan) writes:
  1559. >Is the intent of Posix to "limit" the scope of "other
  1560. >implementation-defined value" to exactly SIGFPE, SIGILL and SIGSEGV?
  1561. >Or is Posix simply extending the list to include SIGILL and SIGSEGV
  1562. >while still allowing for other implementation-defined values?
  1563.  
  1564. The latter.
  1565.  
  1566.  
  1567. Volume-Number: Volume 27, Number 12
  1568.  
  1569. From std-unix-request@uunet.UU.NET  Wed Feb 26 18:03:11 1992
  1570. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1571.     (5.61/UUNET-mail-drop) id AA00795; Wed, 26 Feb 92 18:03:11 -0500
  1572. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1573.     (5.61/UUNET-internet-primary) id AA15192; Wed, 26 Feb 92 18:03:07 -0500
  1574. Newsgroups: comp.std.unix
  1575. From: Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
  1576. Subject: Re: return from a signal-catching function
  1577. Message-Id: <1992Feb26.225705.1510@uunet.uu.net>
  1578. X-Submissions: std-unix@uunet.uu.net
  1579. Organization: Free Software Foundation, Cambridge, MA
  1580. References: <1992Feb22.232957.16129@uunet.uu.net>, <1992Feb26.202432.17940@uunet.uu.net>
  1581. Date: Wed, 26 Feb 1992 22:02:49 GMT
  1582. Reply-To: std-unix@uunet.UU.NET
  1583. To: std-unix@uunet.UU.NET
  1584. Sender: Network News <news@kithrup.com>
  1585. Source-Info:  From (or Sender) name not authenticated.
  1586.  
  1587. Submitted-by: mib@geech.gnu.ai.mit.edu (Michael I Bushnell)
  1588.  
  1589. In article <1992Feb26.202432.17940@uunet.uu.net> WULKAN@TOROLAB6.VNET.IBM.COM ("Mike Wulkan") writes:
  1590.  
  1591.    On a similar note, there seems to be a contradiction in the
  1592.    section describing SIG_IGN which reads:
  1593.  
  1594.      "Delivery of the signal shall have no effect on the process.
  1595.      The behavior of a process is undefined after it ignores a SIGFPE,
  1596.      SIGILL, or SIGSEGV signal ..."
  1597.  
  1598.    Why would the behavior of a process be UNDEFINED if the signal has NO
  1599.    EFFECT on the process?  Obviously the signal has an effect!  Why not
  1600.    simply disallow SIG_IGN to be specified for SIGFPE, SIGILL and SIGSEGV as
  1601.    is done for SIGKILL and SIGSTOP?  At the very least it would seem that
  1602.    the section would be more accurately worded:
  1603.  
  1604.      The behavior of the process is undefined after a SIGFPE, SIGILL, or
  1605.      SIGSEGV signal is delivered, otherwise delivery of the signal shall
  1606.      have no effect on the process.
  1607.  
  1608. It isn't the signal that has the effect.  It's that the machine will
  1609. do something odd.  For example, on a Vax, an illegal memory reference
  1610. is a fault.  If the generated signal is ignored, the result is an
  1611. infinite loop.  It is useful for the OS to specify this.  On the other
  1612. hand, it is also useful for Posix to leave it undefined, because
  1613. different hardware and different OS's recover from such things
  1614. differently.
  1615.  
  1616. If you just do `kill -ILL 387', and process 387 has set the handler
  1617. for SIGILL to SIG_IGN, truly nothing should happen.  I believe Posix
  1618. should specify this, but I don't believe it does.
  1619.  
  1620. The confusion here is between the hardward (implementation-defined)
  1621. event causing the signal and the signal itself.
  1622.  
  1623. Your suggested fix is not adequate, however.  People should be able to
  1624. catch illegal references in programs, and then be able to exit nicely.
  1625. Your "fix" precludes doing so portably.
  1626.  
  1627.     -mib
  1628. --
  1629. Michael Innis Bushnell      | This is a virulent meme.  Whether or not you place
  1630. Email: mib@gnu.ai.mit.edu | this into your signature file is irrelevant.  You
  1631. Phone: (617) 625-4518      | have already participated in its further trans-
  1632.               | mission, and will doubtless continue to do so.
  1633.  
  1634.  
  1635. Volume-Number: Volume 27, Number 17
  1636.  
  1637. From std-unix-request@uunet.UU.NET  Wed Feb 26 18:03:52 1992
  1638. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1639.     (5.61/UUNET-mail-drop) id AA00812; Wed, 26 Feb 92 18:03:52 -0500
  1640. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1641.     (5.61/UUNET-internet-primary) id AA15417; Wed, 26 Feb 92 18:03:46 -0500
  1642. Newsgroups: comp.std.unix
  1643. From: Henry Spencer <henry@zoo.toronto.edu>
  1644. Subject: Re: Standards Update: POSIX.4[a] Asynchronous I/O vs. Threads.
  1645. Message-Id: <1992Feb26.225630.1375@uunet.uu.net>
  1646. X-Submissions: std-unix@uunet.uu.net
  1647. Organization: U of Toronto Zoology
  1648. References: <1992Feb26.202224.17514@uunet.uu.net>
  1649. Date: Wed, 26 Feb 1992 22:14:20 GMT
  1650. Reply-To: std-unix@uunet.UU.NET
  1651. To: std-unix@uunet.UU.NET
  1652. Sender: Network News <news@kithrup.com>
  1653. Source-Info:  From (or Sender) name not authenticated.
  1654.  
  1655. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  1656.  
  1657. In article <1992Feb26.202224.17514@uunet.uu.net> peter@ficc.ferranti.com (peter da silva) writes:
  1658. >...opposition to a standard non-blocking system call interface, on the
  1659. >grounds that the threads interface provided the same functionality.
  1660. >
  1661. >For the case where threads are implemented in user mode, or as a side
  1662. >effect of threads, it's likely that most implementations will have
  1663. >some such facility anyway. Given this, I think it would be highly
  1664. >desirable to spell out a standard interface, whether or not the facility
  1665. >itself is mandated.
  1666.  
  1667. Except that somebody, like the clots at NIST, will then demand that
  1668. everyone implement it.  This is properly a detail of the *implementation*
  1669. of threads, and should be left to the implementors.
  1670.  
  1671. The point is, the user gets access to the functionality by using threads.
  1672. There is no gain to him in having another interface documented, especially
  1673. if it is one that might or might not be present, and especially if -- as
  1674. with non-blocking syscalls -- it leads to messier and buggier code
  1675. than the interface that is already provided.  (Every non-blocking-calls
  1676. program I've ever seen has had a threads program inside, screaming to
  1677. get out.)
  1678. -- 
  1679. The X Window system is not layered, and | Henry Spencer @ U of Toronto Zoology
  1680. it was not designed. -Shane P. McCarron |  henry@zoo.toronto.edu  utzoo!henry
  1681.  
  1682.  
  1683. Volume-Number: Volume 27, Number 16
  1684.  
  1685. From std-unix-request@uunet.UU.NET  Fri Feb 28 19:11:47 1992
  1686. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1687.     (5.61/UUNET-mail-drop) id AA05204; Fri, 28 Feb 92 19:11:47 -0500
  1688. Received: from kithrup.COM (via [140.174.1.40]) by relay2.UU.NET with SMTP 
  1689.     (5.61/UUNET-internet-primary) id AA22749; Thu, 27 Feb 92 21:06:56 -0500
  1690. Newsgroups: comp.std.unix
  1691. From: "Mike Wulkan" <WULKAN@torolab6.vnet.ibm.com>
  1692. Subject: Re: return from a signal-catching function
  1693. Message-Id: <1992Feb28.005415.22973@uunet.uu.net>
  1694. X-Submissions: std-unix@uunet.uu.net
  1695. Organization: UUNET Communications Services
  1696. References: <1992Feb26.225705.1510@uunet.uu.net>,
  1697. Date: Thu, 27 Feb 1992 13:28:45 GMT
  1698. Reply-To: std-unix@uunet.UU.NET
  1699. To: std-unix@uunet.UU.NET
  1700. Sender: Network News <news@kithrup.com>
  1701. Source-Info:  From (or Sender) name not authenticated.
  1702.  
  1703. Submitted-by: WULKAN@TOROLAB6.VNET.IBM.COM ("Mike Wulkan")
  1704.  
  1705. In article <1992Feb26.225705.1510@uunet.uu.net>,
  1706. mib@geech.gnu.ai.mit.edu (Michael I Bushnell) writes:
  1707.  
  1708. >If you just do `kill -ILL 387', and process 387 has set the handler
  1709. >for SIGILL to SIG_IGN, truly nothing should happen.  I believe Posix
  1710. >should specify this, but I don't believe it does.
  1711. >
  1712. >The confusion here is between the hardware (implementation-defined)
  1713. >event causing the signal and the signal itself.
  1714. >
  1715. >Your suggested fix is not adequate, however.  People should be able to
  1716. >catch illegal references in programs, and then be able to exit nicely.
  1717. >Your "fix" precludes doing so portably.
  1718.  
  1719. No, my "fix" was only in reference to SIG_IGN.  You can still specify
  1720. a signal catching function and then longjmp, exit or abort "nicely".
  1721. There is nothing portable about the current Posix definition of
  1722. ignoring (via SIG_IGN) a SIGSEGV, SIGILL or SIGFPE signal since it
  1723. specifically says that the behavior of the process after the signal
  1724. is delivered is undefined.
  1725.  
  1726. Mike Wulkan
  1727.  
  1728.  
  1729. Volume-Number: Volume 27, Number 19
  1730.  
  1731. From std-unix-request@uunet.UU.NET  Fri Feb 28 19:12:14 1992
  1732. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1733.     (5.61/UUNET-mail-drop) id AA05233; Fri, 28 Feb 92 19:12:14 -0500
  1734. Received: from kithrup.COM (via [140.174.1.40]) by relay2.UU.NET with SMTP 
  1735.     (5.61/UUNET-internet-primary) id AA22838; Thu, 27 Feb 92 21:07:26 -0500
  1736. Newsgroups: comp.std.unix
  1737. From: Chuck Karish <karish@mindcraft.com>
  1738. Subject: Re: return from a signal-catching function
  1739. Message-Id: <1992Feb28.005506.23144@uunet.uu.net>
  1740. X-Submissions: std-unix@uunet.uu.net
  1741. Organization: Mindcraft, Inc.
  1742. References: <1992Feb22.232957.16129@uunet.uu.net> <1992Feb26.202432.17940@uunet.uu.net>
  1743. Date: Thu, 27 Feb 1992 15:12:31 GMT
  1744. Reply-To: std-unix@uunet.UU.NET
  1745. To: std-unix@uunet.UU.NET
  1746. Sender: Network News <news@kithrup.com>
  1747. Source-Info:  From (or Sender) name not authenticated.
  1748.  
  1749. Submitted-by: karish@mindcraft.com (Chuck Karish)
  1750.  
  1751. In article <1992Feb26.202432.17940@uunet.uu.net> WULKAN@TOROLAB6.VNET.IBM.COM
  1752. ("Mike Wulkan") writes:
  1753. >I had no question regarding additional implementation defined signals.
  1754. >My question was whether an implementation could choose to designate one
  1755. >of the other Posix defined signals as "computational" with regards to
  1756. >the undefined behaviour when returning from a handler?  I think the
  1757. >answer is no.
  1758.  
  1759. I agree.
  1760.  
  1761. >Why would the behavior of a process be UNDEFINED if the signal has NO
  1762. >EFFECT on the process?
  1763.  
  1764. Because the event that caused the signal to be generated
  1765. has already corrupted the process's execution environment.
  1766.  
  1767. >Obviously the signal has an effect!
  1768.  
  1769. When it's ignored?
  1770.  
  1771. >Why not
  1772. >simply disallow SIG_IGN to be specified for SIGFPE, SIGILL and SIGSEGV as
  1773. >is done for SIGKILL and SIGSTOP?
  1774.  
  1775. Because the process can sometimes exit gracefully.  No
  1776. guarantee, though.
  1777.  
  1778. >At the very least it would seem that
  1779. >the section would be more accurately worded:
  1780. >
  1781. >  The behavior of the process is undefined after a SIGFPE, SIGILL, or
  1782. >  SIGSEGV signal is delivered, otherwise delivery of the signal shall
  1783. >  have no effect on the process.
  1784.  
  1785. The behavior of the process is defined after one of these
  1786. signals is delivered: abnormal termination.  The second
  1787. sentence is unnecessary, because the process of catching a
  1788. signal is already well defined.  By re-writing this, you've
  1789. removed the warning that the signals in question indicate
  1790. that the process is in trouble from which the operating
  1791. system can not rescue it.
  1792.  
  1793.     Chuck Karish        karish@mindcraft.com
  1794.     Mindcraft, Inc.        (415) 323-9000
  1795.  
  1796.  
  1797. Volume-Number: Volume 27, Number 20
  1798.  
  1799. From std-unix-request@uunet.UU.NET  Fri Feb 28 19:12:47 1992
  1800. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1801.     (5.61/UUNET-mail-drop) id AA05264; Fri, 28 Feb 92 19:12:47 -0500
  1802. Received: from kithrup.COM (via [140.174.1.40]) by relay2.UU.NET with SMTP 
  1803.     (5.61/UUNET-internet-primary) id AA22693; Thu, 27 Feb 92 21:06:40 -0500
  1804. Newsgroups: comp.std.unix
  1805. From: Doug Gwyn <gwyn@smoke.brl.mil>
  1806. Subject: Re: return from a signal-catching function
  1807. Message-Id: <1992Feb28.005311.22787@uunet.uu.net>
  1808. X-Submissions: std-unix@uunet.uu.net
  1809. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  1810. References: <1992Feb22.232957.16129@uunet.uu.net> <1992Feb26.202432.17940@uunet.uu.net>
  1811. Date: Thu, 27 Feb 1992 10:16:13 GMT
  1812. Reply-To: std-unix@uunet.UU.NET
  1813. To: std-unix@uunet.UU.NET
  1814. Sender: Network News <news@kithrup.com>
  1815. Source-Info:  From (or Sender) name not authenticated.
  1816.  
  1817. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  1818.  
  1819. In article <1992Feb26.202432.17940@uunet.uu.net> WULKAN@TOROLAB6.VNET.IBM.COM ("Mike Wulkan") writes:
  1820. >On a similar note, there seems to be a contradiction in the
  1821. >section describing SIG_IGN which reads:
  1822. >  "Delivery of the signal shall have no effect on the process.
  1823. >  The behavior of a process is undefined after it ignores a SIGFPE,
  1824. >  SIGILL, or SIGSEGV signal ..."
  1825. >Why would the behavior of a process be UNDEFINED if the signal has NO
  1826. >EFFECT on the process?  Obviously the signal has an effect!
  1827.  
  1828. The first sentence states the general rule; the second then modifies it
  1829. with particular exceptions.  That in fact reflects the way the signal
  1830. mechanism evolved and the way that we think about it.
  1831.  
  1832. >Why not simply disallow SIG_IGN to be specified for SIGFPE, SIGILL and
  1833. >SIGSEGV as is done for SIGKILL and SIGSTOP?
  1834.  
  1835. The effect as worded is to render such programs not maximally portable
  1836. anyway.  (In Standard C parlance they would be "not strictly conforming".)
  1837.  
  1838. In the course of preparing such standards, often there was political
  1839. pressure to "not disallow" certain examples of existing programming
  1840. practice.  Whenever the standard really could not promise semantics
  1841. for such constructs, there was the choice of forbidding them (and in
  1842. the case of the C language standard, requiring a diagnostic) or
  1843. allowing them with caveats about their non-portability.  Often the
  1844. latter was more acceptable to the standards group than the former.
  1845. I no longer recall why our signals working subgroup ended up with the
  1846. exact wording you cited, but my guess is it was partly practical
  1847. politics aimed at arriving at a consensus.
  1848.  
  1849. >At the very least it would seem that
  1850. >the section would be more accurately worded:
  1851. >  The behavior of the process is undefined after a SIGFPE, SIGILL, or
  1852. >  SIGSEGV signal is delivered, otherwise delivery of the signal shall
  1853. >  have no effect on the process.
  1854.  
  1855. The time to make such comments is during the public review of the
  1856. proposed standard.  You missed that by several years.
  1857.  
  1858.  
  1859. Volume-Number: Volume 27, Number 18
  1860.  
  1861. From std-unix-request@uunet.UU.NET  Mon Mar  2 04:15:51 1992
  1862. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1863.     (5.61/UUNET-mail-drop) id AA03518; Mon, 2 Mar 92 04:15:51 -0500
  1864. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1865.     (5.61/UUNET-internet-primary) id AA18165; Mon, 2 Mar 92 04:15:49 -0500
  1866. Newsgroups: comp.std.unix
  1867. From: peter da silva <peter@ferranti.com>
  1868. Subject: Re: Standards Update: POSIX.4[a] Asynchronous I/O vs. Threads.
  1869. Message-Id: <1992Mar2.090937.20980@uunet.uu.net>
  1870. X-Submissions: std-unix@uunet.uu.net
  1871. Organization: Xenix Support, FICC
  1872. References: <1992Feb26.202224.17514@uunet.uu.net> <1992Feb26.225630.1375@uunet.uu.net>
  1873. Date: Fri, 28 Feb 1992 00:01:43 GMT
  1874. Reply-To: std-unix@uunet.UU.NET
  1875. To: std-unix@uunet.UU.NET
  1876. Sender: Network News <news@kithrup.com>
  1877. Source-Info:  From (or Sender) name not authenticated.
  1878.  
  1879. Submitted-by: peter@ferranti.com (peter da silva)
  1880.  
  1881. In article <1992Feb26.225630.1375@uunet.uu.net> henry@zoo.toronto.edu (Henry Spencer) writes:
  1882. > The point is, the user gets access to the functionality by using threads.
  1883.  
  1884. Well, ignoring quality of implementation issues... yes.
  1885.  
  1886. > There is no gain to him in having another interface documented, especially
  1887. > if it is one that might or might not be present, and especially if -- as
  1888. > with non-blocking syscalls -- it leads to messier and buggier code
  1889. > than the interface that is already provided.
  1890.  
  1891. Well, actually, there is... if he's working in an environment that does not
  1892. readily lead itself to coding his program in terms of threads. For example,
  1893. if he's using an X toolkit or other non-reentrant library. In this case your
  1894. threads program is going to have to end up having one master thread that does
  1895. all the I/O, and a bunch of little threads running around it that emulate a
  1896. non-blocking syscall interface.
  1897.  
  1898. I understand your opinion of X, and I agree with it, but unfortunately it's
  1899. a reality, and its requirement that user application programs provide
  1900. reasonably good realtime response makes it a likely place to be doing
  1901. this sort of thing.
  1902.  
  1903. Also, a properly designed threads interface (I don't know if the 1003.4 one
  1904. is in a "properly designed" state or not this week) doesn't expose details
  1905. like whether the threads are managed in user mode or at the kernel level.
  1906.  
  1907. > (Every non-blocking-calls
  1908. > program I've ever seen has had a threads program inside, screaming to
  1909. > get out.)
  1910.  
  1911. How many have you seen? I've seen a lot, and some are simply written under
  1912. constraints that make threads unattractive in the extreme.
  1913.  
  1914. -- 
  1915. -- Peter da Silva,  Ferranti International Controls Corporation
  1916. -- Sugar Land, TX  77487-5012;  +1 713 274 5180
  1917. -- "Have you hugged your wolf today?"
  1918.  
  1919.  
  1920. Volume-Number: Volume 27, Number 21
  1921.  
  1922. From std-unix-request@uunet.UU.NET  Mon Mar  2 04:15:58 1992
  1923. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1924.     (5.61/UUNET-mail-drop) id AA03551; Mon, 2 Mar 92 04:15:58 -0500
  1925. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1926.     (5.61/UUNET-internet-primary) id AA18180; Mon, 2 Mar 92 04:15:53 -0500
  1927. Newsgroups: comp.std.unix
  1928. From: Fred Zlotnick <fred@mindcraft.com>
  1929. Subject: Re: return from a signal-catching function
  1930. Message-Id: <1992Mar2.091024.21139@uunet.uu.net>
  1931. X-Submissions: std-unix@uunet.uu.net
  1932. Organization: Mindcraft, Inc.
  1933. References: <1992Feb22.232957.16129@uunet.uu.net> <1992Feb26.202432.17940@uunet.uu.net>
  1934. Date: Thu, 27 Feb 1992 19:21:16 GMT
  1935. Reply-To: std-unix@uunet.UU.NET
  1936. To: std-unix@uunet.UU.NET
  1937. Sender: Network News <news@kithrup.com>
  1938. Source-Info:  From (or Sender) name not authenticated.
  1939.  
  1940. Submitted-by: fred@mindcraft.com (Fred Zlotnick)
  1941.  
  1942. In article <1992Feb26.202432.17940@uunet.uu.net> WULKAN@TOROLAB6.VNET.IBM.COM ("Mike Wulkan") writes:
  1943. >    [ ... ]
  1944. >On a similar note, there seems to be a contradiction in the
  1945. >section describing SIG_IGN which reads:
  1946. >
  1947. >  "Delivery of the signal shall have no effect on the process.
  1948. >  The behavior of a process is undefined after it ignores a SIGFPE,
  1949. >  SIGILL, or SIGSEGV signal ..."
  1950. >
  1951. >Why would the behavior of a process be UNDEFINED if the signal has NO
  1952. >EFFECT on the process?  Obviously the signal has an effect!  Why not
  1953. >simply disallow SIG_IGN to be specified for SIGFPE, SIGILL and SIGSEGV as
  1954. >is done for SIGKILL and SIGSTOP?  At the very least it would seem that
  1955. >the section would be more accurately worded:
  1956. >
  1957. The signal has no effect.  The reason the behavior is undefined is that
  1958. the process has gotten an arithmetic point exception (SIGFPE) or
  1959. has executed an illegal instruction (SIGILL) or has referenced an
  1960. address outside its address space (SIGSEGV).  After any of these
  1961. exceptions, the behavior of the process is undefined.
  1962.  
  1963. Of course these signals can be generated by other means, for example
  1964. through kill() or raise().  These are specifically excluded by the
  1965. standard:  The sentence quoted above ends
  1966.  
  1967.     ...or SIGSEGV signal that was not generated by the kill()
  1968.     function or the raise() function defined by the C Standard.
  1969.  
  1970. Any other event that generates one of these signals is presumably
  1971. (i.e., in a reasonable implementation) another type of exception.
  1972. ----
  1973. Fred Zlotnick            |  "A standard is a treaty between the
  1974. fred@mindcraft.com        |   customer and the implementor."
  1975. ...!{uupsi,ames}!mindcrf!fred     |            Henry Spencer
  1976. #include <std/disclaimer>    |
  1977.  
  1978.  
  1979. Volume-Number: Volume 27, Number 22
  1980.  
  1981. From std-unix-request@uunet.UU.NET  Mon Mar  2 04:16:00 1992
  1982. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  1983.     (5.61/UUNET-mail-drop) id AA03557; Mon, 2 Mar 92 04:16:00 -0500
  1984. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  1985.     (5.61/UUNET-internet-primary) id AA18190; Mon, 2 Mar 92 04:15:59 -0500
  1986. Newsgroups: comp.std.unix
  1987. From: "David J. Fiander" <davidf@mks.com>
  1988. Subject: Weirdnix .2?
  1989. Message-Id: <1992Mar2.091241.21465@uunet.uu.net>
  1990. X-Submissions: std-unix@uunet.uu.net
  1991. Organization: Mortice Kern Systems Inc., Waterloo, Ontario, CANADA
  1992. Date: Fri, 28 Feb 1992 16:32:27 GMT
  1993. Reply-To: std-unix@uunet.UU.NET
  1994. To: std-unix@uunet.UU.NET
  1995. Sender: Network News <news@kithrup.com>
  1996. Source-Info:  From (or Sender) name not authenticated.
  1997.  
  1998. Submitted-by: davidf@mks.com ("David J. Fiander")
  1999.  
  2000. So is there such a beast?  If there is, then I have the first
  2001. entry.
  2002.  
  2003. According to .2D11, 'cp -R' does not have to process
  2004. subdirectories below the top level directory.  For example,
  2005. given the following structure,
  2006.  
  2007.   srcdir           destdir
  2008.      \
  2009.      subdir
  2010.        \
  2011.       file
  2012.  
  2013. a conforming cp is perfectly capable of generating the result
  2014.  
  2015.   srcdir           destdir
  2016.      \                \
  2017.      subdir          srcdir
  2018.        \
  2019.       file
  2020.  
  2021. when given the command line "cp -R srcdir destdir", without
  2022. generating any diagnostics.
  2023.  
  2024. Support:  POSIX.2D11 lines 3557-3564.  In particular, lines
  2025. 3563-4 state "It is unspecified if cp shall attempt to copy
  2026. files in the file hierarchy rooted in source_file."
  2027.  
  2028.  
  2029. [ As far as I know, there is no Son of Weirdnix.  I like the
  2030.   idea, however:  it's been too long since we've had such a
  2031.   contest, even though the C people have one once a year 8).
  2032.   Is anybody willing to volunteer prizes? -- mod ]
  2033.  
  2034. Volume-Number: Volume 27, Number 23
  2035.  
  2036. From std-unix-request@uunet.UU.NET  Mon Mar  2 04:16:07 1992
  2037. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2038.     (5.61/UUNET-mail-drop) id AA03582; Mon, 2 Mar 92 04:16:07 -0500
  2039. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2040.     (5.61/UUNET-internet-primary) id AB18216; Mon, 2 Mar 92 04:16:04 -0500
  2041. Newsgroups: comp.std.unix
  2042. From: Bob Lenk <rml@hpfcdc.fc.hp.com>
  2043. Subject: Re: return from a signal-catching function
  2044. Message-Id: <1992Mar2.091331.21681@uunet.uu.net>
  2045. X-Submissions: std-unix@uunet.uu.net
  2046. Organization: UUNET Communications Services
  2047. References: <1992Feb26.202432.17940@uunet.uu.net>
  2048. Date: Fri, 28 Feb 1992 01:48:43 GMT
  2049. Reply-To: std-unix@uunet.UU.NET
  2050. To: std-unix@uunet.UU.NET
  2051. Sender: Network News <news@kithrup.com>
  2052. Source-Info:  From (or Sender) name not authenticated.
  2053.  
  2054. Submitted-by: rml@hpfcdc.fc.hp.com (Bob Lenk)
  2055.  
  2056. In article <1992Feb26.202432.17940@uunet.uu.net> WULKAN@TOROLAB6.VNET.IBM.COM ("Mike Wulkan") writes:
  2057.  
  2058. > On a similar note, there seems to be a contradiction in the
  2059. > section describing SIG_IGN which reads:
  2060. >   "Delivery of the signal shall have no effect on the process.
  2061. >   The behavior of a process is undefined after it ignores a SIGFPE,
  2062. >   SIGILL, or SIGSEGV signal ..."
  2063. > Why would the behavior of a process be UNDEFINED if the signal has NO
  2064. > EFFECT on the process?  Obviously the signal has an effect!
  2065.  
  2066. The exception that caused the signal has an effect on the process.  The
  2067. signal that it causes has no effect (because it is being ignored).  The
  2068. behavior of the process is then undefined by the standard because it
  2069. is whatever results from the exception.
  2070.  
  2071. >                                                              Why not
  2072. > simply disallow SIG_IGN to be specified for SIGFPE, SIGILL and SIGSEGV as
  2073. > is done for SIGKILL and SIGSTOP? 
  2074.  
  2075. Because that was/is not existing practice.  On some specific
  2076. implementation the results of ignoring some exception may be predictable
  2077. and even useful (eg. simply continuing to execute the instruction that
  2078. follows an attempted division by zero).  There is no reason for the
  2079. standard to dictate that a non-portable application not be able to
  2080. take advantage of this.
  2081.  
  2082.         Bob Lenk
  2083.         rml@fc.hp.com
  2084.         {uunet,hplabs}!fc.hp.com!rml
  2085.  
  2086.  
  2087. Volume-Number: Volume 27, Number 24
  2088.  
  2089. From std-unix-request@uunet.UU.NET  Mon Mar  2 04:16:13 1992
  2090. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2091.     (5.61/UUNET-mail-drop) id AA03610; Mon, 2 Mar 92 04:16:13 -0500
  2092. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2093.     (5.61/UUNET-internet-primary) id AA18230; Mon, 2 Mar 92 04:16:10 -0500
  2094. Newsgroups: comp.std.unix
  2095. From: Jan-Mark <jms@cs.vu.nl>
  2096. Subject: Need help with utime().
  2097. Message-Id: <1992Mar2.091505.21915@uunet.uu.net>
  2098. Keywords: utime
  2099. X-Submissions: std-unix@uunet.uu.net
  2100. Organization: UUNET Communications Services
  2101. Date: Mon, 2 Mar 1992 08:33:44 GMT
  2102. Reply-To: std-unix@uunet.UU.NET
  2103. To: std-unix@uunet.UU.NET
  2104. Sender: Network News <news@kithrup.com>
  2105. Source-Info:  From (or Sender) name not authenticated.
  2106.  
  2107. Submitted-by: jms@cs.vu.nl (Jan-Mark)
  2108.  
  2109. I have the POSIX manual 1003.1-1988 and on page 104 it states
  2110. the ``errno'' settings for a failed ``utime()'' call.
  2111.     
  2112.                      :
  2113.                      :
  2114.     [EACCES] Search permission is denied by a component of the path
  2115.              prefix; or the times argument is NULL and the effective
  2116.              user ID of the process does not match the owner of the
  2117.              file and write access is denied.
  2118.                      :
  2119.                      :
  2120.     [EPERM]  The times argument is not NULL and the calling process's
  2121.              effective user ID has write access to the file but does
  2122.              not match the owner of the file and the calling process
  2123.              does not have the appropriate privileges.
  2124.                      :
  2125.                      :
  2126.              
  2127.  So if user1 (!= root) does a ``utime()'' call on user2's file
  2128.  four things can happen (*):
  2129.      
  2130.                 |    user1 has     |   user1 has no
  2131.             | write permission |  write permission
  2132.     ----------------+------------------+-------------------
  2133.     NULL argument   |        OK        |      EACCES
  2134.     ----------------+------------------+-------------------
  2135.      utimbuf arg.   |       EPERM      |     <undef.>
  2136.     
  2137.     
  2138. Where <undef.> means I don't know what it should be.
  2139. Is there a way of reading the 1003.1 that will give me the
  2140. proper value? Is there a post 1988 update that does so?
  2141.     
  2142. If you know, please let me know!
  2143.     
  2144.  
  2145. Thanks Jan-Mark.
  2146.     
  2147.  
  2148. (*) Assuming the file is not on a read-only file system, or
  2149. on a non searchable directory etc.
  2150.  
  2151. Volume-Number: Volume 27, Number 25
  2152.  
  2153. From std-unix-request@uunet.UU.NET  Mon Mar  2 04:23:22 1992
  2154. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2155.     (5.61/UUNET-mail-drop) id AA05441; Mon, 2 Mar 92 04:23:22 -0500
  2156. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2157.     (5.61/UUNET-internet-primary) id AA18894; Mon, 2 Mar 92 04:23:19 -0500
  2158. Newsgroups: comp.std.unix
  2159. From: Robert Virding <rv@erix.ericsson.se>
  2160. Subject: Inconsistencies in matching betweens AWKs.
  2161. Message-Id: <1992Mar2.091734.22269@uunet.uu.net>
  2162. X-Submissions: std-unix@uunet.uu.net
  2163. Organization: Ellemtel Telecom Systems Labs, Stockholm, Sweden
  2164. Date: Fri, 28 Feb 1992 16:44:21 GMT
  2165. Reply-To: std-unix@uunet.UU.NET
  2166. To: std-unix@uunet.UU.NET
  2167. Sender: Network News <news@kithrup.com>
  2168. Source-Info:  From (or Sender) name not authenticated.
  2169.  
  2170. Submitted-by: rv@erix.ericsson.se (Robert Virding)
  2171.  
  2172. I have been implementing a set of string functions for a language
  2173. which we have developed at our lab. (Erlang, it's a real-time
  2174. concurrent high-level language for building large robust systems) As I
  2175. had need of some regular expression matching I decided to take the REs
  2176. and basic functions (match, sub, gsub and split) as defined in "The
  2177. AWK Programming Language" by Aho, Kernighan and Weinberger.
  2178.  
  2179. All went well until I started looking at how "awk" handles newlines
  2180. embedded in strings wrt beginning/end of string expressions. I
  2181. discovered that all the "awk"s we had acted differently. I have tried:
  2182.  
  2183. awk    - the old "standard" one
  2184. nawk    - a "new" one available on SUN (?), compatible with book
  2185. gawk    - GNU awk
  2186. mawk    - recently available from comp.sources.reviewed
  2187.  
  2188. Both gawk and mawk follow the book and conform to POSIX 1003.2 (draft
  2189. 11) standard.
  2190.  
  2191. I enclose some small test files which show how inconsistent the
  2192. systems really are (or seem to be). Even when there were no newlines
  2193. in the string results were inconsistent. What does the standard say?
  2194. Any help would truly be appreciated.
  2195.  
  2196.  
  2197.         Robert Virding  @ Ellemtel Utvecklings AB, Stockholm
  2198.         EMAIL: rv@erix.ericsson.se
  2199.  
  2200. P.S. If there is any interest I will summarise the results.
  2201.  
  2202. TESTS AND RESULTS
  2203. =================
  2204.  
  2205. Test 1
  2206. ------
  2207.  
  2208. A simple test which all "awk"s could do. I must admit I can't really
  2209. understand what gawk and mawk are doing. Nawk is closer to what I
  2210. think would happen. But why isn't the 'f' removed in the 2nd case?
  2211.  
  2212. BEGIN {
  2213.     s1 = "foobarbaz"
  2214.     n = split(s1, a1, "^.")
  2215.     print "n = " n
  2216.     for (i = 1; i <= n; i++)
  2217.         print ":" a1[i] ":"
  2218.  
  2219.     s2 = "foo\nbar\nbaz"
  2220.     n = split(s2, a2, "^.")
  2221.     print "n = " n
  2222.     for (i = 1; i <= n; i++)
  2223.         print ":" a2[i] ":"
  2224.  
  2225.     exit
  2226. }
  2227.  
  2228. awk        nawk        gawk        mawk
  2229.  
  2230. n = 1        n = 2        n = 9        n = 10
  2231. :foobarbaz:    ::        ::        ::
  2232. n = 3        :oobarbaz:    ::        ::
  2233. :foo:        n = 1        ::        ::
  2234. :bar:        :foo        ::        ::
  2235. :baz:        bar        ::        ::
  2236.         baz:        ::        ::
  2237.                 ::        ::
  2238.                 ::        ::
  2239.                 ::        ::
  2240.                 n = 9        ::
  2241.                 ::        n = 12
  2242.                 ::        ::
  2243.                 ::        ::
  2244.                 :        ::
  2245.                 :        ::
  2246.                 ::        ::
  2247.                 ::        ::
  2248.                 :        ::
  2249.                 :        ::
  2250.                 ::        ::
  2251.                 ::        ::
  2252.                         ::
  2253.                         ::
  2254.  
  2255. Test 2
  2256. ------
  2257.  
  2258. This test was impossible for awk (no gsub function). I will also admit
  2259. that nawk here seemd to do something which I feel is more reasonable.
  2260.  
  2261. BEGIN {
  2262.     s1 = "foobarbaz"
  2263.     gsub("^.", "X&Y", s1)
  2264.     print ":" s1 ":"
  2265.  
  2266.     s2 = "foo\nbar\nbaz"
  2267.     gsub("^.", "X&Y", s2)
  2268.     print ":" s2 ":"
  2269.  
  2270.     exit
  2271. }
  2272.  
  2273. nawk        gawk                mawk
  2274.  
  2275. :XfYoobarbaz:    :XfYXoYXoYXbYXaYXrYXbYXaYXzY:    :XfYXoYXoYXbYXaYXrYXbYXaYXzY:
  2276. :XfYoo        :XfYXoYXoY            :XfYXoYXoYX
  2277. bar        XbYXaYXrY            YXbYXaYXrYX
  2278. baz:        XbYXaYXzY:            YXbYXaYXzY:
  2279.  
  2280.  
  2281. Test 3
  2282. ------
  2283.  
  2284. This test was impossible for awk (no match function). Mawk here seemed the
  2285. best to me. Where nawk got its RLENGTH values from I can't understand.
  2286.  
  2287. BEGIN {
  2288.     s1 = "foo"
  2289.     match(s1, /foo$/)
  2290.     print RSTART, RLENGTH
  2291.     print ":" substr(s1, RSTART, RLENGTH) ":"
  2292.  
  2293.     s2 = "foo\n\n"
  2294.     match(s2, /foo..$/)
  2295.     print RSTART, RLENGTH
  2296.     print ":" substr(s2, RSTART, RLENGTH) ":"
  2297.  
  2298.     exit
  2299. }
  2300.  
  2301. nawk            gawk            mawk
  2302.  
  2303. 1 4            1 3            1 3
  2304. :foo:            :foo:            :foo:
  2305. 1 6            0 -1            1 5
  2306. :foo            ::            :foo
  2307.  
  2308. :                        :
  2309.  
  2310. The very end
  2311.  
  2312.  
  2313. Volume-Number: Volume 27, Number 26
  2314.  
  2315. From std-unix-request@uunet.UU.NET  Tue Mar  3 08:15:47 1992
  2316. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2317.     (5.61/UUNET-mail-drop) id AA17780; Tue, 3 Mar 92 08:15:47 -0500
  2318. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2319.     (5.61/UUNET-internet-primary) id AA12839; Tue, 3 Mar 92 08:15:45 -0500
  2320. Newsgroups: comp.std.unix
  2321. From: Jack Jansen <Jack.Jansen@cwi.nl>
  2322. Subject: Re: Standards Update: POSIX.4[a] Asynchronous I/O vs. Threads.
  2323. Message-Id: <1992Mar3.130705.13944@uunet.uu.net>
  2324. X-Submissions: std-unix@uunet.uu.net
  2325. Organization: UUNET Communications Services
  2326. References: <1992Feb26.202224.17514@uunet.uu.net>
  2327. Date: Mon, 2 Mar 1992 15:45:10 GMT
  2328. Reply-To: std-unix@uunet.UU.NET
  2329. To: std-unix@uunet.UU.NET
  2330. Sender: Network News <news@kithrup.com>
  2331. Source-Info:  From (or Sender) name not authenticated.
  2332.  
  2333. Submitted-by: Jack.Jansen@cwi.nl (Jack Jansen)
  2334.  
  2335. peter@ficc.ferranti.com (peter da silva) writes:
  2336. >Peter Collinson noted in the recent Standards Update that there was
  2337. >opposition to a standard non-blocking system call interface, on the
  2338. >grounds that the threads interface provided the same functionality.
  2339.  
  2340. >For the case where threads are implemented in user mode, or as a side
  2341. >effect of threads, it's likely that most implementations will have
  2342. >some such facility anyway. Given this, I think it would be highly
  2343. >desirable to spell out a standard interface, whether or not the facility
  2344. >itself is mandated.
  2345.  
  2346. Hmm, I don't think that this is a good idea. If Posix takes the
  2347. easy-way-out of sanctioning multiple solutions to the same problem
  2348. just a few times more the whole thing will become worthless. I know,
  2349. profiles are the magic word (and a good thing, in some cases) but if
  2350. you provide more than one way to do almost everything Posix will
  2351. become as useless a label as "user friendly".
  2352. -- 
  2353. --
  2354. Jack Jansen        | In Holland things are serious, but never hopeless.
  2355. Jack.Jansen@cwi.nl | In Ireland things are hopeless, but never serious.
  2356. uunet!cwi.nl!jack   G=Jack;S=Jansen;O=cwi;PRMD=surf;ADMD=400net;C=nl
  2357.  
  2358.  
  2359. Volume-Number: Volume 27, Number 27
  2360.  
  2361. From std-unix-request@uunet.UU.NET  Tue Mar  3 08:15:50 1992
  2362. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2363.     (5.61/UUNET-mail-drop) id AA17787; Tue, 3 Mar 92 08:15:50 -0500
  2364. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2365.     (5.61/UUNET-internet-primary) id AA12850; Tue, 3 Mar 92 08:15:49 -0500
  2366. Newsgroups: comp.std.unix
  2367. From: Donn Terry <donn@hpfcrn.fc.hp.com>
  2368. Subject: Re: POSIX question: dynamic linking
  2369. Message-Id: <1992Mar3.130903.14236@uunet.uu.net>
  2370. X-Submissions: std-unix@uunet.uu.net
  2371. Organization: UUNET Communications Services
  2372. References: <1992Feb22.233114.16404@uunet.uu.net>
  2373. Date: Mon, 2 Mar 1992 15:53:11 GMT
  2374. Reply-To: std-unix@uunet.UU.NET
  2375. To: std-unix@uunet.UU.NET
  2376. Sender: Network News <news@kithrup.com>
  2377. Source-Info:  From (or Sender) name not authenticated.
  2378.  
  2379. Submitted-by: donn@hpfcrn.fc.hp.com (Donn Terry)
  2380.  
  2381. My opinion (which is mine, but as chair I do have a little influence :-) )
  2382. is that dynamic linking could be within scope of POSIX.1.  (It might
  2383. take a PAR change, but I would personally read the current PAR to allow
  2384. it if it came from "outside" POSIX.1 originally.)
  2385.  
  2386. However, frequent readers of this group will be quite aware of the frequency
  2387. of flames about "invention" being done by standards bodies.   Dynamic
  2388. linking definitely falls into that category.
  2389.  
  2390. Of course we also get flamed for not "inventing" things.  Such is life.
  2391.  
  2392. In any case, dynamic linking is probably a useful area to start work on
  2393. development of several models so it can be determined what works well and
  2394. what doesn't.  (Again, remember the flames we get for inventing something
  2395. without trying it, and many of them have much more obvious solutions than
  2396. dynamic linking.)
  2397.  
  2398. If someone were to come forward with a proposal that had a pretty high
  2399. level of consensus, and which was feasable to implement on a broad 
  2400. range of machines, specifically including those with non-traditional
  2401. architectures (i.e. not like VAXes)), then I'm sure POSIX.1 would 
  2402. consider it, and determine if consensus on doing it can be reached amongst
  2403. the participants.
  2404.  
  2405. However, if YOU want dynamic linking (or anything else), it's YOUR job to
  2406. make it happen.  The meetings are open (but not free, unhappily... 
  2407. Sugar Daddies may apply at any time.)
  2408.  
  2409.  
  2410. Donn Terry
  2411. Chair 1003.1
  2412. (Speaking only for myself.)
  2413.  
  2414.  
  2415. Volume-Number: Volume 27, Number 28
  2416.  
  2417. From std-unix-request@uunet.UU.NET  Tue Mar  3 08:15:57 1992
  2418. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2419.     (5.61/UUNET-mail-drop) id AA17796; Tue, 3 Mar 92 08:15:57 -0500
  2420. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2421.     (5.61/UUNET-internet-primary) id AA12864; Tue, 3 Mar 92 08:15:54 -0500
  2422. Newsgroups: comp.std.unix
  2423. From: Bradley Wong <bwong@beach.csulb.edu>
  2424. Subject: List of POSIX-compatible OS's?
  2425. Message-Id: <1992Mar3.130930.14342@uunet.uu.net>
  2426. X-Submissions: std-unix@uunet.uu.net
  2427. Organization: TRW SEDD
  2428. Date: Mon, 2 Mar 1992 19:13:56 GMT
  2429. Reply-To: std-unix@uunet.UU.NET
  2430. To: std-unix@uunet.UU.NET
  2431. Sender: Network News <news@kithrup.com>
  2432. Source-Info:  From (or Sender) name not authenticated.
  2433.  
  2434. Submitted-by: bwong@beach.csulb.edu (Bradley Wong)
  2435.  
  2436. Is there a fairly efficient (i.e., existing list or ??) way to 
  2437. find out what vendor OS offerings are POSIX-compliant
  2438. or have announced the intention of becoming POSIX-compliant 
  2439. RSN (Real Soon Now)?
  2440.  
  2441. Thanks, 
  2442.  
  2443. Marc Ries
  2444. ries@micky.sedd.trw.com
  2445.  
  2446.  
  2447. Volume-Number: Volume 27, Number 29
  2448.  
  2449. From std-unix-request@uunet.UU.NET  Tue Mar  3 08:16:01 1992
  2450. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2451.     (5.61/UUNET-mail-drop) id AA17803; Tue, 3 Mar 92 08:16:01 -0500
  2452. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2453.     (5.61/UUNET-internet-primary) id AA12876; Tue, 3 Mar 92 08:15:58 -0500
  2454. Newsgroups: comp.std.unix
  2455. From: Peter Collinson <pc@hillside.co.uk>
  2456. Subject: POSIX MEETING in EUROPE - OCTOBER
  2457. Message-Id: <1992Mar3.131000.14441@uunet.uu.net>
  2458. X-Submissions: std-unix@uunet.uu.net
  2459. Organization: Usenix Association, Standards Liaison
  2460. Date: Tue, 3 Mar 1992 00:31:27 GMT
  2461. Reply-To: std-unix@uunet.UU.NET
  2462. To: std-unix@uunet.UU.NET
  2463. Sender: Network News <news@kithrup.com>
  2464. Source-Info:  From (or Sender) name not authenticated.
  2465.  
  2466. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  2467.  
  2468.  
  2469.                        MEETING ANNOUNCEMENT
  2470.  
  2471.         IEEE TECHNICAL COMMITTEE ON OPERATING SYSTEMS (TCOS)
  2472.  
  2473.                            P1003 POSIX
  2474.  
  2475.                        OCTOBER 19-23, 1992
  2476.  
  2477.                              UTRECHT
  2478.  
  2479. The IEEE P1003 (POSIX) meeting scheduled for October 19-23, 1992 will be
  2480. held at Utrecht in the Netherlands. A major goal of this meeting is to
  2481. enable participation in the POSIX standards development process by
  2482. interested parties in Europe who may be unable to attend the meetings in
  2483. the US.  This preliminary announcement is being made now in order to
  2484. allow sufficient time for advance planning by those wishing to attend.
  2485. Specific details regarding meeting registration and schedules for
  2486. individual working groups will be made available in the future.
  2487.  
  2488. ----------------------------------------
  2489. Posted by Peter Collinson, in my guise as Usenix standards liaison. Please
  2490. don't ask me for any more specific details. I will, however, post
  2491. some contact information nearer the time.
  2492.  
  2493.  
  2494.  
  2495. Volume-Number: Volume 27, Number 30
  2496.  
  2497. From std-unix-request@uunet.UU.NET  Tue Mar  3 16:13:56 1992
  2498. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2499.     (5.61/UUNET-mail-drop) id AA13362; Tue, 3 Mar 92 16:13:56 -0500
  2500. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2501.     (5.61/UUNET-internet-primary) id AA23007; Tue, 3 Mar 92 16:13:50 -0500
  2502. Newsgroups: comp.std.unix
  2503. From: Bob Bagwill <bagwill@swe.ncsl.nist.gov>
  2504. Subject: Re: List of POSIX-compatible OS's?
  2505. Message-Id: <1992Mar3.210739.1433@uunet.uu.net>
  2506. Summary: posix list
  2507. Keywords: posix
  2508. X-Submissions: std-unix@uunet.uu.net
  2509. Organization: Computer Systems Lab
  2510. References: <1992Mar3.130930.14342@uunet.uu.net>
  2511. Date: Tue, 3 Mar 1992 14:57:04 GMT
  2512. Reply-To: std-unix@uunet.UU.NET
  2513. To: std-unix@uunet.UU.NET
  2514. Sender: Network News <news@kithrup.com>
  2515. Source-Info:  From (or Sender) name not authenticated.
  2516.  
  2517. Submitted-by: bagwill@swe.ncsl.nist.gov (Bob Bagwill)
  2518.  
  2519. In article <1992Mar3.130930.14342@uunet.uu.net> bwong@beach.csulb.edu (Bradley Wong) writes:
  2520. >Is there a fairly efficient (i.e., existing list or ??) way to 
  2521. >find out what vendor OS offerings are POSIX-compliant
  2522. >or have announced the intention of becoming POSIX-compliant 
  2523. >RSN (Real Soon Now)?
  2524.  
  2525. To get the register of the POSIX implementations which have been tested
  2526. by an accredited POSIX testing lab by email, and whose test results
  2527. have been validated by NIST, do the following (using /usr/ucb/mail as
  2528. an example):
  2529.  
  2530.     mail posix@nist.gov
  2531.     Subject: anything
  2532.     path yourname@yournode
  2533.     send register
  2534.     end
  2535.     .
  2536.  
  2537. To get the testing policy, add "send policy"; to get the testing
  2538. requirements, add "send requirements".
  2539.  
  2540. Everyone and their clone have announced POSIX-compliancy RSN.  BFD.
  2541. -- 
  2542. Bob Bagwill    NIST/Computer Systems Lab/Software Engineering Group
  2543.  
  2544.  
  2545. Volume-Number: Volume 27, Number 31
  2546.  
  2547. From std-unix-request@uunet.UU.NET  Fri Mar  6 00:33:12 1992
  2548. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2549.     (5.61/UUNET-mail-drop) id AA08638; Fri, 6 Mar 92 00:33:12 -0500
  2550. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2551.     (5.61/UUNET-internet-primary) id AA25162; Fri, 6 Mar 92 00:33:05 -0500
  2552. Newsgroups: comp.std.unix
  2553. From: peter da silva <peter@ferranti.com>
  2554. Subject: Re: Standards Update: POSIX.4[a] Asynchronous I/O vs. Threads.
  2555. Message-Id: <1992Mar6.052707.11315@uunet.uu.net>
  2556. X-Submissions: std-unix@uunet.uu.net
  2557. Organization: Xenix Support, FICC
  2558. References: <1992Feb26.202224.17514@uunet.uu.net> <1992Mar3.130705.13944@uunet.uu.net>
  2559. Date: Wed, 4 Mar 1992 18:23:13 GMT
  2560. Reply-To: std-unix@uunet.UU.NET
  2561. To: std-unix@uunet.UU.NET
  2562. Sender: Network News <news@kithrup.com>
  2563. Source-Info:  From (or Sender) name not authenticated.
  2564.  
  2565. Submitted-by: peter@ferranti.com (peter da silva)
  2566.  
  2567. In article <1992Mar3.130705.13944@uunet.uu.net> Jack.Jansen@cwi.nl (Jack Jansen) writes:
  2568. > Hmm, I don't think that this is a good idea. If Posix takes the
  2569. > easy-way-out of sanctioning multiple solutions to the same problem
  2570.  
  2571. I don't think this is the easy way out, nor that it's a solution to
  2572. the same problem.
  2573.  
  2574. The easy way out is to specify threads and let everyone continue to use
  2575. a bunch of inconsistent interfaces for a common capability if they can't
  2576. use threads for some reason (like, they have to support dusty-deck
  2577. runtimes like every X toolkit in existence).
  2578.  
  2579. The hard way is to define a consistent interface that can be provided
  2580. on a variety of systems, and while you're about it clean out some
  2581. of the cack in existing implementations (select/poll/O_NDELAY/...).
  2582. -- 
  2583. -- Peter da Silva,  Ferranti International Controls Corporation
  2584. -- Sugar Land, TX  77487-5012;  +1 713 274 5180
  2585. -- "Have you hugged your wolf today?"
  2586.  
  2587.  
  2588. Volume-Number: Volume 27, Number 32
  2589.  
  2590. From std-unix-request@uunet.UU.NET  Tue Mar 10 17:07:00 1992
  2591. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2592.     (5.61/UUNET-mail-drop) id AA04058; Tue, 10 Mar 92 17:07:00 -0500
  2593. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2594.     (5.61/UUNET-internet-primary) id AA18881; Tue, 10 Mar 92 17:06:58 -0500
  2595. Newsgroups: comp.std.unix
  2596. From: "David J. Fiander" <davidf@mks.com>
  2597. Subject: sed's r and w commands
  2598. Message-Id: <1992Mar10.220045.7862@uunet.uu.net>
  2599. X-Submissions: std-unix@uunet.uu.net
  2600. Organization: UUNET Communications Services
  2601. Date: Tue, 10 Mar 1992 13:44:07 GMT
  2602. Reply-To: std-unix@uunet.UU.NET
  2603. To: std-unix@uunet.UU.NET
  2604. Sender: Network News <news@kithrup.com>
  2605. Source-Info:  From (or Sender) name not authenticated.
  2606.  
  2607. Submitted-by: davidf@mks.com ("David J. Fiander")
  2608.  
  2609. According to D11.2,
  2610.  
  2611.         The r and w commands take an optional rfile (or wfile)
  2612.     parameter...
  2613.  
  2614. (ll 11338-9).  But nowhere does the standard describe the
  2615. behaviour of these commands when the "optional" parameter is
  2616. omitted.  In fact, the descriptions of the commands seem to
  2617. indicate that the parameter is _not_ optional, since it is not
  2618. surrounded by square brackets.
  2619.  
  2620. - David
  2621.  
  2622.  
  2623. Volume-Number: Volume 27, Number 32
  2624.  
  2625. From std-unix-request@uunet.UU.NET  Tue Mar 10 17:07:04 1992
  2626. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2627.     (5.61/UUNET-mail-drop) id AA04076; Tue, 10 Mar 92 17:07:04 -0500
  2628. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2629.     (5.61/UUNET-internet-primary) id AA18901; Tue, 10 Mar 92 17:07:01 -0500
  2630. Newsgroups: comp.std.unix
  2631. From: "David J. Fiander" <davidf@mks.com>
  2632. Subject: More sed problems
  2633. Message-Id: <1992Mar10.220201.8171@uunet.uu.net>
  2634. X-Submissions: std-unix@uunet.uu.net
  2635. Organization: UUNET Communications Services
  2636. Date: Tue, 10 Mar 1992 15:40:27 GMT
  2637. Reply-To: std-unix@uunet.UU.NET
  2638. To: std-unix@uunet.UU.NET
  2639. Sender: Network News <news@kithrup.com>
  2640. Source-Info:  From (or Sender) name not authenticated.
  2641.  
  2642. Submitted-by: davidf@mks.com ("David J. Fiander")
  2643.  
  2644. According to the rationale, "The requirements for acceptance of
  2645. <blank>s and <space>s in command lines has been made more
  2646. explicit..."
  2647.  
  2648. Does that mean that I should only strip blanks preceeding
  2649. addresses and between addresses and commands?  If so, does that
  2650. mean that
  2651.  
  2652. $a\
  2653.      boo!
  2654.  
  2655. will append '     boo!' to the end of the file, even though this
  2656. goes against historical practice?
  2657.  
  2658. It is obvious that
  2659.  
  2660. $a\
  2661. \     boo!
  2662.  
  2663. will still behave the same way, since the description of _text_
  2664. works out, but nothing has been said about leading spaces in
  2665. _text_ lines.
  2666.  
  2667. --
  2668. David J. Fiander          |EXAMPLES:  'sed 10q file' -- Print the first 10
  2669. <davidf@mks.com>          |lines of a file.  Some systems call this
  2670. Mortice Kern Systems Inc. |function _head_.
  2671. Waterloo, Ontario, Canada |       - tail(1) man page from Research UNIX
  2672.  
  2673.  
  2674. Volume-Number: Volume 27, Number 33
  2675.  
  2676. From std-unix-request@uunet.UU.NET  Tue Mar 10 17:07:09 1992
  2677. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  2678.     (5.61/UUNET-mail-drop) id AA04099; Tue, 10 Mar 92 17:07:09 -0500
  2679. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  2680.     (5.61/UUNET-internet-primary) id AA18927; Tue, 10 Mar 92 17:07:06 -0500
  2681. Newsgroups: comp.std.unix
  2682. From: J Lee Jaap <jaapjl@tab00.larc.nasa.gov>
  2683. Subject: Re: List of POSIX-compatible OS's?
  2684. Message-Id: <1992Mar10.220607.8828@uunet.uu.net>
  2685. X-Submissions: std-unix@uunet.uu.net
  2686. Organization: AS&M Inc
  2687. References: <1992Mar3.130930.14342@uunet.uu.net> <1992Mar3.210739.1433@uunet.uu.net>
  2688. Date: Tue, 10 Mar 1992 20:56:40 GMT
  2689. Reply-To: std-unix@uunet.UU.NET
  2690. To: std-unix@uunet.UU.NET
  2691. Sender: Network News <news@kithrup.com>
  2692. Source-Info:  From (or Sender) name not authenticated.
  2693.  
  2694. Submitted-by: jaapjl@tab00.larc.nasa.gov (J Lee Jaap)
  2695.  
  2696. In article <1992Mar3.210739.1433@uunet.uu.net> bagwill@swe.ncsl.nist.gov (Bob Bagwill) writes:
  2697. >To get the testing policy, add "send policy"; to get the testing
  2698. >requirements, add "send requirements".
  2699. ------->                 ^^^^^^^^^^^^
  2700.  
  2701. That should be "send required".
  2702.  
  2703. --
  2704. J Lee Jaap <jaapjl@tab00.larc.nasa.gov> {+1 804/864, or FTS 928}-2148
  2705. employed by, not speaking for, AS&M Inc, at NASA LaRC, Hampton VA 23665-5225
  2706.  
  2707.  
  2708. Volume-Number: Volume 27, Number 34
  2709.  
  2710. From std-unix-request@uunet.UU.NET  Thu Mar 19 18:39:58 1992
  2711. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  2712.     (5.61/UUNET-mail-drop) id AA15419; Thu, 19 Mar 92 18:39:58 -0500
  2713. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  2714.     (5.61/UUNET-internet-primary) id AA23914; Thu, 19 Mar 92 18:39:47 -0500
  2715. Newsgroups: comp.std.unix
  2716. From: Scott Thomas <sthomas@mitchell.hac.com>
  2717. Subject: Summary of XTI responses
  2718. Message-Id: <1992Mar19.232505.9514@uunet.uu.net>
  2719. Originator: sef@ftp.UU.NET
  2720. Keywords: XTI TLI
  2721. Nntp-Posting-Host: ftp.uu.net
  2722. Reply-To: Scott Thomas <sthomas@mitchell.hac.com>
  2723. X-Submissions: std-unix@uunet.uu.net
  2724. Organization: Hughes Aircraft Company
  2725. Date: Thu, 19 Mar 1992 21:31:26 GMT
  2726. To: std-unix@uunet.UU.NET
  2727. Sender: Network News <news@kithrup.com>
  2728. Source-Info:  From (or Sender) name not authenticated.
  2729.  
  2730. Submitted-by: sthomas@mitchell.hac.com (Scott Thomas)
  2731.  
  2732. Hello,
  2733. A while back I posted a request for info on X/Open's XTI API
  2734. standard.  I apologize for the delay in posting this, but we
  2735. have other deadlines.  The responses were not as plentiful
  2736. as I had hoped, but the few I did receive were helpful.  Many
  2737. thanks to Joel Spencer of Bull Worldwide Information Systems,
  2738. who was especially helpful.
  2739.  
  2740. --
  2741. Scott Thomas
  2742.  
  2743. Space & Communications Group
  2744. Hughes Aircraft Co.
  2745.   (fax) 703-438-8430
  2746. (email) proto@mitchell.eos.scg.hac.com
  2747.  
  2748.  
  2749. -------------------- cut here --------------------------------
  2750.  
  2751.  
  2752. From: jspencer@cass.ma02.bull.com (Joel Spencer)
  2753. Subject: Re: X/Open's XTI standard & OSF's TLI standard
  2754. Newsgroups: comp.std.unix
  2755. Organization: Bull World Wide Information Systems Inc.
  2756.  
  2757. ( Joel Spencer faxed a copy of the DPX & DPX/2 reference manual
  2758.   appendix from BULL Info. Systems.  The appendix briefly discusses
  2759.   the differences between XTI & TLI.  Below is a short summary of 
  2760.   the appendix, most of which I quoted. )
  2761.  
  2762.     XTI is based on the SVID Issue 2, Volume 3, Networking
  2763.     Services Extensions.  XTI provides refinement of the Transport
  2764.     Level Interface where such refinement is considered necessary.
  2765.     This refinement includes: 
  2766.         - additional commentary ...
  2767.         - modifications to the interface ...
  2768.         - removal of dependencies on specific UNIX verisons ...
  2769.  
  2770.     The following features can be considered XTI extensions to TLI:
  2771.         - Some functions may return more error types ...
  2772.         - transport provider identifier has been generalised ...
  2773.         - additional events have been defined ...
  2774.         - additional features added to t_snd(), t_sndrel(), t_rcvrel()
  2775.         - can use options for certain types of transport service
  2776.         - O_RDONLY & O_WRONLY flags usage withdrawn
  2777.         - XTI checks value of 'qlen' and prevents applications
  2778.           waiting forever on 't_listen()' calls
  2779.  
  2780. ( Joel also answered a few questions, which I included the responses to. )
  2781.  
  2782. >> 
  2783. >> Does the document mention how to obtain XTI?  If not, could you please
  2784. >> tell me?  As a user, do you prefer XTI over TLI?
  2785. >>
  2786.  
  2787. >
  2788. > i do not think that XTI is a public domain item.  certainly the stuff that
  2789. > i work on is an "orderable" item with a market id(CNDG001-CB00) and a
  2790. > price.  the documentation set is also a separately orderable
  2791. > item.  i do not know who your UNIX vendors are, but you may be able
  2792. > to oreder a copy of XTI from them.  then again, from feedback that 
  2793. > i have gotten, the Bull UNIX XTI release is one of the first available.
  2794. >
  2795. > as a user i prefer XTI.  the documentation is better.  and i know it will
  2796. > be around for a while because it is sanctioned by X/Open.  i do not
  2797. > think TLI will have as many users as XTI.  but only time will tell.
  2798. >
  2799. ========================================================================
  2800.  
  2801. From: sp@gr.osf.org (Simon Patience)
  2802. Subject: Re: X/Open's XTI standard & OSF's TLI standard
  2803.  
  2804. One piece of information for you. The TLI interface is in fact a product of 
  2805. AT&T and not OSF. It is what X/Open based XTI (which OSF supports) on.
  2806.  
  2807. Simon.
  2808.  
  2809.   Simon Patience
  2810.   Open Software Foundation            Phone: +33-76-63-48-72
  2811.   Research Institute                FAX:   +33-76-51-05-32
  2812.   2 Avenue De Vignate                Email: sp@gr.osf.org
  2813.   38610 Gieres, France                    uunet!gr.osf.org!sp
  2814.  
  2815. ========================================================================
  2816.  
  2817. From: mfc@medoc.aux.apple.com (Matthew Caprile)
  2818. Subject: X/Open's XTI standard & OSF's TLI standard
  2819.  
  2820. XTI is described in voume 7 of the X/Open Portability Guide, issue 3 (XPG3).
  2821. The ISBN number is 0-13-685892-9. You can walk into any decent bookstore
  2822. and have them order it (it is published by Prentice Hall). Or you can go
  2823. to a computer-specialist bookstore and ask them if they have it in stock.
  2824.  
  2825. It is supposed to be a transport-level independant networking interface
  2826. (You are supposed to be able to write apps that will work over both
  2827. ISO and TCP/IP stacks, not caring which one is used).
  2828.  
  2829. You might want to contact X/Open directly to see if they have published
  2830. anything on XTI since XPG3 came out.
  2831.  
  2832.   X/Open Company Limited
  2833.   Apex Plaza, Forbury Road
  2834.   Reading, England, RG1 1AX
  2835.   Tel: +(44) (0)734 508311 x2230
  2836.  
  2837.       -or-
  2838.  
  2839.   X/Open Company Ltd
  2840.   1010 El Camino Real, Suite 380
  2841.   Menlo Park, CA 94025
  2842.   Phone: +1 415 323-7992
  2843.   FAX:   +1 415 323-8204
  2844.  
  2845.  
  2846. ========================================================================
  2847.  
  2848.  
  2849. Volume-Number: Volume 27, Number 35
  2850.  
  2851. From std-unix-request@uunet.UU.NET  Fri Mar 20 18:22:44 1992
  2852. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  2853.     (5.61/UUNET-mail-drop) id AA13023; Fri, 20 Mar 92 18:22:44 -0500
  2854. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  2855.     (5.61/UUNET-internet-primary) id AA12249; Fri, 20 Mar 92 18:22:35 -0500
  2856. Newsgroups: comp.std.unix
  2857. From: "Brian R. Haug" <brian.haug@ncrcae.columbiasc.ncr.com>
  2858. Subject: seekdir/rewinddir on non seekable file systems
  2859. Message-Id: <1992Mar20.225009.29556@uunet.uu.net>
  2860. Originator: sef@ftp.UU.NET
  2861. Nntp-Posting-Host: ftp.uu.net
  2862. X-Submissions: std-unix@uunet.uu.net
  2863. Organization: NCR Corp
  2864. Date: Fri, 20 Mar 1992 22:12:58 GMT
  2865. Reply-To: std-unix@uunet.UU.NET
  2866. To: std-unix@uunet.UU.NET
  2867. Sender: Network News <news@kithrup.com>
  2868. Source-Info:  From (or Sender) name not authenticated.
  2869.  
  2870. Submitted-by: brian.haug@ncrcae.columbiasc.NCR.COM ("Brian R. Haug")
  2871.  
  2872. I've recently encountered a problem with seekdir in that it does not work
  2873. when the directory is on a device incapable of seeking (like the /dev/fd
  2874. filesystem in SVR4) because seekdir calls lseek which fails.  I realize that
  2875. seekdir is no part of POSIX, but we have to be compatible with SVID and X/OPEN
  2876. too.
  2877.  
  2878. Basicly, I'm interested in hearing what other people think about this "problem."
  2879. POSIX seems to have done a good job covering all the bases, as it does not
  2880. allow chroot, which would prevent re-opening the file to implement rewinddir.
  2881. Unfortunately, SVID and X/OPEN allow chroot.  And, of course, neither
  2882. rewinddir nor seekdir returns values to indicate failure.
  2883.  
  2884. Comments about the standard, problem, or proposed solutions would be greatly
  2885. appreciated.
  2886.  
  2887.             Share and Enjoy!
  2888.  
  2889.                   Brian
  2890.  
  2891.  
  2892. Volume-Number: Volume 27, Number 36
  2893.  
  2894. From std-unix-request@uunet.UU.NET  Sat Mar 21 18:53:32 1992
  2895. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  2896.     (5.61/UUNET-mail-drop) id AA29562; Sat, 21 Mar 92 18:53:32 -0500
  2897. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  2898.     (5.61/UUNET-internet-primary) id AA02840; Sat, 21 Mar 92 18:53:22 -0500
  2899. Newsgroups: comp.std.unix
  2900. From: Chuck Karish <karish@mindcraft.com>
  2901. Subject: Re: seekdir/rewinddir on non seekable file systems
  2902. Message-Id: <1992Mar21.232333.20048@uunet.uu.net>
  2903. Originator: sef@ftp.UU.NET
  2904. Nntp-Posting-Host: ftp.uu.net
  2905. X-Submissions: std-unix@uunet.uu.net
  2906. Organization: Mindcraft, Inc.
  2907. References: <1992Mar20.225009.29556@uunet.uu.net>
  2908. Date: Sat, 21 Mar 1992 19:31:46 GMT
  2909. Reply-To: std-unix@uunet.UU.NET
  2910. To: std-unix@uunet.UU.NET
  2911. Sender: Network News <news@kithrup.com>
  2912. Source-Info:  From (or Sender) name not authenticated.
  2913.  
  2914. Submitted-by: karish@mindcraft.com (Chuck Karish)
  2915.  
  2916. In article <1992Mar20.225009.29556@uunet.uu.net>
  2917. brian.haug@ncrcae.columbiasc.NCR.COM ("Brian R. Haug") writes:
  2918. >I've recently encountered a problem with seekdir in that it does not work
  2919. >when the directory is on a device incapable of seeking (like the /dev/fd
  2920. >filesystem in SVR4) because seekdir calls lseek which fails.
  2921.  
  2922. Then I guess you'll have to convert the directory into a seekable
  2923. form, perhaps by copying it into memory.
  2924.  
  2925. >POSIX seems to have done a good job covering all the bases, as it does not
  2926. >allow chroot, which would prevent re-opening the file to implement rewinddir.
  2927.  
  2928. If you cache the directory, all it takes is a pointer assignment.
  2929. POSIX doesn't require that you maintain cache consistency on
  2930. the directory image, either.
  2931.  
  2932. Are you saying that SVID and XPG3 require that an open directory
  2933. stream remain useful after a call to chroot() that would make
  2934. the directory itself inaccessible?
  2935.  
  2936.     Chuck Karish        karish@mindcraft.com
  2937.     Mindcraft, Inc.        (415) 323-9000
  2938.  
  2939.  
  2940. Volume-Number: Volume 27, Number 37
  2941.  
  2942. From std-unix-request@uunet.UU.NET  Mon Mar 23 18:27:24 1992
  2943. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  2944.     (5.61/UUNET-mail-drop) id AA24983; Mon, 23 Mar 92 18:27:24 -0500
  2945. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  2946.     (5.61/UUNET-internet-primary) id AA21365; Mon, 23 Mar 92 18:27:16 -0500
  2947. Newsgroups: comp.std.unix
  2948. From: "Brian R. Haug" <haug@grok20.columbiasc.ncr.com>
  2949. Subject: Re: seekdir/rewinddir on non seekable file systems
  2950. Message-Id: <1992Mar23.224851.13912@uunet.uu.net>
  2951. Originator: sef@ftp.UU.NET
  2952. Nntp-Posting-Host: ftp.uu.net
  2953. X-Submissions: std-unix@uunet.uu.net
  2954. Organization: NCR Corp
  2955. References: <1992Mar20.225009.29556@uunet.uu.net> <1992Mar21.232333.20048@uunet.uu.net>
  2956. Date: Mon, 23 Mar 1992 14:10:06 GMT
  2957. Reply-To: std-unix@uunet.UU.NET
  2958. To: std-unix@uunet.UU.NET
  2959. Sender: Network News <news@kithrup.com>
  2960. Source-Info:  From (or Sender) name not authenticated.
  2961.  
  2962. Submitted-by: haug@grok20.columbiasc.NCR.COM ("Brian R. Haug")
  2963.  
  2964. In article <1992Mar21.232333.20048@uunet.uu.net> karish@mindcraft.com
  2965. (Chuck Karish) writes:
  2966. >In article <1992Mar20.225009.29556@uunet.uu.net> I wrote
  2967. >>I've recently encountered a problem with seekdir in that it does not work
  2968. >>when the directory is on a device incapable of seeking (like the /dev/fd
  2969. >>filesystem in SVR4) because seekdir calls lseek which fails.
  2970. >
  2971. >Then I guess you'll have to convert the directory into a seekable
  2972. >form, perhaps by copying it into memory.
  2973.  
  2974. This was considered, but was not acceptable for two reasons:
  2975. 1)  rewinddir is implemented as a call to seekdir, and POSIX requires
  2976.     rewinddir to "refer to the current state of the corresponding
  2977.     directory, as a call to opendir() would have done."  See 5.1.2.2
  2978.     lines 51-54.  This puts me back at square one again with regard
  2979.     to seeking.  I probably should have made the rewinddir point
  2980.     better in my original post.
  2981. 2)  The directory could be huge, allocating a megabyte, or even several K
  2982.     of memory was deemed inappropriate for our implementation.
  2983.  
  2984. >>POSIX seems to have done a good job covering all the bases, as it does not
  2985. >>allow chroot, which would prevent re-opening the file to implement rewinddir.
  2986. >
  2987. >If you cache the directory, all it takes is a pointer assignment.
  2988. >POSIX doesn't require that you maintain cache consistency on
  2989. >the directory image, either.
  2990.  
  2991. Unless I've mis-understood what you're saying here, I have to disagree, see
  2992. the section of the standard mentioned earlier.
  2993.  
  2994. >Are you saying that SVID and XPG3 require that an open directory
  2995. >stream remain useful after a call to chroot() that would make
  2996. >the directory itself inaccessible?
  2997.  
  2998. That's my interpretation.  Granted you can not open any of the files
  2999. that you find in that directory, but I should still be able to access
  3000. the directory (until closedir is called).  After all, I can access files
  3001. not available from the current root directory IF I had them open before
  3002. the chroot call.  Seems like the same idea to me.
  3003.  
  3004. Knowing your reputation, I appreciate you taking time to respond.  I
  3005. think you've helped me better explain the problems we perceive.
  3006.  
  3007.  
  3008.  
  3009. Volume-Number: Volume 27, Number 38
  3010.  
  3011. From std-unix-request@uunet.UU.NET  Tue Mar 24 00:01:54 1992
  3012. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  3013.     (5.61/UUNET-mail-drop) id AA04780; Tue, 24 Mar 92 00:01:54 -0500
  3014. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  3015.     (5.61/UUNET-internet-primary) id AA23482; Tue, 24 Mar 92 00:01:43 -0500
  3016. Newsgroups: comp.std.unix
  3017. From: Doug Gwyn <gwyn@smoke.brl.mil>
  3018. Subject: Re: seekdir/rewinddir on non seekable file systems
  3019. Message-Id: <1992Mar24.042302.25869@uunet.uu.net>
  3020. Originator: sef@ftp.UU.NET
  3021. Nntp-Posting-Host: ftp.uu.net
  3022. X-Submissions: std-unix@uunet.uu.net
  3023. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  3024. References: <1992Mar20.225009.29556@uunet.uu.net>
  3025. Date: Tue, 24 Mar 1992 03:59:52 GMT
  3026. Reply-To: std-unix@uunet.UU.NET
  3027. To: std-unix@uunet.UU.NET
  3028. Sender: Network News <news@kithrup.com>
  3029. Source-Info:  From (or Sender) name not authenticated.
  3030.  
  3031. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  3032.  
  3033. In article <1992Mar20.225009.29556@uunet.uu.net> brian.haug@ncrcae.columbiasc.NCR.COM ("Brian R. Haug") writes:
  3034. >I've recently encountered a problem with seekdir in that it does not work
  3035. >when the directory is on a device incapable of seeking (like the /dev/fd
  3036. >filesystem in SVR4) because seekdir calls lseek which fails.  I realize that
  3037. >seekdir is no part of POSIX, but we have to be compatible with SVID and X/OPEN
  3038. >too.
  3039.  
  3040. I was intimately involved in the 1003.1 specification for the directory
  3041. access functions, and also implemented a widely used more-or-less portable
  3042. version of these functions (including seekdir()/telldir()) that among
  3043. other things served as the basis of the version shipped with UNIX System V.
  3044. I mention this to assure you of my familiarity with the problems..
  3045.  
  3046. The reason that 1003.1 did NOT specify seekdir()/telldir() is that there
  3047. simply is no way to guarantee that these can be correctly implemented in
  3048. all reasonable environments.  All versions I have seen (including mine)
  3049. depend on filesystem behavior that is by no means guaranteed, and as you
  3050. have discovered this problem has gotten worse as evolution has proceeded.
  3051. My copies of SVID and XPG are not at hand as I write this, but if they are
  3052. currently insisting on reliable seekdir()/telldir() they need to be fixed.
  3053.  
  3054. rewinddir() is more important, because it IS required by 1003.1.  The only
  3055. way I know of to implement it on a system that doesn't support lseek() to
  3056. the beginning (only!) of an open directory is to record the full pathname
  3057. at opendir() time and use this information to reopen the directory (after
  3058. closing the current fd).  As you observe, chroot() could cause this to
  3059. fail, which is not a problem for POSIX but would be for other UNIX
  3060. standards.  Are you sure that /dev/fd cannot be lseek()ed even to its
  3061. beginning?  That would seem to be a severe deficiency in the implementation
  3062. of that filesystem.  Assuming /dev/fd cannot be fixed, then I'd suggest
  3063. that SVID/XPG/etc. exempt rewinddir() from being used (in conforming
  3064. applications) after a chroot().  (chroot() opens a large can of worms, and
  3065. might be better left out of UNIX application interface standards.)
  3066.  
  3067.  
  3068. Volume-Number: Volume 27, Number 39
  3069.  
  3070. From std-unix-request@uunet.UU.NET  Wed Mar 25 17:23:42 1992
  3071. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  3072.     (5.61/UUNET-mail-drop) id AA10086; Wed, 25 Mar 92 17:23:42 -0500
  3073. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  3074.     (5.61/UUNET-internet-primary) id AA29763; Wed, 25 Mar 92 17:23:38 -0500
  3075. Newsgroups: comp.std.unix
  3076. From: "Brian R. Haug" <haug@grok20.columbiasc.ncr.com>
  3077. Subject: Re: seekdir/rewinddir on non seekable file systems
  3078. Message-Id: <1992Mar25.220739.18347@uunet.uu.net>
  3079. Originator: sef@ftp.UU.NET
  3080. Nntp-Posting-Host: ftp.uu.net
  3081. X-Submissions: std-unix@uunet.uu.net
  3082. Organization: NCR Corp
  3083. References: <1992Mar20.225009.29556@uunet.uu.net> <1992Mar24.042302.25869@uunet.uu.net>
  3084. Date: Wed, 25 Mar 1992 21:39:03 GMT
  3085. Reply-To: std-unix@uunet.UU.NET
  3086. To: std-unix@uunet.UU.NET
  3087. Sender: Network News <news@kithrup.com>
  3088. Source-Info:  From (or Sender) name not authenticated.
  3089.  
  3090. Submitted-by: haug@grok20.columbiasc.NCR.COM ("Brian R. Haug")
  3091.  
  3092. In article <1992Mar24.042302.25869@uunet.uu.net> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  3093. >Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  3094. >
  3095. >rewinddir() is more important, because it IS required by 1003.1.  The only
  3096. >way I know of to implement it on a system that doesn't support lseek() to
  3097. >the beginning (only!) of an open directory is to record the full pathname
  3098. >at opendir() time and use this information to reopen the directory (after
  3099. >closing the current fd).
  3100.  
  3101. A co-worker suggested that perhaps the real problem is that rewinddir and
  3102. seekdir are of type void and should have some other type so that they may
  3103. return an error condition (like the one I'm having to deal with).
  3104.  
  3105. When Andy Tannenbaum (sp?) remarked "Standards are wonderful, there are so
  3106. many to choose from."  He obviously was not in the implementor's shoes!
  3107.  
  3108.             Share and Enjoy!
  3109.  
  3110.                   Brian
  3111.  
  3112.  
  3113. Volume-Number: Volume 27, Number 40
  3114.  
  3115. From std-unix-request@uunet.UU.NET  Wed Mar 25 19:20:47 1992
  3116. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  3117.     (5.61/UUNET-mail-drop) id AA14922; Wed, 25 Mar 92 19:20:47 -0500
  3118. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  3119.     (5.61/UUNET-internet-primary) id AA01557; Wed, 25 Mar 92 19:20:45 -0500
  3120. Newsgroups: comp.std.unix
  3121. From: Johann Haider <jh@fortec.tuwien.ac.at>
  3122. Subject: awk should deal with hexadecimal numbers
  3123. Message-Id: <1992Mar25.233157.27088@uunet.uu.net>
  3124. Summary: awk is lacking functionality to deal with numbers other than decimal
  3125. Originator: sef@ftp.UU.NET
  3126. Keywords: awk posix hexadecimal
  3127. Nntp-Posting-Host: ftp.uu.net
  3128. X-Submissions: std-unix@uunet.uu.net
  3129. Organization: Technical University of Vienna
  3130. Date: Wed, 25 Mar 1992 22:16:42 GMT
  3131. Reply-To: std-unix@uunet.UU.NET
  3132. To: std-unix@uunet.UU.NET
  3133. Sender: Network News <news@kithrup.com>
  3134. Source-Info:  From (or Sender) name not authenticated.
  3135.  
  3136. Submitted-by: jh@fortec.tuwien.ac.at (Johann Haider)
  3137.  
  3138. Hello all,
  3139. I read in the distribution of Mawk that there is a posix draft
  3140. ( posix1003.2 draft(11.2) ) of awk, therefore I hope this article
  3141. isn't totally misplaced :-)
  3142.  
  3143. After I had used awk for some time some years ago I had the problem
  3144. to parse the output of `nm' which is in hexadecimal on that platform.
  3145. I had to write a filter program in C to convert the hex addresses to
  3146. decimal and do the parsing afterwards.
  3147.  
  3148. When Gnu awk came along I addeed a new function strtol() to convert
  3149. arbitrary base numbers to decimal.
  3150.  
  3151. As I consider this function very useful, I think it should be added to
  3152. the standard or at least it should not be omitted from the standard
  3153. without being discussed.
  3154.  
  3155. If someone is in the posix comitee and such a function has been abandoned
  3156. already I would be glad to hear about it.
  3157.  
  3158. Thank you
  3159. Hans
  3160.  
  3161. --
  3162. Johann Haider                               Rehabilitation Engineering Group
  3163. Institute for Electronics               Technical University Vienna, Austria
  3164. Email: jh@fortec.tuwien.ac.at                     phone:  +431 58801 3967
  3165.  
  3166. [ In general, comp.std.unix (or the std-unix-list mailing list) is not
  3167.   the right place to work on the POSIX standard(s).  It is a good place
  3168.   for *discussion*, however, which is why I've posted this.  -- mod ]
  3169.  
  3170. Volume-Number: Volume 27, Number 41
  3171.  
  3172. From std-unix-request@uunet.UU.NET  Thu Mar 26 16:27:01 1992
  3173. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  3174.     (5.61/UUNET-mail-drop) id AA23823; Thu, 26 Mar 92 16:27:01 -0500
  3175. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  3176.     (5.61/UUNET-internet-primary) id AA14358; Thu, 26 Mar 92 16:26:57 -0500
  3177. Newsgroups: comp.std.unix
  3178. From: Bob Robillard <duke@sunni.ctsd.bellcore.com>
  3179. Subject: Call for Input for 1003.7
  3180. Message-Id: <1992Mar26.205916.17238@uunet.uu.net>
  3181. Originator: sef@ftp.UU.NET
  3182. Nntp-Posting-Host: ftp.uu.net
  3183. X-Submissions: std-unix@uunet.uu.net
  3184. Organization: UUNET Communications Services
  3185. Date: Thu, 26 Mar 1992 20:18:36 GMT
  3186. Reply-To: std-unix@uunet.UU.NET
  3187. To: std-unix@uunet.UU.NET
  3188. Sender: Network News <news@kithrup.com>
  3189. Source-Info:  From (or Sender) name not authenticated.
  3190.  
  3191. Submitted-by: duke@sunni.ctsd.bellcore.com (Bob Robillard)
  3192.  
  3193. [ Responses can go to Jeff Parker or to the poster, Bob Robillard 
  3194.   (duke@cc.bellcore.com) ]
  3195.  
  3196.     I'm writing on behalf of POSIX 1003.7.  We are looking for examples
  3197. of existing practice in User and Group Management, and we would like to 
  3198. invite your company to submit either existing products or requirements.
  3199. We are hope to describe an API for distributed user management, but we 
  3200. would be happy to consider existing practice that illuminates the problem.
  3201.  
  3202. Our next meeting is in Dallas the week of April 6-10th.  I will convey
  3203. any documents that reach me before then.  We also welcome any representation
  3204. you may be able to provide.
  3205.  
  3206. Jeff Parker, POSIX 1003.7, Sun Microsystems
  3207. Jeff.Parker@east.sun.com
  3208.  
  3209. Volume-Number: Volume 27, Number 42
  3210.  
  3211. From std-unix-request@uunet.UU.NET  Fri Mar 27 23:47:48 1992
  3212. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3213.     (5.61/UUNET-mail-drop) id AA21455; Fri, 27 Mar 92 23:47:48 -0500
  3214. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3215.     (5.61/UUNET-internet-primary) id AA18907; Fri, 27 Mar 92 23:47:55 -0500
  3216. Newsgroups: comp.std.unix
  3217. From: rabin@osf.org
  3218. Subject: P1003.4[a] Common Reference Ballots (CRBs)
  3219. Message-Id: <1992Mar27.212634.11619@uunet.uu.net>
  3220. Originator: sef@ftp.UU.NET
  3221. Nntp-Posting-Host: ftp.uu.net
  3222. X-Submissions: std-unix@uunet.uu.net
  3223. Organization: UUNET Communications Services
  3224. Date: Fri, 27 Mar 1992 15:27:24 GMT
  3225. Reply-To: std-unix@uunet.UU.NET
  3226. To: std-unix@uunet.UU.NET
  3227. Sender: Network News <news@kithrup.com>
  3228. Source-Info:  From (or Sender) name not authenticated.
  3229.  
  3230. Submitted-by: rabin@osf.org
  3231.  
  3232. Please be advised that this week a small group of people from
  3233. OSF, USL and other organizations met and drafted the CRBs
  3234. for P1003.4 (Realtime) and P1003.4a (pthreads).  The .4 CRB
  3235. will be published Tuesday March 31st and the .4a CRB will
  3236. be published Monday April 13th.  Ballots are due at the IEEE
  3237. office April 8th and May 1st respectively.
  3238.  
  3239. The CRB represents a consensus of the CRB group and we hope you
  3240. will read and consider endorsing the objections submitted in the CRBs.
  3241.  
  3242. Thanks Much.
  3243.  
  3244.  
  3245. Volume-Number: Volume 27, Number 43
  3246.  
  3247. From std-unix-request@uunet.UU.NET  Sat Mar 28 08:42:27 1992
  3248. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3249.     (5.61/UUNET-mail-drop) id AA23024; Sat, 28 Mar 92 08:42:27 -0500
  3250. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3251.     (5.61/UUNET-internet-primary) id AA09449; Sat, 28 Mar 92 08:42:29 -0500
  3252. Newsgroups: comp.std.unix
  3253. From: Henry Spencer <henry@zoo.toronto.edu>
  3254. Subject: Re: awk should deal with hexadecimal numbers
  3255. Message-Id: <1992Mar28.093842.11910@uunet.uu.net>
  3256. Originator: sef@ftp.UU.NET
  3257. Nntp-Posting-Host: ftp.uu.net
  3258. X-Submissions: std-unix@uunet.uu.net
  3259. Organization: U of Toronto Zoology
  3260. References: <1992Mar25.233157.27088@uunet.uu.net>
  3261. Date: Fri, 27 Mar 1992 21:18:29 GMT
  3262. Reply-To: std-unix@uunet.UU.NET
  3263. To: std-unix@uunet.UU.NET
  3264. Sender: Network News <news@kithrup.com>
  3265. Source-Info:  From (or Sender) name not authenticated.
  3266.  
  3267. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  3268.  
  3269. >Submitted-by: jh@fortec.tuwien.ac.at (Johann Haider)
  3270. >As I consider this function very useful, I think it should be added to
  3271. >the standard or at least it should not be omitted from the standard
  3272. >without being discussed.
  3273.  
  3274. It is, unfortunately, rather too late for this.  1003.2, which covers
  3275. awk among many other things, is pretty much finalized.
  3276.  
  3277. It *is* a blemish that awk can do various kinds of conversions *to*
  3278. strings using sprintf, but can't go the other way very easily.
  3279. -- 
  3280. GCC 2.0 is to C as SVR4 is to Unix.     | Henry Spencer @ U of Toronto Zoology
  3281.                              -Dick Dunn |  henry@zoo.toronto.edu  utzoo!henry
  3282.  
  3283.  
  3284. Volume-Number: Volume 27, Number 44
  3285.  
  3286. From std-unix-request@uunet.UU.NET  Sat Mar 28 08:42:31 1992
  3287. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3288.     (5.61/UUNET-mail-drop) id AA23031; Sat, 28 Mar 92 08:42:31 -0500
  3289. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3290.     (5.61/UUNET-internet-primary) id AA09461; Sat, 28 Mar 92 08:42:32 -0500
  3291. Newsgroups: comp.std.unix
  3292. From: Doug Gwyn <gwyn@smoke.brl.mil>
  3293. Subject: Re: seekdir/rewinddir on non seekable file systems
  3294. Message-Id: <1992Mar28.094023.12123@uunet.uu.net>
  3295. Originator: sef@ftp.UU.NET
  3296. Nntp-Posting-Host: ftp.uu.net
  3297. X-Submissions: std-unix@uunet.uu.net
  3298. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  3299. References: <1992Mar20.225009.29556@uunet.uu.net> <1992Mar24.042302.25869@uunet.uu.net> <1992Mar25.220739.18347@uunet.uu.net>
  3300. Date: Fri, 27 Mar 1992 17:05:50 GMT
  3301. Reply-To: std-unix@uunet.UU.NET
  3302. To: std-unix@uunet.UU.NET
  3303. Sender: Network News <news@kithrup.com>
  3304. Source-Info:  From (or Sender) name not authenticated.
  3305.  
  3306. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  3307.  
  3308. In article <1992Mar25.220739.18347@uunet.uu.net> haug@grok20.columbiasc.NCR.COM ("Brian R. Haug") writes:
  3309. >A co-worker suggested that perhaps the real problem is that rewinddir and
  3310. >seekdir are of type void and should have some other type so that they may
  3311. >return an error condition (like the one I'm having to deal with).
  3312.  
  3313. I agree that it was unfortunate, but it wouldn't solve the REAL problem
  3314. (from the point of view of the application program), which is that the
  3315. rewinddir() fails under perfectly ordinary usage.  As I recall the P1003
  3316. discussions, the opinion was generally held that if opendir() succeeded,
  3317. then a subsequent rewinddir() couldn't possibly fail (except if the
  3318. filesystem went off line or something of the sort, which we weren't
  3319. particularly concerned about at the time).  seekdir(), on the other hand,
  3320. was expected to malfunction using any reasonable user-mode implementation,
  3321. on certain systems that dynamically compact directories.  (Of course they
  3322. would also affect readdir(), but only in the sense of causing some entries
  3323. to be skipped.  Really, the file-system part of the operating system should
  3324. provide more reliable directory access facilities than UNIX typically does.)
  3325.  
  3326. My honest suggestion is to get the /dev/fd filesystem maintainer to support
  3327. seeking to BOF at least, if not providing seek in its full generality.
  3328.  
  3329.  
  3330. Volume-Number: Volume 27, Number 45
  3331.  
  3332. From std-unix-request@uunet.UU.NET  Mon Mar 30 20:18:20 1992
  3333. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3334.     (5.61/UUNET-mail-drop) id AA12153; Mon, 30 Mar 92 20:18:20 -0500
  3335. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3336.     (5.61/UUNET-internet-primary) id AA24374; Mon, 30 Mar 92 20:18:27 -0500
  3337. Newsgroups: comp.std.unix
  3338. From: Arnold Robbins <arnold@cc.gatech.edu>
  3339. Subject: 1003.2a on comments in the shell
  3340. Message-Id: <1992Mar30.205758.2699@uunet.uu.net>
  3341. Originator: sef@ftp.UU.NET
  3342. Nntp-Posting-Host: ftp.uu.net
  3343. Reply-To: arnold@cc.gatech.edu
  3344. X-Submissions: std-unix@uunet.uu.net
  3345. Organization: Georgia Institute of Technology
  3346. Date: Mon, 30 Mar 1992 14:59:47 GMT
  3347. To: std-unix@uunet.UU.NET
  3348. Sender: Network News <news@kithrup.com>
  3349. Source-Info:  From (or Sender) name not authenticated.
  3350.  
  3351. Submitted-by: arnold@cc.gatech.edu (Arnold Robbins)
  3352.  
  3353. Could someone familiar with 1003.2a (the UPE - User Portability Extension)
  3354. answer the following question for me?
  3355.  
  3356. What does
  3357.  
  3358.     echo a # b c
  3359.  
  3360. produce if typed at an interactive shell?  There is one sh-style shell out
  3361. in the wide world that will echo 'a # b c' instead of just 'a' and I'd like
  3362. to know if this behavior is POSIX-compiliant.
  3363.  
  3364. Thanks,
  3365. --
  3366. Arnold Robbins --- College of Computing            | Laundry increases
  3367. Georgia Tech, Atlanta, GA 30332-0280            | exponentially in the
  3368. Domain: arnold@cc.gatech.edu     Phone: +1 404 894 9214 | number of children.
  3369. UUCP: uunet!cc.gatech.edu!arnold FAX:   +1 404 853 9378 |  -- Miriam Robbins
  3370.  
  3371.  
  3372. Volume-Number: Volume 27, Number 46
  3373.  
  3374. From std-unix-request@uunet.UU.NET  Mon Mar 30 22:26:35 1992
  3375. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3376.     (5.61/UUNET-mail-drop) id AA17403; Mon, 30 Mar 92 22:26:35 -0500
  3377. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3378.     (5.61/UUNET-internet-primary) id AA22482; Mon, 30 Mar 92 22:26:43 -0500
  3379. Newsgroups: comp.std.unix
  3380. From: "David J. MacKenzie" <djm@eng.umd.edu>
  3381. Subject: Re: 1003.2a on comments in the shell
  3382. Message-Id: <1992Mar31.024454.23050@uunet.uu.net>
  3383. Originator: sef@ftp.UU.NET
  3384. Nntp-Posting-Host: ftp.uu.net
  3385. X-Submissions: std-unix@uunet.uu.net
  3386. Organization: Project GLUE, University of Maryland
  3387. References: <1992Mar30.205758.2699@uunet.uu.net>
  3388. Date: Tue, 31 Mar 1992 02:09:13 GMT
  3389. Reply-To: std-unix@uunet.UU.NET
  3390. To: std-unix@uunet.UU.NET
  3391. Sender: Network News <news@kithrup.com>
  3392. Source-Info:  From (or Sender) name not authenticated.
  3393.  
  3394. Submitted-by: djm@eng.umd.edu (David J. MacKenzie)
  3395.  
  3396. > Could someone familiar with 1003.2a (the UPE - User Portability Extension)
  3397. > answer the following question for me?
  3398.  
  3399. > What does
  3400.  
  3401. >     echo a # b c
  3402.  
  3403. > produce if typed at an interactive shell?  There is one sh-style shell out
  3404. > in the wide world that will echo 'a # b c' instead of just 'a' and I'd like
  3405. > to know if this behavior is POSIX-compiliant.
  3406.  
  3407. The only explicit mention of `#' for the shell in p1003.2a is in the
  3408. description of the Vi editing mode.  It's a command to comment-out the
  3409. current line (excerpted below).  Read strictly, it doesn't appear to
  3410. say anything about what happens when the user types a `#' as part of a
  3411. command, only what happens when the shell inserts a `#' in response to
  3412. a special command.  Read more loosely, it requires that `#' at the
  3413. beginning of a line begin a comment, but doesn't explicitly say
  3414. anything about `#' in the middle of a line.  Read more loosely still,
  3415. it specifies that `#' introduces a comment in interactive shells.
  3416.  
  3417. Perhaps I missed an implicit or blanket reference somewhere to how
  3418. non-interactive comments affect interactive shells, which would affect
  3419. the above analysis.  If not, POSIX.2a doesn't precisely say whether or
  3420. not that shell's behavior is compilant, so I suppose that it is.
  3421.  
  3422.  
  3423.  4.56.7.5  Vi Line Editing Command Mode
  3424.  . . .
  3425.  The following commands shall be recognized in command mode:
  3426.  . . .
  3427.     #            Insert the character # at the beginning of the current
  3428.                  command line and treat the current command line as a
  3429.                  comment.  This line shall be entered into the command      8
  3430.                  history; see 5.12.                                         8
  3431.  
  3432. --
  3433. David J. MacKenzie <djm@eng.umd.edu> <djm@ai.mit.edu>
  3434.  
  3435.  
  3436. Volume-Number: Volume 27, Number 47
  3437.  
  3438. From std-unix-request@uunet.UU.NET  Tue Mar 31 15:53:12 1992
  3439. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3440.     (5.61/UUNET-mail-drop) id AA18365; Tue, 31 Mar 92 15:53:12 -0500
  3441. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3442.     (5.61/UUNET-internet-primary) id AA29086; Tue, 31 Mar 92 15:53:07 -0500
  3443. Newsgroups: comp.std.unix
  3444. From: Doug Gwyn <gwyn@smoke.brl.mil>
  3445. Subject: Re: 1003.2a on comments in the shell
  3446. Message-Id: <1992Mar31.204813.684@uunet.uu.net>
  3447. X-Submissions: std-unix@uunet.uu.net
  3448. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  3449. References: <1992Mar30.205758.2699@uunet.uu.net> <1992Mar31.024454.23050@uunet.uu.net>
  3450. Date: Tue, 31 Mar 1992 11:27:37 GMT
  3451. Reply-To: std-unix@uunet.UU.NET
  3452. To: std-unix@uunet.UU.NET
  3453. Sender: Network News <news@kithrup.com>
  3454. Source-Info:  From (or Sender) name not authenticated.
  3455.  
  3456. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  3457.  
  3458. In article <1992Mar31.024454.23050@uunet.uu.net> djm@eng.umd.edu (David J. MacKenzie) writes:
  3459. >The only explicit mention of `#' for the shell in p1003.2a is in the
  3460. >description of the Vi editing mode.  It's a command to comment-out the
  3461. >current line (excerpted below).  ...
  3462.  
  3463. That's disgusting!
  3464. If 1003.2 is going to break zillions of existing carefuly-written shell
  3465. scripts, then it ought not to be adopted.
  3466.  
  3467.  
  3468. Volume-Number: Volume 27, Number 48
  3469.  
  3470. From std-unix-request@uunet.UU.NET  Tue Mar 31 15:53:12 1992
  3471. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3472.     (5.61/UUNET-mail-drop) id AA18366; Tue, 31 Mar 92 15:53:12 -0500
  3473. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3474.     (5.61/UUNET-internet-primary) id AA29048; Tue, 31 Mar 92 15:53:02 -0500
  3475. Newsgroups: comp.std.unix
  3476. From: Stephen Walli <mks!stephe>
  3477. Subject: EurOpen Report on POSIX, Jan '92
  3478. Message-Id: <1992Mar31.204858.886@uunet.uu.net>
  3479. X-Submissions: std-unix@uunet.uu.net
  3480. Organization: UUNET Communications Services
  3481. Date: Tue, 31 Mar 1992 16:33:45 GMT
  3482. Reply-To: std-unix@uunet.UU.NET
  3483. To: std-unix@uunet.UU.NET
  3484. Sender: Network News <news@kithrup.com>
  3485. Source-Info:  From (or Sender) name not authenticated.
  3486.  
  3487. Submitted-by: stephe@mks.uucp (Stephen Walli)
  3488.  
  3489.  
  3490.  
  3491.            Report on the January 1992 IEEE POSIX Meeting for EurOpen
  3492.                        Stephen R. Walli <stephe@mks.com>
  3493.                       EurOpen Institutional Representative
  3494.  
  3495.  
  3496.           Standing  on Huntington  Beach,  gazing across  the  moonlit
  3497.           Pacific  after  a  five  hour  Sponsor  Executive  Committee
  3498.           meeting, is a  small group of  POSIX refugees.  It is 10 pm.
  3499.           The  oil  rigs  glow  golden  in  the  distance  like  great
  3500.           Christmas trees.  The surf crashes and hisses at our feet.
  3501.  
  3502.           Jason:  Just  remember,  Stephe,  in  the  grand  scheme  of
  3503.           things....
  3504.  
  3505.           Stephe [interrupting]: ...Oil's important.
  3506.  
  3507.           Okay. So  I'm  a cynic.  It  was generally  an ugly week.  I
  3508.           believe  there  are  still  some  fundamental flaws  in  the
  3509.           structure  of  POSIX.   Working  group  members   are  still
  3510.           grappling with  the  enormity of  the  beast we've  created.
  3511.           GUIs, rescued from  the jaws of defeat by the IEEE Standards
  3512.           Advisory Board,  entered the scene  again. Life (and  POSIX)
  3513.           goes on.
  3514.  
  3515.           1.  POSIX is coming! POSIX is coming!
  3516.  
  3517.           The IEEE  POSIX  working groups ARE  coming to Europe.  This
  3518.           Autumn, the POSIX working groups will be meeting in Utrecht,
  3519.           NL, from  October 19-23.  The meetings will  be held at  the
  3520.           Holiday Inn and the Scandic Crown Hotel.
  3521.  
  3522.           Information will be  posted to this  column, and on  the net
  3523.           where appropriate, as the meetings approach.
  3524.  
  3525.           There will  also be an  ISO Working Group  15 (WG15 --  ISO
  3526.           POSIX) meeting around  the same time.  It will either be the
  3527.           week before or  the week after,  and will also be in Europe.
  3528.           Again, information will be forthcoming.
  3529.  
  3530.           2.  SICC and the PMC
  3531.  
  3532.           POSIX often  makes  use of  the fact that  a small group  of
  3533.           people can  go off  and accomplish what  a large group  will
  3534.           spend hours  arguing  about. Small  committees are the  work
  3535.           method  of  choice  in many  areas.  Two committees  of  the
  3536.           Sponsor Executive Committee  (SEC) are the System Interfaces
  3537.           Co-ordination Committee (SICC),  and the Project  Management
  3538.           Committee (PMC).
  3539.  
  3540.           SICC is gaining  momentum. It is  effectively the chairs  of
  3541.           all the system interface groups:
  3542.           -- POSIX.1, the base system interface,
  3543.           -- POSIX.4, real-time extensions to POSIX.1,
  3544.           -- POSIX.6, security extensions to POSIX.1,
  3545.           -- POSIX.8, transparent file access extensions to POSIX.1,
  3546.           -- POSIX.12,  protocol  independent   interfaces  (Berkeley
  3547.             sockets and X/Open's TLI).
  3548.           -- POSIX.15, supercomputing batch interfaces,
  3549.           -- POSIX.17, directory services (think X.500).
  3550.  
  3551.           They are  a simple  subcommittee of the  SEC, that meets  to
  3552.           resolve areas of conflict between the base standards, and to
  3553.           work out concerns which affect all of the documents.
  3554.  
  3555.           The other group  which is effecting  the way POSIX is coming
  3556.           forward is the  Project Management Committee (PMC). This was
  3557.           the fourth  meeting  the PMC  has existed,  and half of  its
  3558.           eight members  were due  to retire. Two  elected to stay  on
  3559.           (and were voted  back in by  the SEC) for  an additional two
  3560.           year  term.  Two  new  members  (one  of  them  the  EurOpen
  3561.           Institutional  Representative,)  were  also voted  into  the
  3562.           group.
  3563.  
  3564.           The PMC  is responsible for  mentoring existing projects  to
  3565.           ensure they are  performing according to plan. They are also
  3566.           responsible for  ensuring that  new project requests  (PARs)
  3567.           are complete and  have all the  attendant paper work  before
  3568.           reaching the SEC.
  3569.  
  3570.           One interesting  result  of their  work  this week  was  the
  3571.           splitting up of the POSIX.7 (System Administration) project.
  3572.           POSIX.7 has been re-organized into:
  3573.           -- a parent project (POSIX.7), which is responsible for co-
  3574.             ordinating the other parts of the POSIX.7 standard
  3575.           -- POSIX.7a to build a standard for print management,
  3576.           -- POSIX.7b to build a standard for software management,
  3577.           -- POSIX.7c to a set of guidelines for user management.
  3578.  
  3579.           The final subproject  is important. There  is not sufficient
  3580.           agreement  on  how  to do  user  administration to  build  a
  3581.           standard.  There  is   a  lot  of   existing  practice  with
  3582.           administering  users.  Everyone   agrees  that  the  current
  3583.           solutions are not good. So they are building a set of agreed
  3584.           upon guidelines. It's  really too bad  the PMC didn't  exist
  3585.           when other project requests were cut to suggest this sort of
  3586.           solution for  certain  other contentious  immature areas  of
  3587.           technology.
  3588.  
  3589.           3.  Multi-lingual Test Assertions
  3590.  
  3591.           Multi-lingual Test Assertions are test assertions written in
  3592.           such  a  way   that  test  suites  in  multiple  programming
  3593.           languages  could be  written.  This addresses  the  problems
  3594.           associated with  testing conformance  for something like  an
  3595.           Ada run-time  environment,  that supports  POSIX.5 (the  Ada
  3596.           language version  of  POSIX.1 functionality,)  when all  the
  3597.           test suites are written in C.
  3598.  
  3599.           POSIX describes an  interface to operating  system services.
  3600.           It is  based  on the  historical  C interface  to UNIX,  but
  3601.           should not  be  restricted to  just  that language.  No  one
  3602.           wants  to  make  the  same  mistakes  made with  GKS  (which
  3603.           demonstrated  you  could   write  Fortran  programs  in  any
  3604.           language,) by forcing other languages to bind the interfaces
  3605.           in the same functional way.
  3606.  
  3607.           This  was  why  ISO WG15  (ISO  POSIX) wants  a  programming
  3608.           language independent specification to be written of POSIX.1.
  3609.           Other   languages   can    then   bind   the   functionality
  3610.           appropriately. The semantic  description would be  kept in a
  3611.           single book, with the appropriate syntactic binding and glue
  3612.           in other books.
  3613.  
  3614.           Test  assertions written  to  POSIX.1 demonstrate  the  same
  3615.           problems.  Everyone  agrees  that  much  of  the  functional
  3616.           content of the  test methods for  POSIX.1 should be the same
  3617.           no matter what  programming language is  being used to write
  3618.           the suite.  If the test assertions from which the test cases
  3619.           are  built   were  written   to  the  programming   language
  3620.           independent version of  the standard, they could be bound to
  3621.           the language  syntax  at the  same  time as  the  functional
  3622.           specification, providing a  language based set of assertions
  3623.           from which to build the conformance test suite.
  3624.  
  3625.           Okay. The  cat's out  of the bag.  We are really  discussing
  3626.           language independent  specification  test assertions.  If  I
  3627.           used that  as  the title  to  this section,  you might  have
  3628.           turned the page.  Hopefully, you now at least appreciate the
  3629.           problem to be  solved, even if  you still run screaming into
  3630.           the night.
  3631.  
  3632.           Now all  we have to  do is solve  the resource problem,  and
  3633.           find people to help with the specification.
  3634.  
  3635.           4.  Distributed Security Study Group
  3636.  
  3637.           A group  of  about twenty  people met for  a day during  the
  3638.           January  POSIX  meeting   to  discuss  distributed  security
  3639.           technologies and scenarios. The group felt it had sufficient
  3640.           momentum and manpower to form a proper study group, and they
  3641.           will  meet for  the  entire week  at  the April  meeting  in
  3642.           Dallas, TX.
  3643.  
  3644.           They were a little disorganized to begin with, but agreed to
  3645.           a set  of  existing specifications and  models they wish  to
  3646.           begin investigating at the next meeting.
  3647.  
  3648.           There are those within the group that wish to take some time
  3649.           to  investigate  the   current  base  of  experience  before
  3650.           proceeding,  while   others  appear  to   want  to  pick   a
  3651.           specification and begin  tweaking it into a standard. Pretty
  3652.           aggressive considering  they haven't  cut a project  request
  3653.           yet!
  3654.  
  3655.           5.  PAR Wars II -- The Umpire Strikes Back
  3656.  
  3657.           Since we  last  looked in  on  our story, our  protagonists,
  3658.           OSF/Motif  and  Open  Look  (sometimes  known as  Rodan  and
  3659.           Godzilla) were off  chasing their project requests (PARs) up
  3660.           the IEEE Standards hierarchy. Having been told ``no'' by the
  3661.           Sponsor Executive Committee  (SEC), they are  now asking for
  3662.           sponsorship  at  the  higher  level  of the  IEEE  Standards
  3663.           Advisory Board (SAB).
  3664.  
  3665.           You will recall the flow.
  3666.           -- April 1991,  the  PARs first surface.  The intent is  to
  3667.             directly  form  ballot   groups  to  ballot   the  current
  3668.             programmers   and   users   guides.   The   SEC,   clearly
  3669.             uncomfortable with the  obvious overlap between  these two
  3670.             GUI PARs and the current work in P1201, argues for several
  3671.             hours (!) and then tables discussion at that time.
  3672.  
  3673.           -- July 1991, discussion is re-opened. A small committee is
  3674.             formed to  clearly  state all  pros  and cons  of the  two
  3675.             projects. The presentation  is made, and since all members
  3676.             of the  SEC  find at  least one  serious problem with  the
  3677.             Motif and  Open  Look project  requests, the projects  are
  3678.             voted down.
  3679.  
  3680.             Some were concerned  over the apparent lack of maturity of
  3681.             the  technology.    No   one  that   has  tried  the   two
  3682.             technologies (with  the exception  of the PAR  presenters)
  3683.             seems  to  like  either  of  the  interfaces.  People  are
  3684.             concerned that  wrapping a standard  around them now  will
  3685.             prevent them  from being improved  and matured. Some  user
  3686.             representatives clearly wish  there to be a single unified
  3687.             standard.
  3688.  
  3689.             With the apparent ``death'' of the two competing PARs came
  3690.             a motion  to  remove sponsorship  from the existing  P1201
  3691.             project, arguing it  suffers the same flaws. Discussion is
  3692.             tabled to  the  project management  committee (PMC)  until
  3693.             October.
  3694.  
  3695.           -- October 1991,  P1201 is allowed  to survive. P1201.1  is
  3696.             making good progress  at defining a higher level interface
  3697.             for simple  windowing,  based on  current practice.  While
  3698.             possibly not  as  functional as either  the Motif or  Open
  3699.             Look  toolkits,  it   is  useful  to   a  wide  range   of
  3700.             applications, and  there is  consensus forming around  it.
  3701.             P1201.2 is  preparing a  recommended practice document  on
  3702.             windowing style, and is making good progress.
  3703.  
  3704.             The  Motif  and  Open  Look  projects presenters  are  off
  3705.             haunting other corridors  (SAB).  The SAB, pointing to the
  3706.             802 LAN standards  as if they were a ``good'' example, has
  3707.             said it  is  an insufficient  reason  to kill the  project
  3708.             requests simply because they have overlapping scopes.
  3709.  
  3710.           The SEC is  responsible for approving  projects for the IEEE
  3711.           Technical  Committee  on  Operating  Systems  --  Standards
  3712.           Subcommittee (TCOS-SS).  This  is where  POSIX  and the  GUI
  3713.           standards all reside.
  3714.  
  3715.           It seems  the  SAB is  sympathetic to  their plight and  has
  3716.           agreed to  sponsor  the projects.  Gone are the  contentious
  3717.           ideas that the  two camps will  directly form ballot  groups
  3718.           and  ballot the  current  programmers references  and  users
  3719.           guides.  The SAB has said that they must play fair, and play
  3720.           by the rules.  (Direct balloting only  exists on paper  as a
  3721.           method of fast-tracking clearly uncontentious documents.)
  3722.  
  3723.           The SAB has  further offered them  BACK to TCOS-SS/SEC!  The
  3724.           projects really DO  belong within the scope of TCOS. The SEC
  3725.           agreed to take  a look at the revised sponsored-in-principle
  3726.           projects at the  April 1992 meeting.  I believe one member's
  3727.           phrase was to  ``accept the pig  in a poke  now, and rip the
  3728.           bag off later.''   Hopefully, it won't  be too prophetic  an
  3729.           analogy.
  3730.  
  3731.           We have been  cautioned that we  can not trivially  agree to
  3732.           accept them, then  shut them down. They have been sponsored-
  3733.           in-principle  by  a higher  power.   The two  projects  have
  3734.           already each  held their first  meetings, outside of  TCOS's
  3735.           sphere of influence.
  3736.  
  3737.           I for  one  want to see  them really play  by the rules!  If
  3738.           accepted  by  TCOS,  they  should  certainly come  into  the
  3739.           Steering  Committee  on  Windowing User  Interfaces  (SCWUI)
  3740.           realm of  influence.  No reason  to  exempt them  from  test
  3741.           assertions either.
  3742.  
  3743.           Language  independent  specifications  (LIS)  are  certainly
  3744.           appropriate considering  the number  of Ada developers  that
  3745.           currently need to find messy solutions to working with these
  3746.           two GUIs in  their native Ada environments. Indeed, they may
  3747.           discover that they  functionally overlap more than they care
  3748.           to admit by  writing the LIS.   If they rationalize the LIS,
  3749.           as POSIX.12 is  doing with C-based  sockets and C-based XTI,
  3750.           then maybe  Ada  could benefit  by coming  up with a  single
  3751.           binding standard!
  3752.  
  3753.           Of course,  if  they were  to  come forward  as  recommended
  3754.           practices or guidelines,  instead of as  full use standards,
  3755.           they would not  need to provide  LIS and test  assertions as
  3756.           robustness proofs.  Something to think about.
  3757.  
  3758.           As  I  said  at  the  end of  the  last report,  ``thus  are
  3759.           standards born.''
  3760.  
  3761.  
  3762.  
  3763. Volume-Number: Volume 27, Number 49
  3764.  
  3765. From std-unix-request@uunet.UU.NET  Tue Mar 31 16:26:25 1992
  3766. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3767.     (5.61/UUNET-mail-drop) id AA22174; Tue, 31 Mar 92 16:26:25 -0500
  3768. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3769.     (5.61/UUNET-internet-primary) id AA07916; Tue, 31 Mar 92 16:26:24 -0500
  3770. Newsgroups: comp.std.unix
  3771. From: Peter da Silva <peter@ferranti.com>
  3772. Subject: Re: 1003.2a on comments in the shell
  3773. Message-Id: <1992Mar31.212031.4967@uunet.uu.net>
  3774. X-Submissions: std-unix@uunet.uu.net
  3775. Organization: Xenix Support, FICC
  3776. References: <1992Mar30.205758.2699@uunet.uu.net> <1992Mar31.024454.23050@uunet.uu.net>
  3777. Date: Tue, 31 Mar 1992 15:51:40 GMT
  3778. Reply-To: std-unix@uunet.UU.NET
  3779. To: std-unix@uunet.UU.NET
  3780. Sender: Network News <news@kithrup.com>
  3781. Source-Info:  From (or Sender) name not authenticated.
  3782.  
  3783. Submitted-by: peter@ferranti.com (Peter da Silva)
  3784.  
  3785. What is P1003.2a doing specifying the behaviour of vi-mode command line
  3786. editing in the first place? Is it specifying that "the shell" be ksh?
  3787. [ Or bash -- mod ]
  3788.  
  3789. -- 
  3790. -- Peter da Silva,  Ferranti International Controls Corporation
  3791. -- Sugar Land, TX  77487-5012;  +1 713 274 5180
  3792. -- "Have you hugged your wolf today?"
  3793.  
  3794. Volume-Number: Volume 27, Number 50
  3795.  
  3796. From std-unix-request@uunet.UU.NET  Wed Apr  1 21:58:47 1992
  3797. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3798.     (5.61/UUNET-mail-drop) id AA26676; Wed, 1 Apr 92 21:58:47 -0500
  3799. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3800.     (5.61/UUNET-internet-primary) id AA28406; Wed, 1 Apr 92 21:58:55 -0500
  3801. Newsgroups: comp.std.unix
  3802. From: Chet Ramey <chet@odin.ins.cwru.edu>
  3803. Subject: Re: 1003.2a on comments in the shell
  3804. Message-Id: <1992Apr2.024730.26729@uunet.uu.net>
  3805. X-Submissions: std-unix@uunet.uu.net
  3806. Organization: Case Western Reserve University
  3807. References: <1992Mar30.205758.2699@uunet.uu.net> <1992Mar31.024454.23050@uunet.uu.net> <1992Mar31.212031.4967@uunet.uu.net>
  3808. Date: Tue, 31 Mar 1992 22:53:07 GMT
  3809. Reply-To: std-unix@uunet.UU.NET
  3810. To: std-unix@uunet.UU.NET
  3811. Sender: Network News <news@kithrup.com>
  3812. Source-Info:  From (or Sender) name not authenticated.
  3813.  
  3814. Submitted-by: chet@odin.INS.CWRU.Edu (Chet Ramey)
  3815.  
  3816. In article <1992Mar31.212031.4967@uunet.uu.net> peter@ferranti.com (Peter da Silva) writes:
  3817.  
  3818. >What is P1003.2a doing specifying the behaviour of vi-mode command line
  3819. >editing in the first place? Is it specifying that "the shell" be ksh?
  3820.  
  3821. Yes, to a degree.  1003.2a specifies a subset of ksh.  The `base document'
  3822. is Bolsky & Korn's book.  The term `only one historical implementation' is
  3823. used frequently.  Things are specified exactly as ksh implements them.
  3824.  
  3825. Here's a sample quote:
  3826.  
  3827. ``The KornShell version was adopted to be consistent with all the other
  3828.   KornShell features in POSIX.2, such as command-line editing.''
  3829.  
  3830. Chet
  3831. -- 
  3832. ``The use of history as therapy means the corruption of history as history.''
  3833.     -- Arthur Schlesinger
  3834.  
  3835. Chet Ramey, Case Western Reserve University    Internet: chet@po.CWRU.Edu
  3836.  
  3837.  
  3838. Volume-Number: Volume 27, Number 51
  3839.  
  3840. From std-unix-request@uunet.UU.NET  Wed Apr  1 21:58:52 1992
  3841. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3842.     (5.61/UUNET-mail-drop) id AA26683; Wed, 1 Apr 92 21:58:52 -0500
  3843. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3844.     (5.61/UUNET-internet-primary) id AA28426; Wed, 1 Apr 92 21:58:59 -0500
  3845. Newsgroups: comp.std.unix
  3846. From: "David J. MacKenzie" <djm@eng.umd.edu>
  3847. Subject: Re: 1003.2a on comments in the shell
  3848. Message-Id: <1992Apr2.024822.26879@uunet.uu.net>
  3849. X-Submissions: std-unix@uunet.uu.net
  3850. Organization: Project GLUE, University of Maryland
  3851. References: <1992Mar30.205758.2699@uunet.uu.net>
  3852. Date: Wed, 1 Apr 1992 05:25:32 GMT
  3853. Reply-To: std-unix@uunet.UU.NET
  3854. To: std-unix@uunet.UU.NET
  3855. Sender: Network News <news@kithrup.com>
  3856. Source-Info:  From (or Sender) name not authenticated.
  3857.  
  3858. Submitted-by: djm@eng.umd.edu (David J. MacKenzie)
  3859.  
  3860. > Perhaps I missed an implicit or blanket reference somewhere to how
  3861. > non-interactive comments affect interactive shells, which would affect
  3862. > the above analysis.  If not, POSIX.2a doesn't precisely say whether or
  3863. > not that shell's behavior is compilant, so I suppose that it is.
  3864.  
  3865. It appears that I did miss something -- any behavior that P1003.2a
  3866. doesn't specify as being different for interactive operation is the
  3867. same as for non-interactive operation.  So interactive comments need
  3868. to work the same way as non-interactive comments.  In other words,
  3869. "that shell" (bash) doesn't comply with 1003.2a in its handling of
  3870. interactive comments.
  3871.  
  3872. Sorry for my hasty analysis.
  3873. --
  3874. David J. MacKenzie <djm@eng.umd.edu> <djm@ai.mit.edu>
  3875.  
  3876.  
  3877. Volume-Number: Volume 27, Number 52
  3878.  
  3879. From std-unix-request@uunet.UU.NET  Wed Apr  1 21:58:58 1992
  3880. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3881.     (5.61/UUNET-mail-drop) id AA26692; Wed, 1 Apr 92 21:58:58 -0500
  3882. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3883.     (5.61/UUNET-internet-primary) id AA28458; Wed, 1 Apr 92 21:59:05 -0500
  3884. Newsgroups: comp.std.unix
  3885. From: "David J. MacKenzie" <djm@eng.umd.edu>
  3886. Subject: Re: 1003.2a on comments in the shell
  3887. Message-Id: <1992Apr2.024908.27038@uunet.uu.net>
  3888. X-Submissions: std-unix@uunet.uu.net
  3889. Organization: Project GLUE, University of Maryland
  3890. References: <1992Mar30.205758.2699@uunet.uu.net>
  3891. Date: Wed, 1 Apr 1992 05:28:18 GMT
  3892. Reply-To: std-unix@uunet.UU.NET
  3893. To: std-unix@uunet.UU.NET
  3894. Sender: Network News <news@kithrup.com>
  3895. Source-Info:  From (or Sender) name not authenticated.
  3896.  
  3897. Submitted-by: djm@eng.umd.edu (David J. MacKenzie)
  3898.  
  3899. >>The only explicit mention of `#' for the shell in p1003.2a is in the
  3900. >>description of the Vi editing mode.  It's a command to comment-out the
  3901. >>current line (excerpted below).  ...
  3902.  
  3903. > That's disgusting!
  3904. > If 1003.2 is going to break zillions of existing carefuly-written shell
  3905. > scripts, then it ought not to be adopted.
  3906.  
  3907. Don't worry, no shell scripts are in danger (at least for this reason).
  3908.  
  3909. We're talking about 1003.2a, the User Portability Extension, here, not
  3910. the base 1003.2 standard.  1003.2 does specify traditional post-v7
  3911. Bourne behavior for comments in shell scripts.  The question was, does
  3912. 1003.2a specify the same behavior for interactive use.  It appears
  3913. that it does.
  3914. --
  3915. David J. MacKenzie <djm@eng.umd.edu> <djm@ai.mit.edu>
  3916.  
  3917.  
  3918. Volume-Number: Volume 27, Number 53
  3919.  
  3920. From std-unix-request@uunet.UU.NET  Wed Apr  1 21:59:02 1992
  3921. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3922.     (5.61/UUNET-mail-drop) id AA26706; Wed, 1 Apr 92 21:59:02 -0500
  3923. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3924.     (5.61/UUNET-internet-primary) id AA28498; Wed, 1 Apr 92 21:59:09 -0500
  3925. Newsgroups: comp.std.unix
  3926. From: "David J. MacKenzie" <djm@eng.umd.edu>
  3927. Subject: Re: 1003.2a on comments in the shell
  3928. Message-Id: <1992Apr2.024953.27215@uunet.uu.net>
  3929. X-Submissions: std-unix@uunet.uu.net
  3930. Organization: Project GLUE, University of Maryland
  3931. References: <1992Mar30.205758.2699@uunet.uu.net>
  3932. Date: Wed, 1 Apr 1992 05:29:49 GMT
  3933. Reply-To: std-unix@uunet.UU.NET
  3934. To: std-unix@uunet.UU.NET
  3935. Sender: Network News <news@kithrup.com>
  3936. Source-Info:  From (or Sender) name not authenticated.
  3937.  
  3938. Submitted-by: djm@eng.umd.edu (David J. MacKenzie)
  3939.  
  3940. > What is P1003.2a doing specifying the behaviour of vi-mode command line
  3941. > editing in the first place? Is it specifying that "the shell" be ksh?
  3942.  
  3943. There's been an ongoing battle during the drafting process between
  3944. those who want it to specify a Bourn-like shell and those who want a
  3945. Korn-like shell.  The current draft is somewhere in between.
  3946. --
  3947. David J. MacKenzie <djm@eng.umd.edu> <djm@ai.mit.edu>
  3948.  
  3949.  
  3950. Volume-Number: Volume 27, Number 54
  3951.  
  3952. From std-unix-request@uunet.UU.NET  Wed Apr  1 21:59:08 1992
  3953. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  3954.     (5.61/UUNET-mail-drop) id AA26724; Wed, 1 Apr 92 21:59:08 -0500
  3955. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  3956.     (5.61/UUNET-internet-primary) id AA28520; Wed, 1 Apr 92 21:59:14 -0500
  3957. Newsgroups: comp.std.unix
  3958. From: Stephen Walli <stephe@mks.com>
  3959. Subject: Report on IEEE Standards Board, Dec. 1991
  3960. Message-Id: <1992Apr2.025040.27452@uunet.uu.net>
  3961. X-Submissions: std-unix@uunet.uu.net
  3962. Organization: UUNET Communications Services
  3963. Date: Wed, 1 Apr 1992 05:17:10 GMT
  3964. Reply-To: std-unix@uunet.UU.NET
  3965. To: std-unix@uunet.UU.NET
  3966. Sender: Network News <news@kithrup.com>
  3967. Source-Info:  From (or Sender) name not authenticated.
  3968.  
  3969. Submitted-by: stephe@mks.com (Stephen Walli)
  3970.  
  3971.                       USENIX Standards Watchdog Committee
  3972.               Stephen R. Walli <stephe@usenix.org>, Report Editor
  3973.  
  3974.  
  3975.           The IEEE Standards Board
  3976.  
  3977.           An Anonymous Friend  of USENIX  reports on the December 3-5,
  3978.           1991  meeting in New York, NY:
  3979.  
  3980.           [ed. -_- The report writer asked to remain anonymous. Anyone
  3981.           wishing to  send comments  to the writer  may do so  through
  3982.           me.]
  3983.  
  3984.           The IEEE  Standards Board is  the committee responsible  for
  3985.           overseeing all standards related activities within the IEEE.
  3986.           The  IEEE  produces  standards  for  the  entire  electrical
  3987.           engineering spectrum,  not  just the  Computer Society.  The
  3988.           Technical  Committee  on  Operating  Systems  --  Standards
  3989.           Subcommittee  (TCOS-SS),  is   the  IEEE  Computer   Society
  3990.           committee responsible for the POSIX family of standards.
  3991.  
  3992.           As usual, the  December 1991 meetings  of the IEEE Standards
  3993.           Board produced a  plethora of new  Project Approval Requests
  3994.           (PARs) and approved projects, some new rules to apply to the
  3995.           standards  process,   and   one  more   new   Organizational
  3996.           Representative that can ballot POSIX standards.
  3997.  
  3998.           Acknowledgments
  3999.  
  4000.           Perhaps the new  rule that most  impacts the IT community is
  4001.           one  concerning  the   use  of  acknowledgment  sections  in
  4002.           standards.   You've  probably  seen  one of  these  sections
  4003.           before;    they're    the     ones    that    thank     your
  4004.           company/university/organization/mother  for  providing   the
  4005.           means for you  to contribute your thoughts and ideas to that
  4006.           lovely thing known  as the standards  process.  It's usually
  4007.           found in  the  front or  back  of the  standard  in what  we
  4008.           jargon-savvy  folks know  are  informative sections  of  the
  4009.           document, so it's not part of the official standard.  (Don't
  4010.           confuse it with  the foreword or introduction, which discuss
  4011.           the technical and historical development of the standard and
  4012.           list the working group and balloting group.)
  4013.  
  4014.           The IEEE Standards  Board Procedures Committee (whew! that's
  4015.           ProCom for short) felt that the IEEE could be legally liable
  4016.           if the  standards mentioned a  company without first  asking
  4017.           their permission.  A policy was proposed that said a working
  4018.           group could  include  one of these  sections if each  member
  4019.           obtained   written   permission  from   the   companies/etc.
  4020.           involved,  to  be  kept  on  file  with the  IEEE  Standards
  4021.           Department. There are  form letters for  you to follow,  but
  4022.           nonetheless it's an extra step you'll have to take.
  4023.  
  4024.           Of course, the question comes up as to whether you should be
  4025.           doing this work at all.  What if one company says yes and 20
  4026.           say no?  Do  you have an  acknowledgments section that  only
  4027.           lists a  few  companies?  For  a  family of  standards  like
  4028.           POSIX, should some standards have this section and some not?
  4029.           As always, things rapidly get complicated.  Because of this,
  4030.           the POSIX  technical  editors had  a  lengthy discussion  on
  4031.           whether to have  these sections at  all in their  documents.
  4032.  
  4033.           Opinion was  wide-ranging and  varied; the interim  decision
  4034.           was to go to our individual working groups and ask for their
  4035.           opinions.  Based on those discussions, the technical editors
  4036.           will decide whether to keep these sections in the future.
  4037.  
  4038.           The Curse of Acronyms
  4039.  
  4040.           As we  all know, standards-writing  groups have a  seemingly
  4041.           inexhaustible ability to  create acronyms.  Indeed,  after a
  4042.           while  our  conversations   seem  to  consist   entirely  of
  4043.           abbreviations,  and  woe  betide  the  person who  tries  to
  4044.           understand our arcane internal code.
  4045.  
  4046.           Of course, the Standards Board has to do just that when they
  4047.           look  at  our  PARs,  (oops!  that's  Project  Authorization
  4048.           Requests.)  They understandably  get frustrated.  Because of
  4049.           that, the  New  Standards Committee  (NesCom) has said  that
  4050.           they don't  want  to see  incomprehensible  acronyms on  PAR
  4051.           submissions in the future.  The NesCom members come from all
  4052.           societies of the  IEEE, not just  Computer, and many  power-
  4053.           engineering standards  developers  can't begin  to guess  at
  4054.           what an acronym  means that you've used since the first time
  4055.           you touched a keyboard.
  4056.  
  4057.           This means we'll  have to get  used to standards titles that
  4058.           are even longer  than they are now!  When filling out a PAR,
  4059.           you'll have  to remember  to expand acronyms  appropriately.
  4060.           You wouldn't want to have the PAR rejected on these grounds.
  4061.           This subject will  be discussed in  more detail at  the next
  4062.           NesCom meeting.
  4063.  
  4064.           One Man, One Vote
  4065.  
  4066.           Questions have arisen  as to whether  or not members such as
  4067.           Institutional Representatives and  similar reps in the power
  4068.           engineering realm  vote  twice on  a  document, once  as  an
  4069.           individual   and    possibly   again   representing    their
  4070.           organization.   The  Board  agreed  to  appoint  an  ad  hoc
  4071.           committee to look  at the issue  of one man, one vote.  More
  4072.           information should be available from forthcoming meetings.
  4073.  
  4074.           In other IR  related news, SPARC  is now officially approved
  4075.           by the IEEE  Standards Board as  an IR and  has the right to
  4076.           vote on all POSIX documents.
  4077.  
  4078.           [ed. -_-  The  following lists  are  provided, to allow  the
  4079.           reader to appreciate  the full breadth  of control the  IEEE
  4080.           Standards Board has as its mandate. These are still just the
  4081.           Computer Society related  standards.  The reader should note
  4082.           P1279, P1281, and P1282. Andrew Hume regularily warns in his
  4083.           ANSI WORM standards reports that the WORM standards may have
  4084.           a far broader  impact than people think.  Here, in P1282, we
  4085.           even  see  them  ``worming''  their  way into  POSIX.1  (ISO
  4086.           9945-1).]
  4087.  
  4088.           And here's the  information on Review Committee (RevCom) and
  4089.           NesCom Computer Society activity:
  4090.  
  4091.           Approved New Computer Society PARs
  4092.  
  4093.           P1278   (C/SCC)   Standard   for   Information   Technology-
  4094.           Distributed Simulation Applications-Process  and Data Entity
  4095.           Interchange Formats
  4096.  
  4097.           P1279  (C/SCC)  Standard for  Information  Technology-CD-ROM
  4098.           Architectural Profile
  4099.  
  4100.           P1281 (C/SCC) Standard for Information Technology-Use of ISO
  4101.           9660:  1988 System Use Fields
  4102.  
  4103.           P1282   (C/SCC)   Standard   for   Information   Technology-
  4104.           Interchange of ISO 9945-1:1990 Filesystems via the ISO 9660:
  4105.           1988 File Structure
  4106.  
  4107.           P802.1j  (C/TCCC)  Standard  for  Managed  Objects  for  MAC
  4108.           Bridges (Supplement of 802.1D)
  4109.  
  4110.           P802.1k   (C/TCCC)   LAN/MAN  Management   Information   for
  4111.           Monitoring
  4112.           and Event Reporting
  4113.  
  4114.           P802.2C (C/TCCC) PICS  Proforma for LLC Type 1 Operation and
  4115.           LLC Type 2 Operation
  4116.  
  4117.           P802.1D (C/TCCC) Technical and Editorial Corrections to Std.
  4118.           802.1D
  4119.  
  4120.           P802.2f (C/TCCC) Standard for LLC Sublayer Management
  4121.  
  4122.           P802.6k (C/CC) Distributed  Queue Dual Bus  Subnet work of a
  4123.           Metropolitan Area Network, Supplement for MAC Bridging
  4124.  
  4125.           Revised Approved Computer Society PARs
  4126.  
  4127.           P1209 (C/SE)  Recommended  Practice for  the Evaluation  and
  4128.           Selection of CASE Tools
  4129.  
  4130.           P802.1F (C/CC)  Common  Definitions and  Procedures for  802
  4131.           Management Information
  4132.  
  4133.           P1155   (C/MM)   Standard    for   VMEbus   Extensions   for
  4134.           Instrumentation:  VXIbus
  4135.  
  4136.           P1175  (C/SCC)  Trial   Use  Standard  Reference  Model  for
  4137.           Computing System Tool Interconnections
  4138.  
  4139.           P1396 (C/MM) Standard for a Communication Bus (TELECOM Bus):
  4140.           Reference Models
  4141.  
  4142.           Withdrawn Computer Society PARs
  4143.  
  4144.           P1101.5 (C/MM)  Standard  for Mechanical Core  Specification
  4145.           for Microcomputers-Desktop Form Factor
  4146.  
  4147.           Approved New Computer Society Standards
  4148.  
  4149.           610.6  (C/SCC)  Standard   Glossary  of  Computer   Graphics
  4150.           Terminology
  4151.  
  4152.           1029.1  (SCC20  & C/DA)  Standard  for Waveform  and  Vector
  4153.           Exchange (WAVES)
  4154.  
  4155.           1175  (C/SCC)  Trial   Use  Standard  Reference   Model  for
  4156.           Computing System Tool Interconnections
  4157.  
  4158.           P1212  (C/MM) Standard  Control  and Status  Register  (CSR)
  4159.           Architecture for Microcomputer Buses
  4160.  
  4161.           Withdrawn Computer Society Standards
  4162.  
  4163.           IEEE   Std   662-1980,   IEEE  Standards   Terminology   for
  4164.           Semiconductor Memory (ANSI)
  4165.  
  4166.  
  4167. Volume-Number: Volume 27, Number 55
  4168.  
  4169. From std-unix-request@uunet.UU.NET  Wed Apr  1 21:59:17 1992
  4170. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  4171.     (5.61/UUNET-mail-drop) id AA26737; Wed, 1 Apr 92 21:59:17 -0500
  4172. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  4173.     (5.61/UUNET-internet-primary) id AA28575; Wed, 1 Apr 92 21:59:21 -0500
  4174. Newsgroups: comp.std.unix
  4175. From: Stephen Walli <stephe@mks.com>
  4176. Subject: Report on POSIX.2, Jan. 1992
  4177. Message-Id: <1992Apr2.025129.27673@uunet.uu.net>
  4178. X-Submissions: std-unix@uunet.uu.net
  4179. Organization: UUNET Communications Services
  4180. Date: Wed, 1 Apr 1992 05:17:15 GMT
  4181. Reply-To: std-unix@uunet.UU.NET
  4182. To: std-unix@uunet.UU.NET
  4183. Sender: Network News <news@kithrup.com>
  4184. Source-Info:  From (or Sender) name not authenticated.
  4185.  
  4186. Submitted-by: stephe@mks.com (Stephen Walli)
  4187.  
  4188.                       USENIX Standards Watchdog Committee
  4189.                 Stephen Walli <stephe@usenix.org>, Report Editor
  4190.  
  4191.  
  4192.           Report on POSIX.2: Shell and Utilities
  4193.  
  4194.           David Rowley  <david@mks.com> reports  on the January  13-17
  4195.           meeting in Irvine, CA:
  4196.  
  4197.           Summary
  4198.           The end is  in sight.  POSIX.2  (Shell and Utilities)  Draft
  4199.           11.2 closed its recirculation ballot last October 21.  Draft
  4200.           11.3 is due  out any day  now.  A full draft (Draft 12) will
  4201.           be recirculated to  the IEEE working  group before the final
  4202.           standard is  adopted.   POSIX.2a (UPE)  Draft  8 closed  its
  4203.           recirculation  ballot on  January  24.  Both  standards  are
  4204.           expected to be  approved as full-use  IEEE standards at  the
  4205.           September meeting of the IEEE Standards Board.
  4206.  
  4207.           Work on  POSIX.2b continues,  including the contentious  new
  4208.           file format for  PAX and extensions to the POSIX.2 utilities
  4209.           to handle symbolic links.
  4210.  
  4211.           The  first  cut  at test  assertions  for POSIX.2  has  been
  4212.           wrapped up, and assertions for POSIX.2a begun.
  4213.  
  4214.           Background
  4215.  
  4216.           A brief POSIX.2 project description:
  4217.           -- POSIX.2 is  the  base standard  dealing  with the  basic
  4218.             shell programming language and a set of utilities required
  4219.             for the  portability of shell  scripts.  It excludes  most
  4220.             features that  might  be considered interactive.   POSIX.2
  4221.             also  standardizes  command-line and  function  interfaces
  4222.             related  to  certain  POSIX.2  utilities  (e.g.,  popen(),
  4223.             regular expressions,  etc.). This  part of POSIX.2,  which
  4224.             was  developed  first,  is  sometimes  known  as  ``Dot  2
  4225.             Classic.''
  4226.           -- POSIX.2a, the  User Portability Extension  or UPE, is  a
  4227.             supplement to the base standard. It standardizes commands,
  4228.             such as vi,  that might not  appear in shell  scripts, but
  4229.             are important  enough  that users must  learn them on  any
  4230.             real system.  It  is essentially an  interactive standard,
  4231.             and will  eventually  be an optional  chapter to a  future
  4232.             draft of  the  base document.   This  approach allows  the
  4233.             adoption  of  the  UPE  to  trail  Dot 2  Classic  without
  4234.             delaying it.
  4235.             Some utilities have  both interactive and  non-interactive
  4236.             features.  In such  cases, the UPE defines extensions from
  4237.             the   base   POSIX.2    utility.    Features   used   both
  4238.             interactively and  in  scripts tend to  be defined in  the
  4239.             base standard.
  4240.           -- POSIX.2b is  a newly approved  project which will  cover
  4241.             extensions and new  requests from other  groups, such as a
  4242.             new file format for PAX and extensions for symbolic links.
  4243.  
  4244.           Together,  Dot  2  Classic  and the  UPE  will make  up  the
  4245.           International  Standards  Organization's   ISO  9945-2--the
  4246.           second  volume  of   the  proposed  ISO  three-volume  POSIX
  4247.           standard.
  4248.  
  4249.           POSIX.2 Status
  4250.  
  4251.           Hal Jespersen, Chair  of POSIX.2, is about to send out Draft
  4252.           11.3.  This  is  likely the  last ``changes-only'' draft  of
  4253.           POSIX.2.
  4254.  
  4255.           The POSIX.2/D11.2  recirculation  ballot closed October  21,
  4256.           and resolution of ballot objections has completed.
  4257.  
  4258.           Balloting of  Draft  11.2 has  been  held open  pending  the
  4259.           arrival of  ISO  comments.  All changes  for the next  draft
  4260.           (11.3) will be forwarded to ISO through the US TAG.
  4261.  
  4262.           It is expected that a final draft 12 of POSIX.2 will be made
  4263.           ready in time  for the May  WG15 meeting in New Zealand, and
  4264.           should be approved as a Draft International Standard.
  4265.  
  4266.           The technical  content  of the  standard  has more  or  less
  4267.           stabilized.  Most recent changes relate to clarifications in
  4268.           wording.
  4269.  
  4270.           POSIX.2a Status
  4271.  
  4272.           POSIX.2a  is  also  coming down  the  home stretch,  as  the
  4273.           technical content  has  stabilized.  Ballot  resolution  for
  4274.           POSIX.2a (UPE) Draft  8 was completed.  The ballot closed on
  4275.           January  24.   The   next  draft  will  likely  be  a  quick
  4276.           ``changes-only''  recirculation,  labelled  draft  8.1.   It
  4277.           should appear any day now.
  4278.  
  4279.           The ISO ballot  ends in April.   All comments will be rolled
  4280.           into a Draft  9 which will be produced in time to be carried
  4281.           to ISO in May for approval as a Draft International Standard
  4282.           (DIS).
  4283.  
  4284.           Hal Jespersen  expects that both  standards should be  given
  4285.           final full-use IEEE approval at the September meeting of the
  4286.           IEEE Standards Board.
  4287.  
  4288.           Internationalization Inadequacies
  4289.  
  4290.           Randall Howard, President  of MKS, put forward a proposal to
  4291.           the POSIX.2b  working group  to define a  system API to  the
  4292.           internationalization  information  embodied   in  a  POSIX.2
  4293.           locale.   Routines  to  access  collation  elements,  detect
  4294.           membership within  a character class  and extensions to  the
  4295.           strftime() call were  presented.  The group  felt that since
  4296.           it was a system API, not a utility, it rightfully belongs in
  4297.           POSIX.1.  When the  same presentation was  given to POSIX.1,
  4298.           they expressed the  opinion that parts  of the proposal were
  4299.           better  suited  to  the  ANSI  or  ISO C  Standard  efforts.
  4300.           Unfortunately, they  don't  necessarily want  it since  they
  4301.           haven't (yet)  adopted the POSIX.2  definition of a  locale.
  4302.           This  all  demonstrates   that  the  POSIX   process  cannot
  4303.           effectively deal  with  issues that cut  across a number  of
  4304.           working  groups  and/or   standards.   Perhaps  the  Systems
  4305.           Interface Coordination  Committee  (SICC) that has  recently
  4306.           been formed  within  POSIX can  help  address some of  these
  4307.           issues.
  4308.  
  4309.           Comments on ISO 10646
  4310.  
  4311.           The ISO working  group that is responsible for the ISO 10646
  4312.           character  set  standard  (which  now includes  the  Unicode
  4313.           work,) has asked the POSIX.2 working group for their opinion
  4314.           on their current proposal.
  4315.  
  4316.           The working  group  expressed much concern  over the use  of
  4317.           null  octets  within   the  valid  character  codes.   Since
  4318.           computer languages  such  as ``C''  make use  of nulls as  a
  4319.           string termination marker, a lot of existing code would have
  4320.           to be heavily modified in order to support the new standard.
  4321.           The working group  was against the proposal for this reason.
  4322.           Apparently  the  ISO/ANSI  C  working  group  has  expressed
  4323.           similar concerns.
  4324.  
  4325.           Symbolic Links
  4326.  
  4327.           Dawn Burnett from  USL submitted a proposal on extending the
  4328.           POSIX.2 and  POSIX.2a utilities  to support symbolic  links,
  4329.           based on  the  System V  implementation.  The problems  that
  4330.           arise from  symbolic  linked directories  were discussed  at
  4331.           length.  There is nothing more irritating than changing to a
  4332.           directory, printing  the current  working directory only  to
  4333.           find that  you  have been magically  warped to a  completely
  4334.           different spot in  the file system.   A proposal to maintain
  4335.           both physical (``Where  am I'') and virtual (``How did I get
  4336.           here'') paths was  offered.  The text will find its way into
  4337.           the next draft of POSIX.2b for further discussion.
  4338.  
  4339.           Test Methods
  4340.  
  4341.           Real  progress  was   made  completing  the  remaining  test
  4342.           assertions for POSIX.2,  and beginning the  POSIX.2a work. A
  4343.           style guide  for  writing consistent  assertions has yet  to
  4344.           appear, but the  group seems to have found its stride and is
  4345.           working well.
  4346.  
  4347.           Test assertions for the interactive utilities have yet to be
  4348.           tackled, but it is expected that it will not be as difficult
  4349.           as first anticipated.   The assertions for ``vi'', ``talk'',
  4350.           etc will describe (in precise English) what action must take
  4351.           place  upon  the  stated  input.   The process  whereby  the
  4352.           results are  verified  will be  left  up to  the test  suite
  4353.           implementor.
  4354.  
  4355.           New PAX Archive Format
  4356.  
  4357.           Work continues on  the new PAX  archive format.  A consensus
  4358.           is  (slowly)  starting  to  brew.  The  issue  of  supported
  4359.           filename code sets  is a thorny  one, especially since POSIX
  4360.           has not addressed any code set issues in a general way (such
  4361.           as adopting the X/Open iconv utility and API).
  4362.  
  4363.           The problems stem  from wanting to use the format to address
  4364.           both universal  archive  transportability as  well as  local
  4365.           file system  backup  and restore.   One  concentrating on  a
  4366.           standard common ground, the other wanting the flexibility of
  4367.           representing the full local filename character set.  This is
  4368.           the most  contentious  area of  the  format, and there  will
  4369.           likely be much wailing and gnashing of teeth before the dust
  4370.           settles.
  4371.  
  4372.           If you have  any interest in  this area, the  group would be
  4373.           pleased to hear from you.
  4374.  
  4375.  
  4376. Volume-Number: Volume 27, Number 56
  4377.  
  4378. From std-unix-request@uunet.UU.NET  Wed Apr  1 21:59:24 1992
  4379. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  4380.     (5.61/UUNET-mail-drop) id AA26745; Wed, 1 Apr 92 21:59:24 -0500
  4381. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  4382.     (5.61/UUNET-internet-primary) id AA28627; Wed, 1 Apr 92 21:59:30 -0500
  4383. Newsgroups: comp.std.unix
  4384. From: Stephen Walli <stephe@mks.com>
  4385. Subject: Report on POSIX.6, Jan. 1992
  4386. Message-Id: <1992Apr2.025223.27860@uunet.uu.net>
  4387. X-Submissions: std-unix@uunet.uu.net
  4388. Organization: UUNET Communications Services
  4389. Date: Wed, 1 Apr 1992 05:17:16 GMT
  4390. Reply-To: std-unix@uunet.UU.NET
  4391. To: std-unix@uunet.UU.NET
  4392. Sender: Network News <news@kithrup.com>
  4393. Source-Info:  From (or Sender) name not authenticated.
  4394.  
  4395. Submitted-by: stephe@mks.com (Stephen Walli)
  4396.  
  4397.                       USENIX Standards Watchdog Committee
  4398.               Stephen R. Walli <stephe@usenix.org>, Report Editor
  4399.  
  4400.  
  4401.           POSIX.6: Security Extensions
  4402.  
  4403.           Charisse  Castagnoli  <charisse@sware.com>  reports  on  the
  4404.           January 13-17, 1992 meeting in Irvine, CA:
  4405.  
  4406.           Summary of the POSIX meeting in Irvine
  4407.  
  4408.           This was the  first meeting of  the POSIX.6 group  since the
  4409.           ballot closed  on  January 6,  1992.   Of the  232  official
  4410.           ballot members, 181  members responded.  The response equals
  4411.           78 %of  the  ballot pool.   (A  minimum of  75% response  is
  4412.           required by IEEE for a ballot to be considered valid.)
  4413.  
  4414.           The 181 returned ballots were divided as follows:
  4415.  
  4416.                       Affirmative  Negative     Abstain
  4417.                           69          61          51
  4418.                           53%        47%     <don't count>
  4419.  
  4420.           In  order  for  a  ballot  to  pass,  there  must be  a  75%
  4421.           affirmative ballot.  One  would think this  means 75% of the
  4422.           responses must  be  affirmative, but this  is not the  case.
  4423.           Only 75% of the non-abstaining votes need to be affirmative.
  4424.           Taken to  an  extreme, this  means  that regardless  of  the
  4425.           ballot pool  size,  if 3  people  vote affirmative, 1  votes
  4426.           negative and the  rest abstain, the  initiative passes.  The
  4427.           moral of the story is:  abstain only as a last resort, there
  4428.           may be deleterious side effects.
  4429.  
  4430.           The POSIX.6 committee is now divided into 3 groups:
  4431.           -- test assertions,
  4432.           -- new projects,
  4433.           -- ballot technical reviewers.
  4434.  
  4435.           The  test  assertions   group,  led  by   David  Rogers,  is
  4436.           developing the companion  document of test assertions.  This
  4437.           is required to actually complete the ballot process.
  4438.  
  4439.           The  new   projects   group  is   working  on  new   Project
  4440.           Authorization Requests (PARs).  Three PARs were presented:
  4441.           -- one PAR for Identification and Authentication,
  4442.           -- one for data interchange,
  4443.           -- and one for terminal I/O.
  4444.  
  4445.           In addition,  PARs  were prepared  for the existing  POSIX.6
  4446.           functions.  The current  PAR for the  existing functionality
  4447.           will  eventually  be  transformed  into  POSIX.6a  (Security
  4448.           Extensions  to  System  Interfaces) and  POSIX.6b  (Security
  4449.           Extensions to  System Utilities and  Shell).  [ed. -_-  PARs
  4450.           are essentially  administrative  project control  documents,
  4451.           but  are  becoming  administrative  nightmares in  the  IEEE
  4452.           standards development process.]
  4453.  
  4454.           The  ballot  resolution  group  began reviewing  the  ballot
  4455.           objections.   A  preliminary  analysis  indicated  that  one
  4456.           common objection was  lack of consistency within the ballot.
  4457.           Requests  for  consistency   in  function  naming,   calling
  4458.           parameters,  data  types  and  return codes  were  frequent.
  4459.           After careful reflection, the ballot resolution group agreed
  4460.           this was a reasonable request and began to work out a set of
  4461.           guidelines to ensure consistency throughout the draft.
  4462.  
  4463.           Highlights  of  the   ballot  resolution  group  discussions
  4464.           include:
  4465.           -- Should ``set''  and ``get'' be  used for function  names
  4466.             instead of ``read'' and ``write?''
  4467.           -- Should data  types be contiguous  in memory?  (That  is,
  4468.             can a data object be copied with a bcopy().)
  4469.           -- Should functions manage  data storage and  allocation or
  4470.             should the programmer manage them?
  4471.  
  4472.           After arduous  negotiations,  the group  developed a set  of
  4473.           guidelines, that resolved  many issues that have plagued the
  4474.           drafts for years.  The ballot resolution group will now join
  4475.           the State  Department to support  peace negotiations in  the
  4476.           Middle-East.
  4477.  
  4478.           The  ballot  resolution   group  tested  the  guidelines  by
  4479.           applying them to each of the primary functions in the draft.
  4480.           These functional  areas  are privilege mechanism,  mandatory
  4481.           access control (including  information labeling), and access
  4482.           control  lists.   The  auditing  functions were  granted  an
  4483.           exemption  from  this  exercise,  because  they  were  being
  4484.           reviewed  in  light  of the  new  data type  guidelines  and
  4485.           substantial interface modifications were expected.
  4486.  
  4487.           Chris  Hughes  presented   some  options  for  new  auditing
  4488.           interfaces.  The existing  interfaces, in addition  to being
  4489.           inconsistent,  lack  good   support  for  application  level
  4490.           auditing.   Additional  work   is  needed  on  the  auditing
  4491.           functions, and will be presented at the next POSIX meeting.
  4492.  
  4493.           At the end of the meeting, we all agreed to try and complete
  4494.           the interface  changes necessary to  bring each function  in
  4495.           line with the  new guidelines.  We also agreed to resolve as
  4496.           many ballot objections as possible before the April meeting.
  4497.  
  4498.  
  4499. Volume-Number: Volume 27, Number 57
  4500.  
  4501. From std-unix-request@uunet.UU.NET  Wed Apr  1 21:59:31 1992
  4502. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  4503.     (5.61/UUNET-mail-drop) id AA26759; Wed, 1 Apr 92 21:59:31 -0500
  4504. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  4505.     (5.61/UUNET-internet-primary) id AA28652; Wed, 1 Apr 92 21:59:36 -0500
  4506. Newsgroups: comp.std.unix
  4507. From: Stephen Walli <stephe@mks.com>
  4508. Subject: Report on POSIX.0, Jan. 1992
  4509. Message-Id: <1992Apr2.025310.28083@uunet.uu.net>
  4510. X-Submissions: std-unix@uunet.uu.net
  4511. Organization: UUNET Communications Services
  4512. Date: Wed, 1 Apr 1992 05:17:14 GMT
  4513. Reply-To: std-unix@uunet.UU.NET
  4514. To: std-unix@uunet.UU.NET
  4515. Sender: Network News <news@kithrup.com>
  4516. Source-Info:  From (or Sender) name not authenticated.
  4517.  
  4518. Submitted-by: stephe@mks.com (Stephen Walli)
  4519.  
  4520.                       USENIX Standards Watchdog Committee
  4521.               Stephen R. Walli <stephe@usenix.org>, Report Editor
  4522.  
  4523.  
  4524.           POSIX.0: The Guide to Open Systems
  4525.  
  4526.           Kevin  Lewis  <klewis@gucci.enet.dec.com>   reports  on  the
  4527.           January 13-17, 1992 meeting in Irvine, CA:
  4528.  
  4529.           The  POSIX.0 working  group  adjourned the  October  meeting
  4530.           wondering what the mock ballot would yield.  This ponderance
  4531.           was focused not  only on the size of the return, but also on
  4532.           whether there were  any hidden or significant issues lurking
  4533.           in the darkness.
  4534.  
  4535.           Twenty six mock  ballot responses were received: 13 users, 9
  4536.           producers,  and  4   general  interest  participants.   This
  4537.           reflects  a   healthy   balance.   In   total,  there   were
  4538.           approximately 760 objections/comments.  Some ballots covered
  4539.           specific sections, while others addressed the entire guide.
  4540.           It appears that  the issue of ``public specifications'' that
  4541.           has been  lurking  around in other  venues has arisen  here.
  4542.           For those of  you not familiar  with this, I  can not do  it
  4543.           justice here.  Suffice  it to say  that it involves  the use
  4544.           within public  procurements of  specifications that are  not
  4545.           currently in  the  formal standards  process but which  have
  4546.           widespread industry use and acceptance.
  4547.  
  4548.           POSIX.0 feels that  such specifications are acceptable under
  4549.           specific conditions  which include consensus,  availability,
  4550.           lack of encumbrances,  and proper documentation.   (There is
  4551.           much, much more  to this, so get a copy of the guide or call
  4552.           someone in POSIX.0 if you are interested or concerned.)
  4553.  
  4554.           The decision  was  made in  January to  move forward on  the
  4555.           formal ballot.  POSIX.0  has notified the  IEEE and a letter
  4556.           forming the formal  ballot group will  go out in  the March-
  4557.           April time frame.  The goal is to begin the formal ballot in
  4558.           July 92.  In  parallel, POSIX.0 will be submitting the guide
  4559.           to the international  standards community in order to obtain
  4560.           review and comment  and to prepare  the way for it as an ISO
  4561.           Technical Report.
  4562.  
  4563.  
  4564. Volume-Number: Volume 27, Number 58
  4565.  
  4566. From std-unix-request@uunet.UU.NET  Wed Apr  1 22:03:52 1992
  4567. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  4568.     (5.61/UUNET-mail-drop) id AA26879; Wed, 1 Apr 92 22:03:52 -0500
  4569. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  4570.     (5.61/UUNET-internet-primary) id AA29480; Wed, 1 Apr 92 22:03:57 -0500
  4571. Newsgroups: comp.std.unix
  4572. From: Stephen Walli <stephe@mks.com>
  4573. Subject: Report on POSIX.3, Jan. 1992
  4574. Message-Id: <1992Apr2.025344.28220@uunet.uu.net>
  4575. X-Submissions: std-unix@uunet.uu.net
  4576. Organization: UUNET Communications Services
  4577. Date: Wed, 1 Apr 1992 05:17:16 GMT
  4578. Reply-To: std-unix@uunet.UU.NET
  4579. To: std-unix@uunet.UU.NET
  4580. Sender: Network News <news@kithrup.com>
  4581. Source-Info:  From (or Sender) name not authenticated.
  4582.  
  4583. Submitted-by: stephe@mks.com (Stephen Walli)
  4584.  
  4585.                       USENIX Standards Watchdog Committee
  4586.               Stephen R. Walli <stephe@usenix.org>, Report Editor
  4587.  
  4588.  
  4589.           Report on POSIX.3: Test Methods and Conformance
  4590.  
  4591.           Andrew  Twigger  <att@root.co.uk>  reports  on  the  January
  4592.           13-17, 1992 meeting in Irvine, CA:
  4593.  
  4594.           SCCT Matters
  4595.  
  4596.           The Steering  Committee  on Conformance  Testing (SCCT)  met
  4597.           three times during  the week and  discussed a broad range of
  4598.           testing  related issues.  The  major issues  centred  around
  4599.           fitting  the  test  methods  into  the  document  structure,
  4600.           dealing with options in ``base'' standards, and test methods
  4601.           for profiles.
  4602.  
  4603.           The higher level  of document structure  seems to have  been
  4604.           resolved by  introducing  a parallel  set of documents  (and
  4605.           therefore project requests,  or PARs) to the base standards.
  4606.           The test methods  documents will be  numbered by adding 1000
  4607.           to  the   base  standard   number,  i.e.  POSIX.6   Security
  4608.           Extensions (P1003.6)  will have test  methods in a  document
  4609.           numbered  P2003.6.   The   IEEE  would   then  resolve   any
  4610.           accompanying publication issues.
  4611.  
  4612.           The more granular issue of how to write assertions which can
  4613.           be easily  merged  along with  the  base standard  was  also
  4614.           briefly discussed, but not yet concluded. The integration of
  4615.           base standards (POSIX.1,  POSIX.4, POSIX.6, etc.)  is one of
  4616.           the  major  problems  facing TCOS  at  the moment,  but  the
  4617.           solution seems as far away as ever. (The Technical Committee
  4618.           on Operating Systems -- Standards Subcommittee, TCOS-SS, is
  4619.           the  IEEE  Computer Society  TC  responsible for  the  POSIX
  4620.           standards.)
  4621.  
  4622.           From the  test  methods perspective, integrating  assertions
  4623.           for  a   pervasive  interface   like  open()  introduces   a
  4624.           considerable problem in  defining which assertions relate to
  4625.           which base standard options. While solutions can be produced
  4626.           easily, these are generally inelegant.
  4627.  
  4628.           The options issue,  which was left  over from the Parsippany
  4629.           meeting  was  re-addressed  with  some  further  input  from
  4630.           POSIX.1. The  problem  may not be  as serious as  previously
  4631.           thought and  many  of the  issue can  be resolved with  some
  4632.           minor  changes  to  POSIX.3.1  (POSIX.1 Test  Methods).  The
  4633.           remaining   ones  can   be   resolved  by   introducing   an
  4634.           announcement  mechanism,  which  most  test suites  have  to
  4635.           provide,  allowing   the   test  suite   to  determine   the
  4636.           implementation's option setting.
  4637.  
  4638.           The SCCT reviewed the meaning of profile conformance and the
  4639.           use of conformance  statements in profiles. They agreed that
  4640.           profile conformance statements should refer back to those in
  4641.           the base standards  and should be  validated by reference to
  4642.           the test  methods for the  base standards, where  available,
  4643.           plus the specific test methods for the ``mortar'' defined in
  4644.           the profile.  (The  Profiles Steering Committee  is reaching
  4645.           agreement on  the rules for  subsetting base standards,  and
  4646.           how additional behaviour may be thought of as the ``mortar''
  4647.           binding the standards together.)
  4648.  
  4649.           Software Testing Environment BOF
  4650.  
  4651.           On Monday  evening BSI  (the British Standards  Institution)
  4652.           and  Mindcraft  called  a  Birds-of-a-Feather  gathering  to
  4653.           explain  Software  Testing  International and  the  Software
  4654.           Testing Environment  (STE).  Software Testing  International
  4655.           would be a  non-profit organisation set up to administer the
  4656.           development of  test suites for  POSIX and other  standards.
  4657.           Most of the  attendees seemed reticent  in there approval of
  4658.           the  scheme,  particularly   when  it  became  evident  that
  4659.           Mindcraft   would  be   the   sole  test   suite   authoring
  4660.           organisation with  a  seat on the  Board. Comments from  the
  4661.           presenters that ``POSIX  testing is just  starting to become
  4662.           serious''  were  also  not  particularly well  received.  It
  4663.           seemed clear  that  both structural  and perceptual  changes
  4664.           would be necessary  before the proposed scheme could make an
  4665.           impact in the POSIX testing arena.
  4666.  
  4667.           The actual STE  introduces an additional API layer on top of
  4668.           the  current  Test   Environment  Toolkit  (TET),  a  freely
  4669.           available testing  harness created  jointly by X/Open,  Unix
  4670.           International, and  the  Open Software  Foundation.  Initial
  4671.           impressions were that  the main purpose  of this layer is to
  4672.           allow Mindcraft's CTS  based test suites  to execute in  the
  4673.           TET environment.  (NIST is currently  supporting the TET  as
  4674.           their testing methodology of choice.)
  4675.  
  4676.           Mindcraft  promised  to  make the  specifications  available
  4677.           shortly and to  be providing an implementation at the end of
  4678.           quarter two.  The  testing community  will  spend some  time
  4679.           reviewing  the   value   of  these   extensions,  but   with
  4680.           significant aspects like  distributed testing omitted it may
  4681.           not capture many peoples imagination.
  4682.           POSIX.3
  4683.  
  4684.           The POSIX.3 working group continued in there relentless task
  4685.           of writing and  reviewing assertions for  the POSIX.2 (Shell
  4686.           and Utilities) standard. The latest draft (POSIX.3.2/D7) has
  4687.           been circulated for  review and comment,  though no comments
  4688.           have yet been received.  At the end of the Irvine meeting it
  4689.           was expected  that  there would be  no significant parts  of
  4690.           POSIX.2 that  were unaddressed by  test methods, except  its
  4691.           internationalisation aspects.   The working group  commenced
  4692.           the specification of test methods for POSIX.2a (UPE) towards
  4693.           the end of the meeting.
  4694.  
  4695.           Other working groups  were also developing  test methods for
  4696.           their  standards  with progress  being  made by  (at  least)
  4697.           POSIX.6, POSIX.8,  POSIX.12,  1224 and  POSIX.17 as well  as
  4698.           some of  the  profile groups. In  general these groups  were
  4699.           developing a  reasonable  understanding of  the task  facing
  4700.           them, and  in  some cases  good  quality test  methods  have
  4701.           already been produced.
  4702.  
  4703.           The  question  of  language  independent  test  methods  was
  4704.           discussed in  the  POSIX.1 forum,  though other groups  (for
  4705.           example 1224)  have  also made  progress  in this area.  The
  4706.           outcome of  the  POSIX.1 discussion  was  an estimate  by  a
  4707.           prospective contractor to  undertake 2,000 or  more hours of
  4708.           work to  produce  LIS test methods  for POSIX.1. This  looks
  4709.           like  an  exceedingly  high estimate  and  I would  be  very
  4710.           surprised if TCOS followed it up!
  4711.  
  4712.  
  4713. Volume-Number: Volume 27, Number 59
  4714.  
  4715. From std-unix-request@uunet.UU.NET  Wed Apr  1 22:03:58 1992
  4716. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  4717.     (5.61/UUNET-mail-drop) id AA26894; Wed, 1 Apr 92 22:03:58 -0500
  4718. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  4719.     (5.61/UUNET-internet-primary) id AA29500; Wed, 1 Apr 92 22:04:04 -0500
  4720. Newsgroups: comp.std.unix
  4721. From: Stephen Walli <stephe@mks.com>
  4722. Subject: Report on POSIX.14, Jan. 1992
  4723. Message-Id: <1992Apr2.025424.28370@uunet.uu.net>
  4724. X-Submissions: std-unix@uunet.uu.net
  4725. Organization: UUNET Communications Services
  4726. Date: Wed, 1 Apr 1992 05:17:17 GMT
  4727. Reply-To: std-unix@uunet.UU.NET
  4728. To: std-unix@uunet.UU.NET
  4729. Sender: Network News <news@kithrup.com>
  4730. Source-Info:  From (or Sender) name not authenticated.
  4731.  
  4732. Submitted-by: stephe@mks.com (Stephen Walli)
  4733.  
  4734.                       USENIX Standards Watchdog Committee
  4735.               Stephen R. Walli <stephe@usenix.org>, Report Editor
  4736.  
  4737.  
  4738.           POSIX.14: Multiprocessor Profile
  4739.  
  4740.           Rick Greer <rick@ivy.isc.com>  reports on the January 13-17,
  4741.           1992 meeting in Irvine, CA:
  4742.  
  4743.           The multiprocessor working group plans to submit their draft
  4744.           profile to a mock ballot after the April 1992 meeting.  Much
  4745.           of  the  January  meeting  was  spent dealing  with  various
  4746.           trivialities  in  the  draft  in  anticipation of  the  mock
  4747.           ballot.  We  did,  however, encounter  one major issue  that
  4748.           could  prevent  the  draft  profile  from  ever  becoming  a
  4749.           standard.  It  seems  that a draft  profile cannot become  a
  4750.           ``POSIX Standard Profile''  if it references documents which
  4751.           are  not  themselves   official  standards  endorsed   by  a
  4752.           ``recognized  accrediting   body''.    The  POSIX.14   draft
  4753.           references  both  the   POSIX.4  (Real-time)  and   POSIX.4a
  4754.           (Threads) drafts,  as  well as some  ongoing ANSI X3H5  work
  4755.           defining parallel language  facilities.  It cannot  become a
  4756.           standard profile until  all of these  make their way through
  4757.           the appropriate standardization mill.
  4758.  
  4759.           The POSIX.14  profile  is fairly  simple,  and likely to  be
  4760.           ready for  balloting long  before its antecedent  documents.
  4761.           This forces the  POSIX.14 working group into one of a number
  4762.           of possible holding actions:
  4763.  
  4764.           1. Hold up balloting  the POSIX.14 profile  until all of the
  4765.              referenced documents become  standards.  This will  leave
  4766.              the working group  with very little to do, except perhaps
  4767.              to  work  with  the  other groups  to  try and  speed  up
  4768.              acceptance of  their  work.  Since  most of the  POSIX.14
  4769.              working group are  refugees of the POSIX.4a threads wars,
  4770.              there is very  little enthusiasm within POSIX.14 for this
  4771.              approach.
  4772.  
  4773.           2. Go  ahead  and ballot  the  POSIX.14 profile,  but  don't
  4774.              submit it to  the IEEE Standards Board for approval until
  4775.              the referenced  documents  become standards.  This  gives
  4776.              the working  group  something to  do  over the  next  few
  4777.              months (i.e,  work on ballot  resolutions).  In the  long
  4778.              run it will  only delay the inevitable:  We are likely to
  4779.              run  out  of  ballot  objections  long before  the  other
  4780.              documents become standards.
  4781.  
  4782.           3. There  are  a   number  of  ``missing  interfaces''  that
  4783.              POSIX.14 would like  to see added  to POSIX.1 and POSIX.2
  4784.              but, being a  profile group, is  unable to specify.  What
  4785.              we can  do  is to  recommend  to other  groups that  they
  4786.              incorporate these interfaces  into subsequent versions of
  4787.              their   documents   to  better   support   multiprocessor
  4788.              operation.  The general  feeling within POSIX.14  is that
  4789.              if we do  a thorough job of presenting well defined, well
  4790.              rationalized,  multi-  processor  interfaces,  the  other
  4791.              working groups should  pick them up  with little argument
  4792.              (ha!).  While waiting  for the draft documents referenced
  4793.              by the POSIX.14 profile to become standards, the POSIX.14
  4794.              working group could  devote some effort to defining these
  4795.              missing interfaces.
  4796.  
  4797.           We pretty much  decided to go  with holding action  number 3
  4798.           (primarily because  it's more  fun than items  1 or 2),  but
  4799.           this course of  action presents problems  of its own.  If we
  4800.           wish to include  the missing interfaces into the profile, we
  4801.           will have to wait for them to become officially adopted into
  4802.           POSIX.1 and POSIX.2.   This would, of  course, put us  right
  4803.           back where we  started:  Waiting for referenced documents to
  4804.           become standards before the profile itself can be finished.
  4805.  
  4806.           One  way out  of  this dilemma  is  to include  the  missing
  4807.           interfaces in an  appendix to the  profile itself. Once  the
  4808.           interfaces have become  recognized standards, we can include
  4809.           them  in the  normative  text in  a  later revision  of  the
  4810.           profile.
  4811.  
  4812.  
  4813. Volume-Number: Volume 27, Number 60
  4814.  
  4815. From std-unix-request@uunet.UU.NET  Wed Apr  1 22:04:03 1992
  4816. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  4817.     (5.61/UUNET-mail-drop) id AA26908; Wed, 1 Apr 92 22:04:03 -0500
  4818. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  4819.     (5.61/UUNET-internet-primary) id AA29555; Wed, 1 Apr 92 22:04:10 -0500
  4820. Newsgroups: comp.std.unix
  4821. From: Stephen Walli <stephe@mks.com>
  4822. Subject: Report on POSIX Dist. Security Group, Jan. 1992
  4823. Message-Id: <1992Apr2.025507.28513@uunet.uu.net>
  4824. X-Submissions: std-unix@uunet.uu.net
  4825. Organization: UUNET Communications Services
  4826. Date: Wed, 1 Apr 1992 05:17:19 GMT
  4827. Reply-To: std-unix@uunet.UU.NET
  4828. To: std-unix@uunet.UU.NET
  4829. Sender: Network News <news@kithrup.com>
  4830. Source-Info:  From (or Sender) name not authenticated.
  4831.  
  4832. Submitted-by: stephe@mks.com (Stephen Walli)
  4833.  
  4834.                       USENIX Standards Watchdog Committee
  4835.                 Stephen Walli <stephe@usenix.org>, Report Editor
  4836.  
  4837.  
  4838.           Report on the POSIX Study Group on Distributed Security
  4839.  
  4840.           Laura Micks <uunet!aixsm!micks>  reports on the  January 15,
  4841.           1992 meeting in Irvine, CA:
  4842.  
  4843.           A study group has formed to investigate the feasibility of a
  4844.           project request (PAR) for Distributed Security.
  4845.  
  4846.           One of the  major topics raised  at the Distributed Services
  4847.           Steering Committee (DSSC)  was the problem  of Security in a
  4848.           Distributed environment.  This issue is not addressed by the
  4849.           Security working  group  (POSIX.6), nor  any of the  working
  4850.           groups under the DSSC.
  4851.  
  4852.           A  meeting  was  scheduled  for  all interested  parties  to
  4853.           discuss future  directions  in this  area. Approximately  20
  4854.           people attended and  the application was made to be approved
  4855.           as a Study  Group.  If approved, a Study Group can be funded
  4856.           (from  a  logistics  point  of  view)  to meet  for  several
  4857.           meetings without an  official PAR in place.  The group plans
  4858.           to meet for an entire week next meeting cycle.
  4859.  
  4860.           Most of  the  attendees were from  the Security and  Systems
  4861.           Management  groups.   Several  people attended  for  general
  4862.           interest.  It took the group quite some time to get rolling.
  4863.           There seemed  to be 2  camps:  one that  wanted to define  a
  4864.           conceptual model, identify  services required, etc., and the
  4865.           other that wanted  to pin down the existing implementations,
  4866.           choose one and tweek it where necessary.
  4867.  
  4868.           A PAR was  actually drafted in October 1991 by Data Logic on
  4869.           behalf  of  Petr   Janecek  of  X/Open.   The  PAR  was  not
  4870.           officially  submitted   to   the  POSIX  Sponsor   Executive
  4871.           Committee, probably  due  to potential  lack of support  and
  4872.           sponsorship within the  POSIX community.  The  draft of this
  4873.           PAR was copied and distributed to the study group.
  4874.  
  4875.           Known existing  projects  and organizations working  similar
  4876.           efforts were identified.   The known models  identified were
  4877.           as follows:
  4878.  
  4879.           -- Open   Software   Foundation's   Distributed   Computing
  4880.             Environment (DCE)
  4881.           -- NIS (Sun)
  4882.           -- ECMA TC46 Technical Committee on Security Framework
  4883.           -- ISO  7498-2  Security  Addendum  covering  Architectural
  4884.             Framework/Security Svcs
  4885.           -- The Andrew File System (AFS)
  4886.           -- Project Athena
  4887.           -- GSSAPI - A generic security API from DEC
  4888.           -- Project MAXSIX
  4889.           -- DNSIX - (Mitre)
  4890.           -- Netware
  4891.           -- GASSP  (Generally Accepted Security System Principles)
  4892.           -- U.S. Government OSI Profile (GOSIP)
  4893.  
  4894.           We  decided  to  further  the  study  by arranging  as  many
  4895.           presentations as feasible  from the list above for the April
  4896.           meeting.   The   meeting   agenda  will   be  to  hear   the
  4897.           architectural  presentations  on  security  models,  and  to
  4898.           determine  selection  requirements  for base  documents.   A
  4899.           thorough evaluation will be made at the July meeting.
  4900.  
  4901.           It is premature  to assess the viability of this study group
  4902.           becoming an actual POSIX committee.  The initial meeting was
  4903.           somewhat disorganized but  in all fairness, there was little
  4904.           or no  advance  notice of  this  group's meeting, hence  the
  4905.           attendees were  unprepared.   Given the  sensitivity of  the
  4906.           subject and  the obvious differences  of opinions raised  at
  4907.           the January  meeting,  I don't expect  that the exercise  of
  4908.           selecting a particular  model to be  used as a base document
  4909.           will be trivial.
  4910.  
  4911.           The next meeting  will be held  in conjunction with the next
  4912.           IEEE POSIX working group meetings:
  4913.           April 6-10, 1992,
  4914.           The Doubletree Dallas at Lincoln Centre,
  4915.           Dallas, TX.
  4916.  
  4917.  
  4918. Volume-Number: Volume 27, Number 61
  4919.  
  4920. From std-unix-request@uunet.UU.NET  Wed Apr  1 22:04:10 1992
  4921. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  4922.     (5.61/UUNET-mail-drop) id AA26919; Wed, 1 Apr 92 22:04:10 -0500
  4923. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  4924.     (5.61/UUNET-internet-primary) id AA29576; Wed, 1 Apr 92 22:04:16 -0500
  4925. Newsgroups: comp.std.unix
  4926. From: Stephen Walli <stephe@mks.com>
  4927. Subject: Report on POSIX.17, Jan. 1992
  4928. Message-Id: <1992Apr2.025550.28681@uunet.uu.net>
  4929. X-Submissions: std-unix@uunet.uu.net
  4930. Organization: UUNET Communications Services
  4931. Date: Wed, 1 Apr 1992 05:17:18 GMT
  4932. Reply-To: std-unix@uunet.UU.NET
  4933. To: std-unix@uunet.UU.NET
  4934. Sender: Network News <news@kithrup.com>
  4935. Source-Info:  From (or Sender) name not authenticated.
  4936.  
  4937. Submitted-by: stephe@mks.com (Stephen Walli)
  4938.  
  4939.                       USENIX Standards Watchdog Committee
  4940.               Stephen R. Walli <stephe@usenix.org>, Report Editor
  4941.  
  4942.           Report on POSIX.17 - Directory Services API
  4943.  
  4944.           Mark Hazzard <markh@rsvl.unisys.com>  reports on the January
  4945.           13-17, 1992 meeting in Irvine, California:
  4946.  
  4947.           Summary
  4948.  
  4949.           Once again, the  POSIX.17 group made  solid progress between
  4950.           meetings, completing  all  major homework  assignments.  The
  4951.           week  in  Irvine  was a  busy  one.  The  Project  Managment
  4952.           Committee (PMC) audited  POSIX.17 and gave the group a clean
  4953.           bill of health.   We also met  with POSIX.12 furthering  our
  4954.           discussion on a  simplified API to  the directory.  Our Mock
  4955.           ballot input on the networking section of the Guide, POSIX.0
  4956.           Draft 14, were  reviewed with POSIX.0, with the promise that
  4957.           they will  be  reflected in  the  next draft.  We  completed
  4958.           processing input from  our Mock Ballot of POSIX.17 Draft 2.0
  4959.           and began  drafting  responses to  our  reviewers.  We  also
  4960.           identified work items and continued planning for an official
  4961.           IEEE ballot which begins April 7, 1992.
  4962.  
  4963.           Introduction
  4964.  
  4965.           The POSIX.17  group  is generating a  user to directory  API
  4966.           (e.g. an  API  to an  X.500 Directory  User Agent).  We  are
  4967.           using  the  joint   XAPIA  --  X/Open   Directory  Services
  4968.           specification (XDS) as  a basis for  work. XDS is  an object
  4969.           oriented  interface  and   requires  a  companion  document,
  4970.           X/Open's Object  Management  specification (XOM) for  object
  4971.           management.
  4972.  
  4973.           XOM   is   a    stand-alone   specification   with   general
  4974.           applicability beyond the API to directory services.  It will
  4975.           also be used by IEEE P1224.1 (X.400 API), and possibly other
  4976.           POSIX groups, and  is being standardized  by P1224.  Draft 4
  4977.           of P1224 has already entered IEEE ballot.
  4978.  
  4979.           POSIX.17 is one  of five "networking"  groups that currently
  4980.           make up  POSIX  Distributed Services  and as such,  POSIX.17
  4981.           comes under the purview of the Distributed Services Steering
  4982.           Committee (DSSC).
  4983.  
  4984.           Status
  4985.  
  4986.           The group chair  was unable to attend the meeting in Irvine,
  4987.           CA, so yours  truely once again assumed the duties of chair.
  4988.           There has  been  a low  grumble  about the  ever  increasing
  4989.           overhead associated with  TCOS/POSIX working groups, and now
  4990.           I know  why.  A Project  Management  Committee audit  Sunday
  4991.           morning, 2  Sponsor  Executive Committee  (SEC) meetings,  2
  4992.           Systems Interface Co-ordination Committee (SICC) meetings, 2
  4993.           Distributed Systems  Steering  Committee (DSSC) meetings,  2
  4994.           Distributed Systems (DS)  Plenaries, a Logistics  meeting, a
  4995.           Distributed Security  study and  (I almost forgot)  POSIX.17
  4996.           working  group  meetings  made  for  a  noticeable  lack  of
  4997.           ``spare'' time.
  4998.  
  4999.           Commitment within the  group remains strong,  with all other
  5000.           core  members  attending,  and completing  their  "homework"
  5001.           assignments.
  5002.  
  5003.           The TCOS Project  Management Committee held  the first audit
  5004.           of  POSIX.17  on   Sunday  morning.   The   PMC  recommended
  5005.           continued sponsorship of  the work, splitting  the work into
  5006.           two projects, increasing  the size of  the working group for
  5007.           ballot resolution and bringing our Issues Log current.
  5008.  
  5009.           During the week, the group completed processing the comments
  5010.           received from  our  Mock ballot. We  began to draft  written
  5011.           responses which will  be sent to all who took time to review
  5012.           the draft  and provide us  with comments and/or  objections.
  5013.           Several of the  comments/objections resulted in improvements
  5014.           to the specification  and will be incorporated into the next
  5015.           draft (3.0).  This  will be the  draft that goes directly to
  5016.           IEEE ballot April 7th.
  5017.  
  5018.           The  Technical  Editor  completed the  Language  Independent
  5019.           Specification (LIS) and  a first cut  at test assertions  as
  5020.           well.  (X/Open followed  through with their  promise to fund
  5021.           our technical editor  to write the  assertions for POSIX.17.
  5022.           This made sense  in that X/Open needs to have assertions for
  5023.           XDS.) The test assertions were reviewed by a consultant from
  5024.           POSIX.3 who had some problems with the way things were done.
  5025.           A lively  debate ensued, but  in the end,  we caved in,  and
  5026.           will incorporate the  ``suggestions.''  It is estimated that
  5027.           90% of our  assertions will require change.  Hopefully, this
  5028.           can be automated.
  5029.  
  5030.           Once  again,  we  met  with POSIX.12  (Protocol  Independent
  5031.           Interfaces)   in   joint   session   and   discussed   their
  5032.           requirements on directory services. The POSIX.12 group wants
  5033.           a simplified interface  to directory services  for the users
  5034.           of their Detailed  Network Interface (read sockets/XTI).  We
  5035.           also discussed what  objects POSIX.12 will need to be stored
  5036.           by the directory  and how those objects will get documented.
  5037.           Given our need  to freeze our  draft for ballot and the lack
  5038.           of definition for  both new objects and interface functions,
  5039.           we explored possible avenues for proceeding with the work.
  5040.  
  5041.           We met in  small group to continue the discussion.  POSIX.17
  5042.           participants left the  meeting with a  greater understanding
  5043.           of the  issues,  but no  closer  to a  solution.   We had  a
  5044.           debriefing session afterwards and decided to produce a white
  5045.           paper documenting  agreements, assumptions, issues,  options
  5046.           and proposed actions.  This will be used to focus discussion
  5047.           at the next small group meeting in April.
  5048.  
  5049.           POSIX.17  and   P1224   met  again   in  joint  session   to
  5050.           review/revise test assertions  for P1224.  Draft  4 of P1224
  5051.           has already entered  ballot and we  agreed to assist them in
  5052.           ballot resolution as  time permits.  Test assertions will be
  5053.           balloted in  a  recirculation.  Since  P1224 is a  normative
  5054.           reference for  POSIX.17, a stable  version is essential  for
  5055.           our ballot.
  5056.  
  5057.           We sent a representative to POSIX.0's Architecture Framework
  5058.           BOF where the  the results of  their recent Mock Ballot were
  5059.           discussed.  POSIX.17  had  submitted comments/objections  to
  5060.           the  POSIX.0  Mock   Ballot  (Draft  14),  focusing  on  the
  5061.           ``networking'' section.  We  were told that all our comments
  5062.           and objections  were  accepted and will  be included in  the
  5063.           next draft.  The  POSIX.0 model defined  in the Mock  Ballot
  5064.           draft seemed to recognize the need for APIs aimed at systems
  5065.           integrators as well as end users.
  5066.  
  5067.           POSIX.17 shares a  problem with P1224 and P1224.1.  It seems
  5068.           that the objects  defined in the  base documents (XDS,  XOM,
  5069.           X.400 API) reserved  object ids (OIDs)  in a vendor's  (DEC)
  5070.           registered ISO  name  space.  This  might  be ok for  vendor
  5071.           consortia, but  it  won't cut  it  for a  de jure  standard.
  5072.           Because this  issue  touches more than  one group, the  DSSC
  5073.           discussed it and  agreed to produce  a recommendation on how
  5074.           to proceed by next meeting.
  5075.  
  5076.           In Closing ...
  5077.  
  5078.           Again, there  are quite a  few homework assignments  between
  5079.           meetings.  (I think  there's a trend  here).  Given this  is
  5080.           our  last  quarter   before  ballot,  we  need  to  complete
  5081.           formation of  the  ballot group,  fix  the test  assertions,
  5082.           finalize Draft 3,  and respond formally  to our Mock  Ballot
  5083.           reviewers.  We've also  been actioned by the DSSC and PMC to
  5084.           split our current  Project Authorization Request  (PAR) into
  5085.           two new PARs,  one which addresses only the API to directory
  5086.           services and the  other which addresses the POSIX name space
  5087.           issue.
  5088.  
  5089.           The group will  reconvene April 6-10, 1992 at the IEEE POSIX
  5090.           meeting in the Dallas.
  5091.  
  5092.  
  5093. Volume-Number: Volume 27, Number 62
  5094.  
  5095. From std-unix-request@uunet.UU.NET  Wed Apr  1 22:04:17 1992
  5096. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  5097.     (5.61/UUNET-mail-drop) id AA26940; Wed, 1 Apr 92 22:04:17 -0500
  5098. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  5099.     (5.61/UUNET-internet-primary) id AA29598; Wed, 1 Apr 92 22:04:23 -0500
  5100. Newsgroups: comp.std.unix
  5101. From: Stephen Walli <stephe@mks.com>
  5102. Subject: Report on POSIX.17, Jan. 1992
  5103. Message-Id: <1992Apr2.025633.28833@uunet.uu.net>
  5104. X-Submissions: std-unix@uunet.uu.net
  5105. Organization: UUNET Communications Services
  5106. Date: Wed, 1 Apr 1992 05:35:38 GMT
  5107. Reply-To: std-unix@uunet.UU.NET
  5108. To: std-unix@uunet.UU.NET
  5109. Sender: Network News <news@kithrup.com>
  5110. Source-Info:  From (or Sender) name not authenticated.
  5111.  
  5112. Submitted-by: stephe@mks.com (Stephen Walli)
  5113.  
  5114.                       USENIX Standards Watchdog Committee
  5115.               Stephen R. Walli <stephe@usenix.org>, Report Editor
  5116.  
  5117.           Report on POSIX.17 - Directory Services API
  5118.  
  5119.           Mark Hazzard <markh@rsvl.unisys.com>  reports on the January
  5120.           13-17, 1992 meeting in Irvine, California:
  5121.  
  5122.           Summary
  5123.  
  5124.           Once again, the  POSIX.17 group made  solid progress between
  5125.           meetings, completing  all  major homework  assignments.  The
  5126.           week  in  Irvine  was a  busy  one.  The  Project  Managment
  5127.           Committee (PMC) audited  POSIX.17 and gave the group a clean
  5128.           bill of health.   We also met  with POSIX.12 furthering  our
  5129.           discussion on a  simplified API to  the directory.  Our Mock
  5130.           ballot input on the networking section of the Guide, POSIX.0
  5131.           Draft 14, were  reviewed with POSIX.0, with the promise that
  5132.           they will  be  reflected in  the  next draft.  We  completed
  5133.           processing input from  our Mock Ballot of POSIX.17 Draft 2.0
  5134.           and began  drafting  responses to  our  reviewers.  We  also
  5135.           identified work items and continued planning for an official
  5136.           IEEE ballot which begins April 7, 1992.
  5137.  
  5138.           Introduction
  5139.  
  5140.           The POSIX.17  group  is generating a  user to directory  API
  5141.           (e.g. an  API  to an  X.500 Directory  User Agent).  We  are
  5142.           using  the  joint   XAPIA  --  X/Open   Directory  Services
  5143.           specification (XDS) as  a basis for  work. XDS is  an object
  5144.           oriented  interface  and   requires  a  companion  document,
  5145.           X/Open's Object  Management  specification (XOM) for  object
  5146.           management.
  5147.  
  5148.           XOM   is   a    stand-alone   specification   with   general
  5149.           applicability beyond the API to directory services.  It will
  5150.           also be used by IEEE P1224.1 (X.400 API), and possibly other
  5151.           POSIX groups, and  is being standardized  by P1224.  Draft 4
  5152.           of P1224 has already entered IEEE ballot.
  5153.  
  5154.           POSIX.17 is one  of five "networking"  groups that currently
  5155.           make up  POSIX  Distributed Services  and as such,  POSIX.17
  5156.           comes under the purview of the Distributed Services Steering
  5157.           Committee (DSSC).
  5158.  
  5159.           Status
  5160.  
  5161.           The group chair  was unable to attend the meeting in Irvine,
  5162.           CA, so yours  truely once again assumed the duties of chair.
  5163.           There has  been  a low  grumble  about the  ever  increasing
  5164.           overhead associated with  TCOS/POSIX working groups, and now
  5165.           I know  why.  A Project  Management  Committee audit  Sunday
  5166.           morning, 2  Sponsor  Executive Committee  (SEC) meetings,  2
  5167.           Systems Interface Co-ordination Committee (SICC) meetings, 2
  5168.           Distributed Systems  Steering  Committee (DSSC) meetings,  2
  5169.           Distributed Systems (DS)  Plenaries, a Logistics  meeting, a
  5170.           Distributed Security  study and  (I almost forgot)  POSIX.17
  5171.           working  group  meetings  made  for  a  noticeable  lack  of
  5172.           ``spare'' time.
  5173.  
  5174.           Commitment within the  group remains strong,  with all other
  5175.           core  members  attending,  and completing  their  "homework"
  5176.           assignments.
  5177.  
  5178.           The TCOS Project  Management Committee held  the first audit
  5179.           of  POSIX.17  on   Sunday  morning.   The   PMC  recommended
  5180.           continued sponsorship of  the work, splitting  the work into
  5181.           two projects, increasing  the size of  the working group for
  5182.           ballot resolution and bringing our Issues Log current.
  5183.  
  5184.           During the week, the group completed processing the comments
  5185.           received from  our  Mock ballot. We  began to draft  written
  5186.           responses which will  be sent to all who took time to review
  5187.           the draft  and provide us  with comments and/or  objections.
  5188.           Several of the  comments/objections resulted in improvements
  5189.           to the specification  and will be incorporated into the next
  5190.           draft (3.0).  This  will be the  draft that goes directly to
  5191.           IEEE ballot April 7th.
  5192.  
  5193.           The  Technical  Editor  completed the  Language  Independent
  5194.           Specification (LIS) and  a first cut  at test assertions  as
  5195.           well.  (X/Open followed  through with their  promise to fund
  5196.           our technical editor  to write the  assertions for POSIX.17.
  5197.           This made sense  in that X/Open needs to have assertions for
  5198.           XDS.) The test assertions were reviewed by a consultant from
  5199.           POSIX.3 who had some problems with the way things were done.
  5200.           A lively  debate ensued, but  in the end,  we caved in,  and
  5201.           will incorporate the  ``suggestions.''  It is estimated that
  5202.           90% of our  assertions will require change.  Hopefully, this
  5203.           can be automated.
  5204.  
  5205.           Once  again,  we  met  with POSIX.12  (Protocol  Independent
  5206.           Interfaces)   in   joint   session   and   discussed   their
  5207.           requirements on directory services. The POSIX.12 group wants
  5208.           a simplified interface  to directory services  for the users
  5209.           of their Detailed  Network Interface (read sockets/XTI).  We
  5210.           also discussed what  objects POSIX.12 will need to be stored
  5211.           by the directory  and how those objects will get documented.
  5212.           Given our need  to freeze our  draft for ballot and the lack
  5213.           of definition for  both new objects and interface functions,
  5214.           we explored possible avenues for proceeding with the work.
  5215.  
  5216.           We met in  small group to continue the discussion.  POSIX.17
  5217.           participants left the  meeting with a  greater understanding
  5218.           of the  issues,  but no  closer  to a  solution.   We had  a
  5219.           debriefing session afterwards and decided to produce a white
  5220.           paper documenting  agreements, assumptions, issues,  options
  5221.           and proposed actions.  This will be used to focus discussion
  5222.           at the next small group meeting in April.
  5223.  
  5224.           POSIX.17  and   P1224   met  again   in  joint  session   to
  5225.           review/revise test assertions  for P1224.  Draft  4 of P1224
  5226.           has already entered  ballot and we  agreed to assist them in
  5227.           ballot resolution as  time permits.  Test assertions will be
  5228.           balloted in  a  recirculation.  Since  P1224 is a  normative
  5229.           reference for  POSIX.17, a stable  version is essential  for
  5230.           our ballot.
  5231.  
  5232.           We sent a representative to POSIX.0's Architecture Framework
  5233.           BOF where the  the results of  their recent Mock Ballot were
  5234.           discussed.  POSIX.17  had  submitted comments/objections  to
  5235.           the  POSIX.0  Mock   Ballot  (Draft  14),  focusing  on  the
  5236.           ``networking'' section.  We  were told that all our comments
  5237.           and objections  were  accepted and will  be included in  the
  5238.           next draft.  The  POSIX.0 model defined  in the Mock  Ballot
  5239.           draft seemed to recognize the need for APIs aimed at systems
  5240.           integrators as well as end users.
  5241.  
  5242.           POSIX.17 shares a  problem with P1224 and P1224.1.  It seems
  5243.           that the objects  defined in the  base documents (XDS,  XOM,
  5244.           X.400 API) reserved  object ids (OIDs)  in a vendor's  (DEC)
  5245.           registered ISO  name  space.  This  might  be ok for  vendor
  5246.           consortia, but  it  won't cut  it  for a  de jure  standard.
  5247.           Because this  issue  touches more than  one group, the  DSSC
  5248.           discussed it and  agreed to produce  a recommendation on how
  5249.           to proceed by next meeting.
  5250.  
  5251.           In Closing ...
  5252.  
  5253.           Again, there  are quite a  few homework assignments  between
  5254.           meetings.  (I think  there's a trend  here).  Given this  is
  5255.           our  last  quarter   before  ballot,  we  need  to  complete
  5256.           formation of  the  ballot group,  fix  the test  assertions,
  5257.           finalize Draft 3,  and respond formally  to our Mock  Ballot
  5258.           reviewers.  We've also  been actioned by the DSSC and PMC to
  5259.           split our current  Project Authorization Request  (PAR) into
  5260.           two new PARs,  one which addresses only the API to directory
  5261.           services and the  other which addresses the POSIX name space
  5262.           issue.
  5263.  
  5264.           The group will  reconvene April 6-10, 1992 at the IEEE POSIX
  5265.           meeting in the Dallas.
  5266.  
  5267.  
  5268.  
  5269. Volume-Number: Volume 27, Number 63
  5270.  
  5271. From std-unix-request@uunet.UU.NET  Wed Apr  1 22:04:21 1992
  5272. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  5273.     (5.61/UUNET-mail-drop) id AA26950; Wed, 1 Apr 92 22:04:21 -0500
  5274. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  5275.     (5.61/UUNET-internet-primary) id AA29616; Wed, 1 Apr 92 22:04:29 -0500
  5276. Newsgroups: comp.std.unix
  5277. From: Hans Mulder <hansm@cs.kun.nl>
  5278. Subject: Re: 1003.2a on comments in the shell
  5279. Message-Id: <1992Apr2.025716.28982@uunet.uu.net>
  5280. X-Submissions: std-unix@uunet.uu.net
  5281. Organization: University of Nijmegen, The Netherlands
  5282. References: <1992Mar30.205758.2699@uunet.uu.net> <1992Mar31.024454.23050@uunet.uu.net> <1992Mar31.204813.684@uunet.uu.net>
  5283. Date: Wed, 1 Apr 1992 11:09:11 GMT
  5284. Reply-To: std-unix@uunet.UU.NET
  5285. To: std-unix@uunet.UU.NET
  5286. Sender: Network News <news@kithrup.com>
  5287. Source-Info:  From (or Sender) name not authenticated.
  5288.  
  5289. Submitted-by: hansm@cs.kun.nl (Hans Mulder)
  5290.  
  5291. In <1992Mar31.204813.684@uunet.uu.net> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  5292. >In article <1992Mar31.024454.23050@uunet.uu.net> djm@eng.umd.edu (David J. MacKenzie) writes:
  5293. >>The only explicit mention of `#' for the shell in p1003.2a is in the
  5294. >>description of the Vi editing mode.  It's a command to comment-out the
  5295. >>current line (excerpted below).  ...
  5296.  
  5297. >That's disgusting!
  5298. >If 1003.2 is going to break zillions of existing carefuly-written shell
  5299. >scripts, then it ought not to be adopted.
  5300.  
  5301. You're confusing 1003.2 with 1003.2a.  1003.2 mentions that `#' is the
  5302. comment character in scripts and people want 1003.2a to say that it
  5303. also works interactively.  That goes without saying for people who are
  5304. used to sane shells, but many netters are used to the C shell, which
  5305. gets this sort of detail wrong.  Apparently, at least one vendor has
  5306. seen fit to duplicate this bug in an otherwise Bourne compatible shell.
  5307.  
  5308. --
  5309. Hans Mulder        hansm@cs.kun.nl
  5310.  
  5311.  
  5312. Volume-Number: Volume 27, Number 64
  5313.  
  5314. From std-unix-request@uunet.UU.NET  Wed Apr  1 22:04:26 1992
  5315. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  5316.     (5.61/UUNET-mail-drop) id AA26959; Wed, 1 Apr 92 22:04:26 -0500
  5317. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  5318.     (5.61/UUNET-internet-primary) id AA29633; Wed, 1 Apr 92 22:04:34 -0500
  5319. Newsgroups: comp.std.unix
  5320. From: Tom Glinos <tg@utstat.toronto.edu>
  5321. Subject: Is POSIX a waste?
  5322. Message-Id: <1992Apr2.025846.29245@uunet.uu.net>
  5323. X-Submissions: std-unix@uunet.uu.net
  5324. Organization: University of Toronto, Dept. of Statistics
  5325. References: <1992Mar30.205758.2699@uunet.uu.net> <1992Mar31.024454.23050@uunet.uu.net> <1992Mar31.212031.4967@uunet.uu.net>
  5326. Date: Wed, 1 Apr 1992 16:09:53 GMT
  5327. Reply-To: std-unix@uunet.UU.NET
  5328. To: std-unix@uunet.UU.NET
  5329. Sender: Network News <news@kithrup.com>
  5330. Source-Info:  From (or Sender) name not authenticated.
  5331.  
  5332. Submitted-by: tg@utstat.toronto.edu (Tom Glinos)
  5333.  
  5334. At the risk of being flamed back into the stone age I'll offer
  5335. the opinion that the whole POSIX exercise has been a waste, for
  5336. the following reasons.
  5337.  
  5338. [1] It's never been clear to me what the original POSIX proposals were
  5339. supposed to define and accomplish. (What is the deliverable?)
  5340. [2] This led to the ever widening number of groups. (More deliverables.)
  5341. [3] Some groups then started to argue and propose interfaces that in
  5342. some cases had never been widely implemented or thoroughly studied.
  5343. [4] Some groups have let company and market pressures direct what should
  5344. be an exercise in common sense and good engineering.
  5345.  
  5346. It's been a bit more than a year since I looked at any POSIX document.
  5347. If memory serves me correctly it's been about 5 years since the first
  5348. document was tabled. Has nothing been voted on? When will it all end?
  5349. -- 
  5350. =================
  5351. "Life is so much more meaningful if you take the time to hunt down and strangle 
  5352. twits who post blather to inappropriate newsgroups." Henry Spencer
  5353.  
  5354.  
  5355. Volume-Number: Volume 27, Number 65
  5356.  
  5357. From std-unix-request@uunet.UU.NET  Wed Apr  1 22:04:42 1992
  5358. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  5359.     (5.61/UUNET-mail-drop) id AA26999; Wed, 1 Apr 92 22:04:42 -0500
  5360. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  5361.     (5.61/UUNET-internet-primary) id AA29645; Wed, 1 Apr 92 22:04:42 -0500
  5362. Newsgroups: comp.std.unix
  5363. From: "Robert L. Knighten" <knighten@intel.com>
  5364. Subject: Re: P1003.4[a] Common Reference Ballots (CRBs)
  5365. Message-Id: <1992Apr2.025929.29370@uunet.uu.net>
  5366. Reply-To: Bob Knighten <knighten@ssd.intel.com>
  5367. X-Submissions: std-unix@uunet.uu.net
  5368. Organization: Intel Supercomputer System Division, Beaverton, OR
  5369. References: <1992Mar27.212634.11619@uunet.uu.net>
  5370. Date: Wed, 1 Apr 1992 20:53:48 GMT
  5371. To: std-unix@uunet.UU.NET
  5372. Sender: Network News <news@kithrup.com>
  5373. Source-Info:  From (or Sender) name not authenticated.
  5374.  
  5375. Submitted-by: knighten@intel.com (Robert L. Knighten)
  5376.  
  5377. Draft 12 of the P1003.4 (Realtime Extension) draft standard is in its fourth
  5378. ballot (and third recirculation.)  This latest ballot is due at the IEEE
  5379. Standards Office on April 10.  
  5380.  
  5381. Last work the following group met and drafted a Common Reference Ballot which
  5382. we hope will be considered by other members of the ballot group before they
  5383. submit their own ballots.  Our CRB is included at the end of this message.
  5384.  
  5385. The CRB will be submitted as the first 40 items in the ballot of
  5386. Robert L. Knighten of Intel Supercomputer Systems Division.
  5387.  
  5388. Nawaf Bitar             Kubota-Pacific
  5389. David Black             Open Software Foundation
  5390. Bob Conti               Digital Equipment Corporation
  5391. Bill Cox                Unix Systems Laboratories
  5392. Michael Jones           Carneige-Mellon University
  5393. Steve Kleiman           SunSoft
  5394. Bob Knighten            Intel Supercomputer Systems Division
  5395. Jim Pitcairn-Hill       Open Software Foundation
  5396. Dave Plauger            Hewlett-Packard
  5397. Paul Rabin              Open Software Foundation
  5398.  
  5399. This CRB is also available in various forms (ASCII, postscript, troff) by
  5400. anonymous ftp from export.ssd.intel.com in the directory /pub/tmp/CRB.
  5401.  
  5402. This same group has also done a common reference ballot for the P1003.4a
  5403. (Pthreads) draft and that will be available on April 13.
  5404. ==============================================================================
  5405.  
  5406. --------------------------------------------------------------------------
  5407. @ all o 1
  5408. 1: Section all page all line(s) all
  5409.  
  5410. OBJECTION:
  5411.  
  5412.  The use of errno is a mistake with new functions. Existing POSIX.1 functions
  5413.  and their close relatives (e.g. fdatasynch()) should maintain their overall
  5414.  structure, as should those tied to existing practice (e.g.  mmap, memlock, et
  5415.  al.). The use of errno as a global error indicator in multithreaded
  5416.  environments introduces new difficulties.
  5417.  
  5418. ACTION:
  5419.  
  5420.  New functions (e.g. aio_read, sem_post) should not set a global errno, but
  5421.  instead return an error indication as the function return value. We do not
  5422.  provide synopses for all such functions, but will on request from the
  5423.  technical reviewers.
  5424.  
  5425.  Change all new functions such as the aio functions and sem_ functions to
  5426.  return an error indication on failure.
  5427.  
  5428.  
  5429. --------------------------------------------------------------------------
  5430. @ all o 2
  5431. 2: Section all page all line(s)
  5432.  
  5433. OBJECTION:
  5434.  
  5435.  We join in UO193.D11. The performance metrics are not consistent, and are not
  5436.  appropriate to this standard. Improving something that does not belong does
  5437.  not solve the problem. Deleting them will. The problem is not quality but
  5438.  timeliness and applicability.
  5439.  
  5440. ACTION:
  5441.  
  5442.  Delete all performance metrics from D12 and forward the text to a
  5443.  benchmarking standards group.
  5444.  
  5445.  
  5446. --------------------------------------------------------------------------
  5447. @ Introduction c 3
  5448. 3: Section Introduction page viii line(s) 17-18
  5449.  
  5450. COMMENT:
  5451.  
  5452.  This makes the same sweeping generalization as in lines 16-17 page 2, and
  5453.  should also be amended and clarified.
  5454.  
  5455. --------------------------------------------------------------------------
  5456. @ 1.1 o 4
  5457. 4: Section 1.1 page 1 line(s) 5
  5458.  
  5459. OBJECTION:
  5460.  
  5461.  We join with unresolved objection UO.3.D11. Performance metrics are not the
  5462.  appropriate province of a source interface standard. There are groups that
  5463.  define benchmarks; the information requested in the performance metrics
  5464.  sections (sections 3.9.10, 3.10.5, 6.6.3, 6.7.9, 17.3, 19.2, 20.3, 20.4.6,
  5465.  21.4, 21.5.5, 22.3, 23.3, 23.4.6, 24.4, and 24.5.8) should be defined by
  5466.  those groups, and not TCOS-sponsored POSIX working groups.
  5467.  
  5468. ACTION:
  5469.  
  5470.  Delete line 5. In addition, delete all performance metrics as out of scope.
  5471.  
  5472.  
  5473. --------------------------------------------------------------------------
  5474. @ 1.1 o 5
  5475. 5: Section 1.1 page 2 line(s) 12-44
  5476.  
  5477. OBJECTION:
  5478.  
  5479.  We have objected previously to the extremely broad definition of "realtime,"
  5480.  and we continue to object vigorously. As part of this objection we point out
  5481.  that using names such as "{_POSIX_MAPPED_FILES}" and "{_POSIX_SEMAPHORES}"
  5482.  contributes to the vague broad definition of "realtime" being used.
  5483.  
  5484.  It is encouraging that application to multiprocessors and networking are
  5485.  specifically excluded from scope.  However, the extremely broad nature of
  5486.  lines 22-23 renders the limiting to a "...set required to make this standard
  5487.  minimally useful to realtime applications on single processor systems" (lines
  5488.  12-13) a too-subtle attempt at humor.
  5489.  
  5490.  The reviewer's response to unresolved objections (e.g. to W. T. Cox D11
  5491.  objection 7, marked "nonresponsive") is itself not a response but an excuse.
  5492.  In part, the reviewer said "...the scope is determined by the approved PAR
  5493.  and further refined in the informative text of the draft. The items
  5494.  [asynchronous I/O and realtime files, among others] ... are well within
  5495.  scope."
  5496.  
  5497.  We would appreciate the specification of any interface that is not within the
  5498.  scope as written in D12 and previous drafts. The only justification that
  5499.  appears to serve to delete functionality that is not considered "realtime" is
  5500.  an outcry from the balloting group. POSIX.4 appears to take the mechanistic
  5501.  (and self- referential) approach that "realtime is anything that's in
  5502.  POSIX.4." This absence of anything outside your scope makes it difficult to
  5503.  convince the technical reviewers that any particular 'nice interface' is
  5504.  inappropriate -- you may only be able to convince them that the time is not
  5505.  opportune to slip it past a balloting group.
  5506.  
  5507.  Moreover, objections to the broad nature of the scope have been called
  5508.  "nonresponsive," and not circulated with other rejected comments to the
  5509.  balloting group. What is more responsive to a call to validate a standard
  5510.  with broad support than questions about the purpose and scope?
  5511.  
  5512. ACTION:
  5513.  
  5514.  The scope must be narrowed. One modification that would satisfy this
  5515.  objection is to delete line 5 and replace lines 18-26: 
  5516.  
  5517.  The key elements defining scope are
  5518.  
  5519.  (a) defining a sufficient set of functionality to cover a significant part of
  5520.  the realtime application domain, and
  5521.  
  5522.  (b) ensuring that the simultaneous support of the realtime extensions do not
  5523.  impose undue burdens upon implementations that attempt to simultaneously
  5524.  support both realtime extensions, POSIX.1 base functionality, and other
  5525.  extensions currently being developed to POSIX.1.
  5526.  
  5527.  Specifically within the scope is to define interfaces which do not preclude
  5528.  high performance implementations on traditional uniprocessor realtime
  5529.  systems, but also to extend while focusing on traditional realtime systems
  5530.  and needs such as timers, shared memory, scheduling, and interprocess
  5531.  communication.
  5532.  
  5533.  The establishment of performance metrics are specifically out of scope; text
  5534.  for proposed metrics are included in the rationale for each section, and will
  5535.  be forwarded to other bodies for standardization.
  5536.  
  5537.  The establishment of benchmarks and performance enhancements for file systems
  5538.  is also specifically out of scope.
  5539.  
  5540.  The signal mechanisms of POSIX.1 and existing implementations are already
  5541.  extremely complex.  Adding an additional layer of complexity would not ensure
  5542.  that high performance implementations and applications can be built using
  5543.  such signal extensions. Accordingly, extensions to the POSIX.1 signals
  5544.  mechanism are specifically out of scope.
  5545.  
  5546.  Wherever possible, the requirements of other application enrironments are
  5547.  included in the interface definition.
  5548.  
  5549.  It is beyond the scope of these interfaces to support networking or
  5550.  multiprocessor functionality.  (Rationale note: With this limitation on the
  5551.  uniprocessor scheduling interfaces, all of the remaining functionality is
  5552.  appropriate for closely-coupled multiprocessor systems.)
  5553.  
  5554.  
  5555. --------------------------------------------------------------------------
  5556. @ 2.2 o 6
  5557. 6: Section 2.2 page 6 line(s) 24-25
  5558.  
  5559. OBJECTION:
  5560.  
  5561.  Direct I/O is not defined in a meaningful way. Moreover, direct I/O is only
  5562.  discussed in the rationale to Chapter 24, so the definition does not belong
  5563.  in normative text.
  5564.  
  5565. ACTION:
  5566.  
  5567.  Delete Lines 24-25.
  5568.  
  5569.  
  5570. --------------------------------------------------------------------------
  5571. @ 2.2 o 7
  5572. 7: Section 2.2 page 10 line(s) 178-179
  5573.  
  5574. OBJECTION:
  5575.  
  5576.  Direct I/O is not defined in a meaningful way. Moreover, direct I/O is only
  5577.  (according to the index) discussed in the rationale to Chapter 24, so the
  5578.  definition does not belong here.
  5579.  
  5580. ACTION:
  5581.  
  5582.  Delete Lines 178-179.
  5583.  
  5584.  
  5585. --------------------------------------------------------------------------
  5586. @ 3.3 o 8
  5587. 8: Section 3.3 page 23-24 line(s) 154-166
  5588.  
  5589. OBJECTION:
  5590.  
  5591.  SI_TIMER and SI_ASYNCIO and SI_MESGQ require either (1) a kernelized
  5592.  implementation or (2) the ability for a user-level implementation to "fake" a
  5593.  signal source. The existence of these SI_ values is in conflict with the
  5594.  rationale and text for asynch I/O and other functions which say that
  5595.  threads-based implementations should not be precluded.
  5596.  
  5597.  Sigqueue would have to similarly be a kernel implementation or have a back
  5598.  door.
  5599.  
  5600.  Similarly, the timer mechanism would have to have a back door way to fake the
  5601.  SI_TIMER codes. This has been a system-supplied value that cannot be spoofed
  5602.  in the existing practice; a shift to signal-sender- settable values would be
  5603.  a breach of existing practice and expectations.
  5604.  
  5605. ACTION:
  5606.  
  5607.  Delete this entire section; in the alternative, delete lines 157-162 and
  5608.  (editorially) all references to the deleted text.
  5609.  
  5610.  
  5611. --------------------------------------------------------------------------
  5612. @ 3.3 o 9
  5613. 9: Section 3.3 page 23 line(s) 159-160
  5614.  
  5615. OBJECTION:
  5616.  
  5617.  Forcing the signal code to return SI_ASYNCIO substantially complicates
  5618.  implementations that implement asynchronous I/O by using threads. It forces
  5619.  the implementation to modify the signal catching mechanism to cause a special
  5620.  code to generated. Moreover, this requirement prevents an implementation
  5621.  using threads.
  5622.  
  5623. ACTION:
  5624.  
  5625.  Delete lines 157-158
  5626.  
  5627.  
  5628. --------------------------------------------------------------------------
  5629. @ 3.3 o 10
  5630. 10: Section 3.3 page 21-38 line(s) all
  5631.  
  5632. OBJECTION:
  5633.  
  5634.  The use of signals for notification of events of interest is a
  5635.  low-performance technique. We have made objections whose action, if accepted,
  5636.  will eliminate the need for signal notification of events of interest
  5637.  including timer firing, asynchronous I/O completion, and IPC message
  5638.  notification.
  5639.  
  5640.  The general idea is to pass or use a pointer to a function taking the
  5641.  appropriate type as a parameter. There are two additional modifications
  5642.  needed to support this improvement.
  5643.  
  5644. ACTION:
  5645.  
  5646.  On p20 line 41, delete the word "signal." (Notifications in exec'd process
  5647.  are impossible.)
  5648.  
  5649.  On p21 l64 delete the word "signal."
  5650.  
  5651.  Delete section 3.3.
  5652.  
  5653.  
  5654. --------------------------------------------------------------------------
  5655. @ 5.4.5 o 11
  5656. 11: Section 5.4.5 page 82 line(s) 416-482
  5657.  
  5658. OBJECTION:
  5659.  
  5660.  We join in UO38.D11 and UO47.D11. The shm_open() and shm_unlink() interfaces
  5661.  serve no useful function and introduce needless confusion in code that will
  5662.  use different functions for effectively the same purpose.
  5663.  
  5664. ACTION:
  5665.  
  5666.  Delete shm_open() and shm_unlink().
  5667.  
  5668.  
  5669. --------------------------------------------------------------------------
  5670. @ 6 o 12
  5671. 12: Section 6 page all line(s) all
  5672.  
  5673. OBJECTION:
  5674.  
  5675.  These operations are trivially and more efficiently performed by using
  5676.  threads.
  5677.  
  5678. ACTION:
  5679.  
  5680.  Delete this chapter.
  5681.  
  5682.  
  5683. --------------------------------------------------------------------------
  5684. @ 6.7 o 13
  5685. 13: Section 6.7 page 59-77 line(s) 458-1118
  5686.  
  5687. OBJECTION:
  5688.  
  5689.  This section on asynchronous I/O has improved from previous drafts, but still
  5690.  has a number of major problems:
  5691.  
  5692.  Notification is far too complex. The alternative of using OPTIONAL realtime
  5693.  signals seems peculiar, and a burden on the programmer.
  5694.  
  5695.  The focus needs to be on creating interfaces that are implementable using the
  5696.  synchronous I/O of threads.
  5697.  
  5698.  The reviewer's response to UO148.D11 is interesting, as he says that the
  5699.  current chapter is not existing practice. This reinforces other unresolved
  5700.  objections that state that the contents of this Section do not reflect
  5701.  existing practice.
  5702.  
  5703. ACTION:
  5704.  
  5705.  Delete this Section.
  5706.  
  5707.  
  5708. --------------------------------------------------------------------------
  5709. @ 6.7 o 14
  5710. 14: Section 6.7 page 59-77 line(s) 458-1118
  5711.  
  5712. OBJECTION:
  5713.  
  5714.  The response to UO148.D11 is not clear; the full text of the objection was
  5715.  not presented. Since this text provided an alternative to the Section, UO148
  5716.  was responsive, but the balloting group can neither evaluate text it has not
  5717.  seen nor appreciate references to text not supplied in the unresolved
  5718.  objections list.
  5719.  
  5720. ACTION:
  5721.  
  5722.  Include the text of unresolved objections per IEEE Standards Board procedures
  5723.  and IEEE rules. Deliver the full text of UO148.D11 to the balloting group so
  5724.  that references to that text in other unresolved objections make sense.
  5725.  
  5726.  
  5727. --------------------------------------------------------------------------
  5728. @ 6.7 o 15
  5729. 15: Section 6.7 page 59-77 line(s) 458-1118
  5730.  
  5731. OBJECTION:
  5732.  
  5733.  In the event that our previous objection or others calling for deletion of
  5734.  this section are not accepted, we make the following objection to the
  5735.  notification mechanism. The action also addresses the problems stated in
  5736.  unresolved objections numbers 149, 150, 152, 154, 156, and 157.
  5737.  
  5738.  The use of optional realtime signals is a burden, as a portable application
  5739.  cannot know how much data can be passed, and a specific signal handling
  5740.  routine must be scheduled after an expensive signal is sent.
  5741.  
  5742.  This is not consistent with "not precluding high-performance implementations"
  5743.  as stated on page 2 lines 22-23. Signals by their very nature are low in
  5744.  performance, and so-called "realtime signals" do not correct the situation.
  5745.  In addition, the atomic update problem cited in, for example, UO.154.D11 and
  5746.  the reviewer's response, is addressed.
  5747.  
  5748. ACTION:
  5749.  
  5750.  A simpler solution, provided in unresolved objection UO148.D11 but
  5751.  accidentally deleted by the Unresolved Objections Editor, is to provide a
  5752.  function to be called when the I/O operation is completed.  This is an
  5753.  element of struct aiocb, and aio_errno and aio_result can be added to struct
  5754.  aiocb and the functions aio_error and aio_return can be deleted.
  5755.  
  5756.  The new element, aio_notifunction (the name isn't very important, but the
  5757.  concept is), is a pointer to a function that takes a pointer to struct aiocb
  5758.  as its argument. When the asynchronous I/O operation completes, the function
  5759.  referred to by aio_notifunction is called with a pointer to the completed
  5760.  aiocb as its parameter. The notification function must be coded as if it has
  5761.  no context: the effect of specifying a function that does process control,
  5762.  longjmp, or thread control calls that assume a particular environment is
  5763.  undefined.
  5764.  
  5765.  The rationale should state that the action of calling the notification
  5766.  function is the final one performed by the implementation after updating the
  5767.  aio_errno and aio_result fields. The notification function may send a signal,
  5768.  in which case the result will be as in D12. The notification function can (in
  5769.  effect) directly run the signal handler that would deal with the asynch I/O
  5770.  completion.
  5771.  
  5772.  To make this approach even more flexible, an atomic_t element can be added to
  5773.  struct aiocb to atomically mark the aiocb as completed.
  5774.  
  5775.  
  5776. --------------------------------------------------------------------------
  5777. @ 9.2.1.2 o 16
  5778. 16: Section 9.2.1.2 page 176 line(s) 93-97
  5779.  
  5780. OBJECTION:
  5781.  
  5782.  The consensus in P1003.4 is clearly to not use the file system as the name
  5783.  space for their handles.  Unfortunately the current "maybe it's in the file
  5784.  system and maybe it's not" semantics only confuses the issue further.
  5785.  
  5786. ACTION:
  5787.  
  5788.  Change these lines to say that if {_POSIX_OBJECTS_ARE_FILES} is defined, then
  5789.  the names are true path names; otherwise the indicated things are unspecified.
  5790.  
  5791.  
  5792. --------------------------------------------------------------------------
  5793. @ 9.2 o 17
  5794. 17: Section 9.2 page 179 line(s) 211-214
  5795.  
  5796. OBJECTION:
  5797.  
  5798.  We join in UO142.D11. The variety of message passing systems make this an
  5799.  unreasonable requirement on implementations.
  5800.  
  5801. ACTION:
  5802.  
  5803.  Leave the last close behavior unspecified.
  5804.  
  5805.  
  5806. --------------------------------------------------------------------------
  5807. @ 17 o 18
  5808. 18: Section 17 page all line(s) all
  5809.  
  5810. OBJECTION:
  5811.  
  5812.  Several problems here.
  5813.  
  5814.  The apparent reason for this chapter was to replace the System V semaphores.
  5815.  The only reason that POSIX.4a semaphores aren't a complete replacement is
  5816.  that some machines don't have shared memory.  The embedded case can be
  5817.  supported using D11 semaphores with some minor changes.
  5818.  
  5819.  Naming semaphores, while odious, is implementable on top of higher
  5820.  performance POSIX.4a semaphores.  Simplification via shared memory semaphores
  5821.  is a real benefit to users and implementors.
  5822.  
  5823.  The goal of being implementable on all systems is met by implementations on
  5824.  systems without memory management hardware using pointers in the semaphore
  5825.  objects to refer to common synchronization objects, i.e., using an additional
  5826.  level of indirection.
  5827.  
  5828. ACTION:
  5829.  
  5830.  Define shared memory semaphores as defined on the following manual pages.
  5831.  
  5832. 1.  sem_init()  Initialize a Semaphore
  5833.  
  5834.  
  5835.  
  5836. NAME sem_init
  5837. DESCRIPTION sem_init() initializes the named semaphore to a known state.
  5838. SYNOPSIS 
  5839.  
  5840. #include <synch.h>
  5841.  
  5842. int sem_init(sem_t *sema, int sem_count, int type, void *arg);
  5843.  
  5844. PROCESSING sem_init(), initializes the semaphore sema of type type to a known
  5845.  state.
  5846.  
  5847. The parameter sem_count must be greater than or equal to zero, defines the
  5848. initial count of resources protected by the semaphore. Once initialized, the
  5849. semaphore can be used any number of times without being re-initialized. A
  5850. semaphore should not be re-initialized while threads are waiting at the
  5851. semaphore.
  5852.  
  5853. If type is USYNC_THREAD the semaphore is initialized for threads within a
  5854. single process. Specification of USYNC_PROCESS for the type will initialize
  5855. the semaphore for threads across processes.
  5856.  
  5857. The arg is reserved for future use.
  5858.  
  5859. All operations on semaphores initialized with sem_init() are non-recursive;
  5860. the error check is done under the DEBUG option to detect their recursive use.
  5861.  
  5862. Statistics and performance data will be collected under the DEBUG option.
  5863. OUTPUT On successful completion, sema is initialized and the operation returns
  5864. zero. Otherwise, the contents of sema are unchanged and an appropriate error
  5865. indication value is returned.  ERROR/DIAGNOSTICS If any of the following
  5866. conditions is detected, sem_init() fails and returns the corresponding value:
  5867.  
  5868. EINVAL    Invalid argument specified.
  5869.  
  5870. EBUSY     An attempt is made to initialize a semaphore while threads are waiting
  5871.           at the semaphore.
  5872.  
  5873. SEE ALSO sem_wait , sem_post , sem_trywait , sem_destroy , POSIX.4/D12 Section
  5874. 17.2.1.
  5875.  
  5876.  
  5877. 2.  sem_wait()  Wait on a Semaphore
  5878.  
  5879. NAME sem_wait
  5880.  
  5881. DESCRIPTION sem_wait() is used to claim resources under the semaphore's
  5882. control.
  5883.  
  5884. SYNOPSIS 
  5885.  
  5886. #include <synch.h>
  5887.  
  5888. int sem_wait(sem_t *sema);
  5889.  
  5890. PROCESSING sem_wait() acquires sema by decrementing the semaphore value. If
  5891. the resulting value is greater than or equal to zero, it returns success
  5892. having acquired sema. If the semaphore count is zero upon entry, sem_wait()
  5893. suspends execution of the calling thread and places it on a queue associated
  5894. with sema where it remains until sema becomes available to the caller (i.e.,
  5895. the count is greater than zero), at which point sem_wait() decrements the
  5896. count and returns success having acquired sema. (A negative value for the
  5897. count is illegal.)
  5898.  
  5899. sema must previously have been initialized.
  5900.  
  5901. In general, this operation is used to block wait for an event, or when a
  5902. critical section is long.
  5903.  
  5904. This operation keeps track of statistics and performance data under the DEBUG
  5905. option.
  5906.  
  5907. If a thread waiting on a semaphore is interrupted by a signal, the signal
  5908. handler will run, but sem_wait is always restarted so the semaphore is held on
  5909. return.  OUTPUT The operation returns zero if the semaphore is successfully
  5910. acquired.  ERROR/DIAGNOSTICS If any of the following conditions is detected,
  5911. sem_wait() fails and returns the corresponding value:
  5912.  
  5913. EINVAL    Invalid argument specified.
  5914.  
  5915. SEE ALSO sem_init , sem_post , sem_trywait , sem_destroy , POSIX.4/D12 Section
  5916. 17.2.4.
  5917.  
  5918. COMMENTS While a sem_wait can be interrupted by a signal or a fork, an
  5919. EINTR is never returned to the user: the wait must be restarted.
  5920.  
  5921.  
  5922. 3.  sem_trywait()  Conditional Locking
  5923.  
  5924. NAME sem_trywait
  5925.  
  5926. DESCRIPTION sem_trywait() is used to claim resources under the semaphore's
  5927. control.
  5928.  
  5929. SYNOPSIS 
  5930.  
  5931. #include <synch.h>
  5932.  
  5933. int sem_trywait(sem_t *sema);
  5934.  
  5935. PROCESSING sem_trywait() makes a single attempt to acquire the lock sema, but
  5936. does not block in the case of a failure. The sema must have been previously
  5937. initialized.
  5938.  
  5939. This operation keeps track of statistics and performance data under the DEBUG
  5940. option.  OUTPUT The operation returns zero if the lock is successfully
  5941. acquired and an appropriate error indication value if the lock could not be
  5942. acquired.  ERROR/DIAGNOSTICS If any of the following conditions is detected,
  5943. sem_trywait() fails and returns the corresponding value:
  5944.  
  5945. EINVAL    Invalid argument specified.
  5946. EBUSY     The semaphore is in the locked state.
  5947.  
  5948. SEE ALSO sem_init , sem_wait , sem_post , sem_destroy , POSIX.4/D12 Section
  5949. 17.2.4.
  5950.  
  5951.  
  5952. 4.  sem_post()  Unlock a Semaphore
  5953.  
  5954. NAME sem_post
  5955.  
  5956. DESCRIPTION sem_post() releases a lock by incrementing the count value of the
  5957. semaphore.
  5958.  
  5959. SYNOPSIS 
  5960.  
  5961. #include <synch.h>
  5962.  
  5963. int sem_post(sem_t *sema);
  5964.  
  5965. PROCESSING sem_post() releases a resource under the semaphore control sema
  5966. (increments the semaphore value) acquired by a previous call to either
  5967. sem_wait(), or sem_trywait(), and if the new count value is less than or equal
  5968. to zero, the next thread waiting at the semaphore will be made runnable.
  5969.  
  5970. sem_post() will fail when releasing a resource would over-increment the
  5971. semaphore count value and the DEBUG mode is enabled.
  5972.  
  5973. This operation keeps track of statistics and performance data under the DEBUG
  5974. option.
  5975.  
  5976. If more than one thread is waiting, release from the blocked group is
  5977. scheduling policy specific for bound threads, and may be dependent on
  5978. scheduling parameters for multiplexed threads.  OUTPUT On successful
  5979. completion, the operation returns zero.  ERROR/DIAGNOSTICS If any of the
  5980. following conditions is detected, sem_post() fails and returns the
  5981. corresponding value:
  5982.  
  5983. EINVAL    Invalid argument specified.
  5984. ENOLCK    The semaphore is not in the locked state.
  5985.  
  5986. SEE ALSO sem_init , sem_wait , sem_trywait , sem_destroy , POSIX.4/D12 Section
  5987. 17.2.5.
  5988.  
  5989.  
  5990. 5.  sem_destroy()  Destroy a Semaphore
  5991.  
  5992. NAME sem_destroy
  5993.  
  5994. DESCRIPTION sem_destroy() attempts to destroy a semaphore.
  5995.  
  5996. SYNOPSIS 
  5997.  
  5998. #include <synch.h>
  5999.  
  6000. int sem_destroy(sem_t *sema);
  6001.  
  6002. PROCESSING sem_destroy() attempts to destroy a semaphore, i.e., free up all
  6003. dynamically allocated resources associated with the given semaphore, and/or
  6004. invalidates statically allocated object (e.g., it will free up the statistics
  6005. buffer dynamically allocated under the DEBUG option).
  6006.  
  6007. The parameter sema identifies the semaphore to be destroyed.  OUTPUT On
  6008. successful completion, the operation succeeds and returns zero.
  6009. ERROR/DIAGNOSTICS If any of the following conditions is detected,
  6010. sem_destroy() fails and returns the corresponding value:
  6011.  
  6012. EINVAL    Invalid argument specified.
  6013. EBUSY     An attempt to destroy semaphore was made while the semaphore was 
  6014.           locked by another thread.
  6015.  
  6016. SEE ALSO sem_init , sem_wait , sem_trywait , sem_post , POSIX.4/D12 Section
  6017. 17.2.2.
  6018.  
  6019. --------------------------------------------------------------------------
  6020. @ 17 o 19
  6021. 19: Section 17 page all line(s) all
  6022.  
  6023. OBJECTION:
  6024.  
  6025.  sem_lock, sem_trylock, and sem_unlock are bad names for counting semaphores.
  6026.  Existing practice would indicate use of either P & V or post and wait. P and
  6027.  V are easily confused, therefore...
  6028.  
  6029. ACTION:
  6030.  
  6031.  Use the names sem_post, sem_wait, and sem_trywait.
  6032.  
  6033. --------------------------------------------------------------------------
  6034. @ 17.2 o 20
  6035. 20: Section 17.2 page 89-93 line(s) 12-147
  6036.  
  6037. OBJECTION:
  6038.  
  6039.  The "harmonization" between .4 semaphores and .4a synchronization primitives
  6040.  is inadequate. It forces the application to explicitly name each semaphore
  6041.  that span process boundaries. It does not provide adequate protection for
  6042.  using inter-process semaphores in that protection cannot be set. In addition
  6043.  it conflicts with the obvious way one would use POSIX.4a style semaphores.
  6044.  
  6045. ACTION:
  6046.  
  6047.  Delete sem_open(), sem_destroy(), and sem_unlink(). Replace them with
  6048.  
  6049.   pthread_semattr_init(pthread_semattr_t *attr);
  6050.   pthread_semattr_destroy(pthread_semattr_t *attr);
  6051.   pthread_semattr_getpshared(pthread_semattr_t *attr, int *pshared);
  6052.   pthread_semattr_setpshared(pthread_semattr_t *attr, int pshared);
  6053.   pthread_sem_init(pthread_sem_t *sem, pthread_semattr_t *attr);
  6054.   pthread_sem_destroy(pthread_sem_t *sem);
  6055.  
  6056.  When semaphores are to be shared across process boundaries then they are
  6057.  placed in a shared memory object or mapped file. This provides a global name
  6058.  for independent processes to use, and it provided a well-defined protection
  6059.  mechanism.
  6060.  
  6061.  
  6062. --------------------------------------------------------------------------
  6063. @ 20 o 21
  6064. 21: Section 20 page 117 line(s) 2-14
  6065.  
  6066. OBJECTION:
  6067.  
  6068.  Normative text has been moved to the rationale regarding the following
  6069.  behaviors: - writes to memory shared between processes appear in the other
  6070.  mapping processes (lines 465- 469).  - behavior on protected or unmapped
  6071.  references (lines 486-496).
  6072.  
  6073. ACTION:
  6074.  
  6075.  Add the lines specified above after line 14.
  6076.  
  6077. --------------------------------------------------------------------------
  6078. @ 20 o 22
  6079. 22: Section 20 page 117 line(s) 2-14
  6080.  
  6081. OBJECTION:
  6082.  
  6083.  The text does not specify that the address of the reference that caused the
  6084.  SIGBUS or SIGSEGV should be delivered to the signal handler that specifies
  6085.  SA_SIGINFO.
  6086.  
  6087. ACTION:
  6088.  
  6089.  Add after line 14 something like:
  6090.  
  6091.  When a SIGSEGV or SIGBUS is delivered and the SA_SIGINFO flag is set, the
  6092.  sival_ptr member of sigev_value shall be set to the address of the reference
  6093.  that caused the signal to be generated.  The address may rounded down to the
  6094.  nearest {_SC_PAGESIZE} boundary.
  6095.  
  6096.  
  6097. --------------------------------------------------------------------------
  6098. @ 21 o 23
  6099. 23: Section 21 page all line(s) all
  6100.  
  6101. OBJECTION:
  6102.  
  6103.  The scheduling interfaces have become more cumbersome as the drafts have
  6104.  progressed. It is time for a simplification.
  6105.  
  6106. ACTION:
  6107.  
  6108.  Replace this chapter's interfaces with a parallel to the Pthreads POSIX.4a
  6109.  CRB proposals. The interfaces that should be supported are
  6110.  
  6111.  yield()
  6112.  
  6113.  set_sched_attr() for startup
  6114.  
  6115.  inheritance from creator
  6116.  
  6117.  set_self_scheduler (struct...)
  6118.  
  6119.  get_self_scheduler ( struct *... )
  6120.  
  6121.  set_scheduler (pid_t, struct...)
  6122.  
  6123.  get_scheduler (pid_t, struct *... )
  6124.  
  6125. --------------------------------------------------------------------------
  6126. @ 21 o 24
  6127. 24: Section 21 page all line(s) all
  6128.  
  6129. OBJECTION:
  6130.  
  6131.  We join in Unresolved Objections 81, 89, 95, and 97.
  6132.  
  6133.  As stated in UO89.D11, you can't have your cake and eat it too -- SCHED_OTHER
  6134.  is not an escape from realtime scheduling. The reviewer's response
  6135.  contradicts the statement in D12 that SCHED_OTHER may be the same as either
  6136.  SCHED_FIFO or SCHED_RR. You can't have it both ways...
  6137.  
  6138.  UO97.D11 brings up the identification of schedulers problem. A simple
  6139.  implementation could define SCHED_OTHER to be zero, SCHED_FIFO to be zero,
  6140.  and SCHED_RR to be one. How do you tell what the result of a getscheduler()
  6141.  call is? Remember, the value of SCHED_OTHER is a compile-time constant.
  6142.  
  6143.  
  6144. ACTION:
  6145.  
  6146.  Change all occurrences of SCHED_OTHER to SCHED_DEFAULT. In the alternative,
  6147.  define a new interface sched_default() which returns an indicator of the
  6148.  default scheduler for the implementation. This should probably be a string,
  6149.  but a name would be even better. This eliminates the need for a SCHED_OTHER
  6150.  constant.
  6151.  
  6152.  
  6153. --------------------------------------------------------------------------
  6154. @ 21 o 25
  6155. 25: Section 21 page all line(s) all
  6156.  
  6157. OBJECTION:
  6158.  
  6159.  The use of SCHED_OTHER is confusing. SCHED_OTHER is simply a placeholder for
  6160.  "some scheduling algorithm that may be different or not different from
  6161.  SCHED_FIFO and SCHED_RR". This suggests both that SCHED_OTHER is a name for
  6162.  some specific scheduling algorithm AND that SCHED_OTHER is a name for some
  6163.  selectable scheduling algorithm that may be different from SCHED_FIFO and
  6164.  SCHED_RR.
  6165.  
  6166.  Unfortunately, SCHED_OTHER can't be both. The apparent meaning is of some
  6167.  system-defined policy that is neither FIFO nor RR, but over-generalization in
  6168.  the text of this section makes that incorrect as well.  A more appropriate
  6169.  name is "SCHED_DEFAULT." The reviewer's comments on UO81.D11 is not
  6170.  persuasive. Perhaps another name would be acceptable to the balloting group?
  6171.  We believe that SCHED_DEFAULT is the best that has been proposed so far.
  6172.  
  6173. ACTION:
  6174.  
  6175.  Rename SCHED_OTHER to SCHED_DEFAULT in the entire chapter.
  6176.  
  6177. --------------------------------------------------------------------------
  6178. @ 22 o 26
  6179. 26: Section 22 page 168- line(s) 36ff
  6180.  
  6181. OBJECTION:
  6182.  
  6183.  Timer firing notification should be should be be a function as in our
  6184.  proposal for asynch I/O. This style of notification allows flexible
  6185.  prioritization of timer completion events without the overhead of sending a
  6186.  signal.
  6187.  
  6188. ACTION:
  6189.  
  6190.  A simpler solution, similar to that provided in unresolved objection
  6191.  UO148.D11 but accidentally deleted by the Unresolved Objections Editor, is to
  6192.  provide a function to be called when the timer fires.
  6193.  
  6194.  Replace the evp argument with a pointer to a function with a single parameter
  6195.  of type clock_t. Change p171, lines 146-148 and 153-162 to match. Correct the
  6196.  prototype.
  6197.  
  6198.  
  6199. --------------------------------------------------------------------------
  6200. @ 22.2 c 27
  6201. 27: Section 22.2 page 171 line(s) 137
  6202.  
  6203. EDITORIAL COMMENT:
  6204.  
  6205.  The type of the *evp parameter is missing. If our other objections are not
  6206.  accepted, this should read ...  struct sigevent *evp.
  6207.  
  6208.  
  6209. --------------------------------------------------------------------------
  6210. @ 23 o 28
  6211. 28: Section 23 page all line(s) all
  6212.  
  6213. OBJECTION:
  6214.  
  6215.  IPC message notification should be a function as in our proposal for asynch
  6216.  I/O. This style of notification allows flexible prioritization of IPC
  6217.  completion events without the overhead of sending a signal.
  6218.  
  6219. ACTION:
  6220.  
  6221.  Change the notification parameter on p191 lines 16-17 to type pointer to
  6222.  function with parameter mqd_t.  Change lines 347-354 to match the new meaning
  6223.  for notification.
  6224.  
  6225.  
  6226. --------------------------------------------------------------------------
  6227. @ 23 o 29
  6228. 29: Section 23 page all line(s) all
  6229.  
  6230. OBJECTION:
  6231.  
  6232.  The message-received notification is within a process, and (rather than the
  6233.  optional realtime signals) should be as we have proposed for asynch I/O.
  6234.  
  6235. --------------------------------------------------------------------------
  6236. @ 23 o 30
  6237. 30: Section 23 page 191-210 line(s) 1-656
  6238.  
  6239. OBJECTION:
  6240.  
  6241.  In reference to D11 Unresolved Objections 133, 142:
  6242.  
  6243.  The interfaces in this chapter are not based on current practice. In
  6244.  particular, none use the file system as the name space for their handles, for
  6245.  good reason. It confuses the semantics of both the message queues and the
  6246.  file system and is not extensible over the network. The current "maybe it's
  6247.  in the file system and maybe it's not" semantics only confuses the issue
  6248.  further.
  6249.  
  6250.  I believe that it is possible to meet all the requirements expressed by the
  6251.  rationale by minimal extensions to the BSD sockets interface or the X/Open
  6252.  XTI interface. Indeed, the working group has recognized this possibility and
  6253.  asked .12 to do so. It should be possible to meet the valid real time
  6254.  requirements through extensions to existing, more general interfaces, rather
  6255.  than through introduction of a new (although much improved from previous
  6256.  drafts!) set of interfaces.
  6257.  
  6258.  At the very least, any new .4 IPC interface should be implementable entirely
  6259.  on top of sockets, or in terms of threads and shared memory.
  6260.  
  6261.  In summary, We believe that no convincing rationale has been presented for
  6262.  the addition of completely new IPC interfaces.
  6263.  
  6264. ACTION:
  6265.  
  6266.  The proposed interfaces should be replaced with one based on an existing
  6267.  interface, ideally one that has potential to be used in a distributed
  6268.  environment, including those in which the file systems are not shared (i.e.
  6269.  are not syntactically linked with the file system). Our preferred candidate
  6270.  would be to utilize the BSD sockets and X/Open XTI interfaces as being
  6271.  standardized by .12, with the addition of a real time protocol.
  6272.  
  6273.  Alternately, this objection can be satisfied by deleting the IPC chapter.
  6274.  
  6275.  
  6276. --------------------------------------------------------------------------
  6277. @ 23.1.1 o 31
  6278. 31: Section 23.1.1 page 192 line(s) 26-28,46-53
  6279.  
  6280. OBJECTION:
  6281.  
  6282.  In reference to D11 Unresolved Objections 134, 136:
  6283.  
  6284.  The mq_sendwait, mq_rcvwait, and mq_curmsgs fields cannot be counted on to
  6285.  remain fixed between a reading of the fields and any subsequent action within
  6286.  a program. Therefore, it's not clear what use any program could reliably make
  6287.  of this data. The application can only tune itself if it has control over all
  6288.  consumers of the queue and diagnosis is not in the province of POSIX.
  6289.  
  6290.  Also, counting the number of waiting processes precludes implementations in
  6291.  shared memory using pthreads-like synchronization primitives. First, some
  6292.  synchronization primitives don't keep track of the number of sleeping
  6293.  processes (e.g. slow spin). Also, it is difficult or impossible to
  6294.  distinguish multiple sleeping threads within a process from separate sleeping
  6295.  processes.
  6296.  
  6297. ACTION:
  6298.  
  6299.  These fields should be removed.
  6300.  
  6301.  
  6302. --------------------------------------------------------------------------
  6303. @ 23.2 c 32
  6304. 32: Section 23.2 page 201 line(s) 336
  6305.  
  6306. EDITORIAL COMMENT:
  6307.  
  6308.  The type of the *notification parameter is missing. If our other objections
  6309.  are not accepted, this should read ... struct sigevent *notification.
  6310.  
  6311.  
  6312. --------------------------------------------------------------------------
  6313. @ 23.2.7 o 33
  6314. 33: Section 23.2.7 page 202-203 line(s) 370-426
  6315.  
  6316. OBJECTION:
  6317.  
  6318.  In reference to D11 Unresolved Objection 140:
  6319.  
  6320.  The function mq_setattr() provides the capability to dynamically modify the
  6321.  message queue attributes, such as the message maximum size or maximum number
  6322.  of messages. Although this functionality represents a higher degree of
  6323.  flexibility, in our opinion, this flexibility does not justify the efficiency
  6324.  burden imposed on the implementation that has to deal with the possibility of
  6325.  dynamic sizing of the message queue objects. This represents a source for
  6326.  more indeterminate time in the message queuing and dequeuing operations
  6327.  (which could be concurrently executed with this dynamic reconfiguration of
  6328.  the message queue) and a source of complexity and inefficiency for the
  6329.  implementation.
  6330.  
  6331.  Also, making the ability to set the max number of messages and max message
  6332.  size implementation defined only makes this ability unusable by portable
  6333.  applications, and points out that there is no true need for this ability.
  6334.  
  6335. ACTION:
  6336.  
  6337.  Delete the mq_setattr() function, and make the queue attributes static.
  6338.  
  6339.  
  6340. --------------------------------------------------------------------------
  6341. @ 24 o 34
  6342. 34: Section 24 page all line(s) all
  6343.  
  6344. OBJECTION:
  6345.  
  6346.  Realtime files confuse the desired objective -- predictable performance --
  6347.  with mechanisms that have historically been used to obtain predictable
  6348.  performance from disks and/or file systems. This confusion is most evident in
  6349.  the requirements laid on implementations to place data and to organize
  6350.  descriptive information in particular ways. Current disk subsystem
  6351.  technology, including SCSI, RAID, advanced striping, journaling, and recovery
  6352.  technology render much of the low-level detail obsolescent if not obsolete.
  6353.  
  6354.  The specification of low-level architecture and behavior stifle innovation
  6355.  and leave little room to achieve the real goals of fast, predictable access
  6356.  to data.
  6357.  
  6358. ACTION:
  6359.  
  6360.  Delete this chapter. In the alternative, define in rationale only performance
  6361.  metrics for vendor/technology comparison, and forward them to a benchmarking
  6362.  group.
  6363.  
  6364.  Alternatives using fcntl() to pass hints on access characteristics are
  6365.  presented in other objections.
  6366.  
  6367.  
  6368. --------------------------------------------------------------------------
  6369. @ 24 o 35
  6370. 35: Section 24 page 228-230 line(s) 578-625
  6371.  
  6372. OBJECTION:
  6373.  
  6374.  rf_getbuf and rf_freebuf are new interface that are not needed. The usage can
  6375.  be replaced with aligned versions of malloc as used in SunOS and other
  6376.  systems.
  6377.  
  6378. ACTION:
  6379.  
  6380.  Use this existing practice interface or delete this text.
  6381.  
  6382.  
  6383. --------------------------------------------------------------------------
  6384. @ 24 o 36
  6385. 36: Section 24 page all line(s) all
  6386.  
  6387. OBJECTION:
  6388.  
  6389.  The interfaces presented in Section 24 are overly complex to meet the stated
  6390.  needs. The stat structure (defined in <stat.h>) can return the suggested I/O
  6391.  blocksize in the field st_blksize. This allows determination on a
  6392.  file-by-file basis.
  6393.  
  6394.  The existing interface fcntl() can be used to advises the implementation
  6395.  about the expected usage pattern for a file descriptor. The arguments that
  6396.  fcntl() is not type-safe and should be discouraged are not compelling --
  6397.  fcntl has been a general file management interface for many years, and
  6398.  programmers have learned to deal with its impurities.
  6399.  
  6400.  We differ with unresolved objection UO178.D11 in that we would use only
  6401.  F_ADVISE, deleting F_DONTNEED and F_WILLNEED from that objection. We find
  6402.  that the use of struct flock is unnecessary overloading.
  6403.  
  6404. ACTION:
  6405.  
  6406.  Follow the prescription in UO178.D11 with the exception of F_DONTNEED and
  6407.  F_WILLNEED.
  6408.  
  6409.  
  6410. --------------------------------------------------------------------------
  6411. @ 24 o 37
  6412. 37: Section 24 page all line(s) all
  6413.  
  6414. OBJECTION:
  6415.  
  6416.  We partially join in unresolved objections UO168.D11, UO171.D11, UO177.D11,
  6417.  and UO178.D11. So- called "direct I/O" does not belong here. It is
  6418.  disingenuous to claim (response to UO171.D11) that buffering the requests
  6419.  anyway is an acceptable implementation. We challenge the technical reviewer
  6420.  to give a cogent explanation of how manipulating the caching strategy and the
  6421.  buffering strategy separately will give DETERMINISTIC and PORTABLE behavior.
  6422.  
  6423.  This nonsense is not consistent with the claimed rationale for providing the
  6424.  functionality, and tries to solve problems more appropriately solved by
  6425.  standardized performance metrics/methodology and market pressures.
  6426.  
  6427.  Moreover, capabilities for establishing similar functionality are already
  6428.  available on existing UNIX Systems, e.g., use of raw disk partitions.
  6429.  Complicating the I/O subsystem by adding per-file tunable buffering seems a
  6430.  mistake.
  6431.  
  6432. ACTION:
  6433.  
  6434.  Delete all references to "direct I/O" including these lines, definitions, and
  6435.  rationale.
  6436.  
  6437.  
  6438. --------------------------------------------------------------------------
  6439. @ 24 c 38
  6440. 38: Section 24 page 24.5 line(s) 234
  6441.  
  6442. EDITORIAL COMMENT:
  6443.  
  6444.  If our objections relating to direct I/O are accepted, direct I/O is not used
  6445.  in normative text, so this reference in the rationale should be deleted.
  6446.  
  6447. ACTION:
  6448.  
  6449.  Delete lines 785-787.
  6450.  
  6451.  
  6452. --------------------------------------------------------------------------
  6453. @ 24 o 39
  6454. 39: Section 24 page all line(s) all
  6455.  
  6456. OBJECTION:
  6457.  
  6458.  We join in unresolved objections UO169.D11, 170-175, 179, and 180.
  6459.  
  6460.  The reviewer's response to UO170.D11 adds useful information on some existing
  6461.  systems that support "these facilities." The reviewer later mentions that
  6462.  Digital has implemented D9 interfaces on a version of VMS, which further
  6463.  weakens the claim that "these facilities" are necessary and broadly
  6464.  supported. The dismissal of "realtime file systems" ignores the typical
  6465.  implementation of files on modern operating systems using a Virtual File
  6466.  System sort of architecture. The mixing of multiple types of files in a
  6467.  directory hierarchy may preclude a high performance implementation and may,
  6468.  in fact, affect all uses of files due to the support of so-called "realtime
  6469.  files."
  6470.  
  6471.  The argument in UO172.D11 is compelling. Not only are the facilities
  6472.  insufficient to meet the claimed need, they cannot be made complete by
  6473.  breaking up the capabilities buffer.
  6474.  
  6475.  The reviewer's response to UO173.D11 is identical to that for UO172.D11, and
  6476.  does not address the point of UO173. What portable actions can be taken by an
  6477.  application? The capabilities buffer is certainly "a zoo" even after its
  6478.  separation. The syntactic expression does not serve to hide semantic
  6479.  (over-)complexity.
  6480.  
  6481.  We have observed elsewhere that the 'aligned allocator' rf_getbuf should be
  6482.  replaced with an aligned malloc as used in SunOS. (UO174.D11)
  6483.  
  6484.  UO175.D11 and the essentially identical UO179.D11 give additional support to
  6485.  our general comments on this Section.
  6486.  
  6487. ACTION:
  6488.  
  6489.  Delete this chapter. Forward the performance metrics to a standards and/or
  6490.  benchmarking group. (Retain the benchmarks in the rationale if desired.)
  6491.  
  6492.  
  6493. --------------------------------------------------------------------------
  6494. @ 24.3 o 40
  6495. 40: Section 24.3 page 228 line(s) 578-625
  6496.  
  6497. OBJECTION:
  6498.  
  6499.  The functions rf_getbuf() and rf_freebuf() should be compatible with existing
  6500.  practice for aligned allocation.
  6501.  
  6502. ACTION:
  6503.  
  6504.  Replace these names with valloc() as valloc(size) does an aligned allocation.
  6505.  
  6506. --------------------------------------------------------------------------
  6507. --
  6508. Robert L. Knighten                 | knighten@ssd.intel.com
  6509. Intel Supercomputer Systems Division | 
  6510. 15201 N.W. Greenbrier Pkwy.         | (503) 629-4315
  6511. Beaverton, Oregon  97006         | (503) 629-9147 [FAX]
  6512.  
  6513.  
  6514. Volume-Number: Volume 27, Number 66
  6515.  
  6516. From std-unix-request@uunet.UU.NET  Thu Apr  2 18:59:00 1992
  6517. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  6518.     (5.61/UUNET-mail-drop) id AA05230; Thu, 2 Apr 92 18:59:00 -0500
  6519. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  6520.     (5.61/UUNET-internet-primary) id AA27287; Thu, 2 Apr 92 18:58:58 -0500
  6521. Newsgroups: comp.std.unix
  6522. From: Stephen Walli <stephe@mks.com>
  6523. Subject: Re: Is POSIX a waste?
  6524. Message-Id: <1992Apr2.234909.18284@uunet.uu.net>
  6525. Originator: sef@ftp.UU.NET
  6526. Nntp-Posting-Host: ftp.uu.net
  6527. X-Submissions: std-unix@uunet.uu.net
  6528. Organization: UUNET Communications Services
  6529. References: <1992Mar30.205758.2699@uunet.uu.net> <1992Mar31.024454.23050@uunet.uu.net> <1992Mar31.212031.4967@uunet.uu.net> <1992Apr2.025846.29245@uunet.uu.net>
  6530. Date: Thu, 2 Apr 1992 20:42:22 GMT
  6531. Reply-To: std-unix@uunet.UU.NET
  6532. To: std-unix@uunet.UU.NET
  6533. Sender: Network News <news@kithrup.com>
  6534. Source-Info:  From (or Sender) name not authenticated.
  6535.  
  6536. Submitted-by: stephe@mks.com (Stephen Walli)
  6537.  
  6538. In <1992Apr2.025846.29245@uunet.uu.net> tg@utstat.toronto.edu (Tom Glinos) writes:
  6539.  
  6540. >At the risk of being flamed back into the stone age I'll offer
  6541. >the opinion that the whole POSIX exercise has been a waste, for
  6542. >the following reasons.
  6543.  
  6544. No flames. :-)
  6545. I'll leave that to better flamers than I....
  6546.  
  6547. >[1] It's never been clear to me what the original POSIX proposals were
  6548. >supposed to define and accomplish. (What is the deliverable?)
  6549.  
  6550. Where/when are you referring to? 
  6551. The /usr/group standard (POSIX.1's ancestor) had a very definate 
  6552. scope/purpose. Likewise, POSIX.1 has a similar well defined scope/purpose.
  6553. For that matter, so does each and every piece of POSIX. They have all had
  6554. to go through the IEEE's review process for new proposed work items. 
  6555.  
  6556. ``This part of ISO/IEC 9945 defines a standard operating system interface
  6557.   and environment to support application portability at the source-code
  6558.   level.  It is intended to be used by both applications developers and 
  6559.   system implementors.''
  6560.  
  6561. First page, first paragraph of the normative part of the POSIX.1 standard. 
  6562. Similar statement as the first paragraph of POSIX.2, and so on. 
  6563. Each document that is either a real standard, or fairly far along in the 
  6564. development process is clearly declared. 
  6565.  
  6566. >[2] This led to the ever widening number of groups. (More deliverables.)
  6567.  
  6568. No. Each project belonging to each working group serves a clearly defined
  6569. purpose. The breadth of the entire POSIX family of standards is very large, 
  6570. but then the 
  6571. book shelf space of a lot of operating systems User/Programmer documentation
  6572. can be considerable as well. (VMS's historical ``wall of orange'' for 
  6573. instance.)
  6574.  
  6575. >[3] Some groups then started to argue and propose interfaces that in
  6576. >some cases had never been widely implemented or thoroughly studied.
  6577.  
  6578. Yep. Happens. Which is why there is a consensus based process in place to 
  6579. build de jure standards.  And there are people who regularly try to 
  6580. subvert it. Also happens.  Other people try and make it work. Sooner or later
  6581. it all balances out. Sort of like the informal consensus process which 
  6582. surrounds the formal one. 
  6583.  
  6584. P.J. Plauger writing about the politics of standards 
  6585. [specifically the C standard] talked about good politics (when things are 
  6586. going your way) versus ``Damned'' politics (when you're losing the fight.) 
  6587. It's part of the process. But then it's part of any process where there are 
  6588. a lot of people with a diverse set of experiences trying to build 
  6589. something. [No ``blind men identifying an elephant'' jokes, please.]
  6590.  
  6591. And sometimes you lose. Hopefully, they aren't in places that will break
  6592. the standard badly enough to cast into doubt the entire standard or the 
  6593. process that built it.
  6594.  
  6595. >[4] Some groups have let company and market pressures direct what should
  6596. >be an exercise in common sense and good engineering.
  6597.  
  6598. There are rules in the IEEE standards process to do with the balance 
  6599. of membership in working groups (building draft documents) and balloting
  6600. groups (commenting on those drafts). They cannot be heavily weighted 
  6601. towards Users OR Vendors. 
  6602.  
  6603. There is a balance involved between users (wanting the sun and the stars) and
  6604. the vendors who can build something efficient (that will get you to the moon.)
  6605. Somewhere in the middle lies reality. 
  6606.  
  6607. It's all about market pressure and economics at some level. If you want
  6608. great solutions based on ``common sense and good engineering'', live in a 
  6609. research lab, which is probably the closest you'll get to such a perfect
  6610. world. 
  6611.  
  6612. >It's been a bit more than a year since I looked at any POSIX document.
  6613. >If memory serves me correctly it's been about 5 years since the first
  6614. >document was tabled. 
  6615.  
  6616. IEEE 1003.1-1988
  6617.  
  6618. >Has nothing been voted on? 
  6619.  
  6620. IEEE 1003.1-1990 == ISO/IEC 9945-1:1990
  6621. IEEE 1003.3-1991
  6622. In ballot:
  6623. POSIX.2 *
  6624. POSIX.2a *
  6625. POSIX.3.1
  6626. POSIX.4 *
  6627. POSIX.4a
  6628. POSIX.5 *
  6629. POSIX.6
  6630. POSIX.9 *
  6631. POSIX.13
  6632. * -- Optimistically, almost done.
  6633.  
  6634. >When will it all end?
  6635. Wont. Standards change as technology changes. Not as rapidly, but they change.
  6636. New standards are added. Out-of-date standards are removed. Bad standards die. 
  6637.  
  6638. >"Life is so much more meaningful if you take the time to hunt down and 
  6639. > strangle twits who post blather to inappropriate newsgroups." Henry Spencer
  6640.  
  6641. Yes.
  6642.  
  6643. Cheers,
  6644. stephe
  6645.  
  6646.                    ``So there *is* a God. What's your point?''
  6647.  
  6648.  
  6649. Volume-Number: Volume 27, Number 67
  6650.  
  6651. From std-unix-request@uunet.UU.NET  Fri Apr  3 05:44:52 1992
  6652. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  6653.     (5.61/UUNET-mail-drop) id AA07895; Fri, 3 Apr 92 05:44:52 -0500
  6654. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  6655.     (5.61/UUNET-internet-primary) id AA21866; Fri, 3 Apr 92 05:44:53 -0500
  6656. Newsgroups: comp.std.unix
  6657. From: Andy Tanenbaum <ast@cs.vu.nl>
  6658. Subject: Query about POSIX rmdir system call
  6659. Message-Id: <1992Apr3.101844.23646@uunet.uu.net>
  6660. Originator: sef@ftp.UU.NET
  6661. Nntp-Posting-Host: ftp.uu.net
  6662. X-Submissions: std-unix@uunet.uu.net
  6663. Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam
  6664. Date: Fri, 3 Apr 1992 10:05:19 GMT
  6665. Reply-To: std-unix@uunet.UU.NET
  6666. To: std-unix@uunet.UU.NET
  6667. Sender: Network News <news@kithrup.com>
  6668. Source-Info:  From (or Sender) name not authenticated.
  6669.  
  6670. Submitted-by: ast@cs.vu.nl (Andy Tanenbaum)
  6671.  
  6672. Does anyone know what the following program is supposed to do according
  6673. to P1003.1 and why? If the rmdir works, how can things like this be
  6674. implemented in general?
  6675.  
  6676.   main()
  6677.   {
  6678.   #include <unistd.h>
  6679.   
  6680.     mkdir ("D", 0777);
  6681.     rmdir("D/.");
  6682.   }
  6683.  
  6684.  
  6685. Andy Tanenbaum (ast@cs.vu.nl)
  6686.  
  6687.  
  6688. Volume-Number: Volume 27, Number 68
  6689.  
  6690. From std-unix-request@uunet.UU.NET  Fri Apr  3 16:27:25 1992
  6691. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  6692.     (5.61/UUNET-mail-drop) id AA13495; Fri, 3 Apr 92 16:27:25 -0500
  6693. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  6694.     (5.61/UUNET-internet-primary) id AA22614; Fri, 3 Apr 92 16:27:29 -0500
  6695. Newsgroups: comp.std.unix
  6696. From: Doug Gwyn <gwyn@smoke.brl.mil>
  6697. Subject: Re: Is POSIX a waste?
  6698. Message-Id: <1992Apr3.211145.18029@uunet.uu.net>
  6699. Originator: sef@ftp.UU.NET
  6700. Nntp-Posting-Host: ftp.uu.net
  6701. X-Submissions: std-unix@uunet.uu.net
  6702. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  6703. References: <1992Mar31.212031.4967@uunet.uu.net> <1992Apr2.025846.29245@uunet.uu.net> <1992Apr2.234909.18284@uunet.uu.net>
  6704. Date: Fri, 3 Apr 1992 10:29:26 GMT
  6705. Reply-To: std-unix@uunet.UU.NET
  6706. To: std-unix@uunet.UU.NET
  6707. Sender: Network News <news@kithrup.com>
  6708. Source-Info:  From (or Sender) name not authenticated.
  6709.  
  6710. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  6711.  
  6712. In article <1992Apr2.234909.18284@uunet.uu.net> stephe@mks.com (Stephen Walli) writes:
  6713. >There is a balance involved between users (wanting the sun and the stars) and
  6714. >the vendors who can build something efficient (that will get you to the moon.)
  6715. >Somewhere in the middle lies reality. 
  6716.  
  6717. So, the standards drop you into the asteroid belt?
  6718.  
  6719. Seriously, a good standard (one that canonicalized proven principles)
  6720. serves as a platform for further development, while a bad standard
  6721. (one that locks users into inferior technological solutions) serves
  6722. to stifle innovation.  In the opinion of many, several of the newer
  6723. POSIX standards fall into the latter category.  And they cannot just
  6724. be ignored, because both users and vendors have made advance
  6725. commitments to adhere to any and all such standards.  Thus even bad
  6726. standards leave an indelible mark on computing.
  6727.  
  6728.  
  6729. Volume-Number: Volume 27, Number 69
  6730.  
  6731. From std-unix-request@uunet.UU.NET  Fri Apr  3 16:27:33 1992
  6732. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  6733.     (5.61/UUNET-mail-drop) id AA13536; Fri, 3 Apr 92 16:27:33 -0500
  6734. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  6735.     (5.61/UUNET-internet-primary) id AA22653; Fri, 3 Apr 92 16:27:38 -0500
  6736. Newsgroups: comp.std.unix
  6737. From: Cameron Simpson <cameron@spectrum.cs.unsw.oz.au>
  6738. Subject: Re: 1003.2a on comments in the shell
  6739. Message-Id: <1992Apr3.211313.18144@uunet.uu.net>
  6740. Originator: sef@ftp.UU.NET
  6741. Nntp-Posting-Host: ftp.uu.net
  6742. X-Submissions: std-unix@uunet.uu.net
  6743. Organization: CS&E Computing Facility, Uni Of NSW, Oz
  6744. References: <1992Mar30.205758.2699@uunet.uu.net> <1992Mar31.024454.23050@uunet.uu.net>
  6745. Date: Sat, 4 Apr 1992 03:11:13 GMT
  6746. Reply-To: std-unix@uunet.UU.NET
  6747. To: std-unix@uunet.UU.NET
  6748. Sender: Network News <news@kithrup.com>
  6749. Source-Info:  From (or Sender) name not authenticated.
  6750.  
  6751. Submitted-by: cameron@spectrum.cs.unsw.oz.au (Cameron Simpson)
  6752.  
  6753. djm@eng.umd.edu (David J. MacKenzie) writes:
  6754. >> What does
  6755. >>     echo a # b c
  6756. >> produce if typed at an interactive shell?  There is one sh-style shell out
  6757. >> in the wide world that will echo 'a # b c' instead of just 'a' and I'd like
  6758. >> to know if this behavior is POSIX-compiliant.
  6759. [...]
  6760. >The only explicit mention of `#' for the shell in p1003.2a is in the
  6761. >description of the Vi editing mode.
  6762.  
  6763. I hope not. Every Bourne shell I've ever used considered that any word
  6764. commencing with an unquoted # introduces a comment extending through until
  6765. the end of the line. If POSIX breaks this (even in interactive mode) lots
  6766. of people will be pissed. Me for one.
  6767.     - Cameron Simpson
  6768.       cameron@cs.unsw.oz.au
  6769.  
  6770. P.S.    Consider the chaos when it's no longer safe to cat a script and
  6771.     cut/paste some of it into some shell window to get something done.
  6772.     Not a great example, but convenient and not uncommon in a windowing
  6773.     environment. Changing the rules for interactive mode is something to
  6774.     approach with fear and trepidation.
  6775.  
  6776.  
  6777. Volume-Number: Volume 27, Number 70
  6778.  
  6779. From std-unix-request@uunet.UU.NET  Fri Apr  3 16:27:39 1992
  6780. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  6781.     (5.61/UUNET-mail-drop) id AA13543; Fri, 3 Apr 92 16:27:39 -0500
  6782. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  6783.     (5.61/UUNET-internet-primary) id AA22686; Fri, 3 Apr 92 16:27:45 -0500
  6784. Newsgroups: comp.std.unix
  6785. From: Fred Zlotnick <fred@mindcraft.com>
  6786. Subject: Re: Query about POSIX rmdir system call
  6787. Message-Id: <1992Apr3.211357.18216@uunet.uu.net>
  6788. Originator: sef@ftp.UU.NET
  6789. Nntp-Posting-Host: ftp.uu.net
  6790. X-Submissions: std-unix@uunet.uu.net
  6791. Organization: Mindcraft, Inc.
  6792. References: <1992Apr3.101844.23646@uunet.uu.net>
  6793. Date: Fri, 3 Apr 1992 18:21:49 GMT
  6794. Reply-To: std-unix@uunet.UU.NET
  6795. To: std-unix@uunet.UU.NET
  6796. Sender: Network News <news@kithrup.com>
  6797. Source-Info:  From (or Sender) name not authenticated.
  6798.  
  6799. Submitted-by: fred@mindcraft.com (Fred Zlotnick)
  6800.  
  6801. In article <1992Apr3.101844.23646@uunet.uu.net> ast@cs.vu.nl (Andy Tanenbaum) writes:
  6802. >Does anyone know what the following program is supposed to do according
  6803. >to P1003.1 and why? If the rmdir works, how can things like this be
  6804. >implemented in general?
  6805. >
  6806. >  main()
  6807. >  {
  6808. >  #include <unistd.h>
  6809. >  
  6810. >    mkdir ("D", 0777);
  6811. >    rmdir("D/.");
  6812. >  }
  6813.  
  6814. First, my personal opinion:  The directory "D" in the current directory
  6815. (the one just created by the mkdir() call) should be removed.  The relevant
  6816. clause in 1003.1-1990 is 2.3.6, "pathname resolution", which says in part:
  6817.  
  6818.     Pathname resolution is performed for a process to resolve a
  6819.     pathname to a particular file in a file hierarchy...
  6820.  
  6821.     Each filename in the pathname is located in the directory
  6822.     specified by its predecessor.... If the pathname does not
  6823.     begin with a slash, the predecessor of the first filename
  6824.     of the pathname is taken to be the current working directory
  6825.     of the process...
  6826.  
  6827.     The special filename, dot, refers to the directory specified
  6828.     by its predecessor.
  6829.  
  6830. Collective these imply (IMHO) that the pathname "D/." resolves to "D" in
  6831. the current directory.  However, as Bob Lenk once said in this newsgroup,
  6832. "It is worth pointing out that official interpretations of an IEEE
  6833. standard can only be issued by the IEEE."
  6834.  
  6835. Having said all that, I tried this on six different systems, at least three
  6836. of which claim to be POSIX.1 conforming.  It failed on all of them, with
  6837. errno = EINVAL on five of the six.  EINVAL is not given as one of the errno
  6838. values for any error specified by POSIX.1.
  6839.  
  6840. The P1003.3.1 Draft 13 test assertions for clause 2.3.6 specify behavior
  6841. for rmdir (among other functions) for pathnames that have a "." as an
  6842. initial component or an intermediate component, but not as a final component.
  6843. That's no help.  I think it's time for an official interpretation.
  6844.  
  6845. Incidentally, the 0777 in the mkdir call is not POSIX-portable.  It will,
  6846. of course, work on all known systems (known to me, anyway) but the ugly
  6847. construct (mode_t)(S_IRWXU | S_IRWXG | S_IRWXO) is its POSIX-portable
  6848. replacement.
  6849. ----
  6850. Fred Zlotnick            |  POSIX is coming! POSIX is coming!
  6851. fred@mindcraft.com        |          -- Stephen Walli
  6852. ...!{uupsi,ames}!mindcrf!fred    |
  6853. #include <std/disclaimer>    |
  6854.  
  6855.  
  6856. Volume-Number: Volume 27, Number 71
  6857.  
  6858. From std-unix-request@uunet.UU.NET  Sat Apr  4 16:02:40 1992
  6859. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  6860.     (5.61/UUNET-mail-drop) id AA22601; Sat, 4 Apr 92 16:02:40 -0500
  6861. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  6862.     (5.61/UUNET-internet-primary) id AA16124; Sat, 4 Apr 92 16:02:45 -0500
  6863. Newsgroups: comp.std.unix
  6864. From: Chuck Karish <karish@mindcraft.com>
  6865. Subject: Re: Is POSIX a waste?
  6866. Message-Id: <1992Apr4.204642.6108@uunet.uu.net>
  6867. Originator: sef@ftp.UU.NET
  6868. Nntp-Posting-Host: ftp.uu.net
  6869. X-Submissions: std-unix@uunet.uu.net
  6870. Organization: Mindcraft, Inc.
  6871. References: <1992Mar31.024454.23050@uunet.uu.net> <1992Mar31.212031.4967@uunet.uu.net> <1992Apr2.025846.29245@uunet.uu.net>
  6872. Date: Fri, 3 Apr 1992 00:38:56 GMT
  6873. Reply-To: std-unix@uunet.UU.NET
  6874. To: std-unix@uunet.UU.NET
  6875. Sender: Network News <news@kithrup.com>
  6876. Source-Info:  From (or Sender) name not authenticated.
  6877.  
  6878. Submitted-by: karish@mindcraft.com (Chuck Karish)
  6879.  
  6880. In article <1992Apr2.025846.29245@uunet.uu.net> tg@utstat.toronto.edu
  6881. (Tom Glinos) writes:
  6882. >[1] It's never been clear to me what the original POSIX proposals were
  6883. >supposed to define and accomplish. (What is the deliverable?)
  6884.  
  6885. The "original POSIX proposals" were to codify existing
  6886. practice on UNIX and UNIX-like systems in a vendor-neutral
  6887. form.  The deliverable is the POSIX.1 standard (ISO/IEEE
  6888. 9945-1, 1990).
  6889.  
  6890. >[2] This led to the ever widening number of groups. (More deliverables.)
  6891.  
  6892. That's the price of success.  Vendor-neutral, standard
  6893. specifications were found to be desirable in fields beyond
  6894. the scope of POSIX.1.
  6895.  
  6896. >[3] Some groups then started to argue and propose interfaces that in
  6897. >some cases had never been widely implemented or thoroughly studied.
  6898.  
  6899. Some of this was necessary because existing practice
  6900. included conflicting implementations, some of it was
  6901. necessary because existing practice was based on incomplete
  6902. or non-extensible abstractions, and some was gratuitous.
  6903. It's a bit of an exaggeration to blow this issue up and say
  6904. that it invalidates the POSIX standards process.
  6905.  
  6906. >[4] Some groups have let company and market pressures direct what should
  6907. >be an exercise in common sense and good engineering.
  6908.  
  6909. This complaint contradicts [3], above.  The cases where
  6910. POSIX committees have been criticized for being too
  6911. innovative have resulted from attempts to use common
  6912. sense and engineering judgement where others would have
  6913. preferred simple description of existing implementations,
  6914. which are blessed by the companies that own them and
  6915. by the marketplace (installed base).
  6916.  
  6917. >If memory serves me correctly it's been about 5 years since the first
  6918. >document was tabled. Has nothing been voted on?
  6919.  
  6920. POSIX.1 has been a standard since August, 1988.  POSIX.3
  6921. has been a standard for a little more than a year.
  6922.  
  6923. >When will it all end?
  6924.  
  6925. When the market for portable software disappears.
  6926.  
  6927.     Chuck Karish        karish@mindcraft.com
  6928.     Mindcraft, Inc.        (415) 323-9000
  6929.  
  6930.  
  6931. Volume-Number: Volume 27, Number 72
  6932.  
  6933. From std-unix-request@uunet.UU.NET  Sun Apr  5 17:48:57 1992
  6934. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  6935.     (5.61/UUNET-mail-drop) id AA05321; Sun, 5 Apr 92 17:48:57 -0400
  6936. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  6937.     (5.61/UUNET-internet-primary) id AA21962; Sun, 5 Apr 92 17:48:55 -0400
  6938. Newsgroups: comp.std.unix
  6939. From: Andy Tanenbaum <ast@cs.vu.nl>
  6940. Subject: Query about implementing FIFOs
  6941. Message-Id: <1992Apr5.213418.28871@uunet.uu.net>
  6942. Originator: sef@ftp.UU.NET
  6943. Nntp-Posting-Host: ftp.uu.net
  6944. X-Submissions: std-unix@uunet.uu.net
  6945. Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam
  6946. Date: Sun, 5 Apr 1992 21:08:56 GMT
  6947. Reply-To: std-unix@uunet.UU.NET
  6948. To: std-unix@uunet.UU.NET
  6949. Sender: Network News <news@kithrup.com>
  6950. Source-Info:  From (or Sender) name not authenticated.
  6951.  
  6952. Submitted-by: ast@cs.vu.nl (Andy Tanenbaum)
  6953.  
  6954. Suppose a process opens (an empty) FIFO and writes some data to it.
  6955. Then it forks.  The parent goes to sleep for a while, holding the FIFO
  6956. open.  The child reads 5 bytes, then closes the FIFO.  Then it opens the
  6957. FIFO again and reads 5 more bytes.
  6958.  
  6959. I presume POSIX requires that the second read return bytes 5-9 of the
  6960. original write, but how can this be implemented in a reasonable way?
  6961. There is no place in the i-node to keep track of the current file position,
  6962. and copying the FIFO to shift everything down 5 bytes doesn't sound like
  6963. much fun.  Trying to figure out where the start of data is from the parent's
  6964. file pointer doesn't help, and besides, if the parent had closed too, that
  6965. wouldn't be there.  How is this normally implemented?
  6966.  
  6967. Andy Tanenbaum (ast@cs.vu.nl)
  6968.  
  6969. Volume-Number: Volume 27, Number 73
  6970.  
  6971. From std-unix-request@uunet.UU.NET  Wed Apr  8 02:17:06 1992
  6972. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  6973.     (5.61/UUNET-mail-drop) id AA24034; Wed, 8 Apr 92 02:17:06 -0400
  6974. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  6975.     (5.61/UUNET-internet-primary) id AA11557; Wed, 8 Apr 92 02:17:04 -0400
  6976. Newsgroups: comp.std.unix
  6977. From: John Gottschalk <john@citr.uq.oz.au>
  6978. Subject: threads library
  6979. Message-Id: <1992Apr8.060502.13348@uunet.uu.net>
  6980. Originator: sef@ftp.UU.NET
  6981. Nntp-Posting-Host: ftp.uu.net
  6982. X-Submissions: std-unix@uunet.uu.net
  6983. Organization: Prentice Centre, University of Queensland
  6984. Date: Wed, 8 Apr 1992 05:26:50 GMT
  6985. Reply-To: std-unix@uunet.UU.NET
  6986. To: std-unix@uunet.UU.NET
  6987. Sender: Network News <news@kithrup.com>
  6988. Source-Info:  From (or Sender) name not authenticated.
  6989.  
  6990. Submitted-by: john@citr.uq.oz.au (John Gottschalk)
  6991.  
  6992. I am considering using the SUN light-weight process package (a threads library)
  6993. for some software development. I would like to know if there are
  6994. any standards for a threads library, so that the software can be fairly
  6995. portable. Do SVR4 or OSF offer a threads library?
  6996.  
  6997.             -- regards, John Gottschalk
  6998.  
  6999. John Gottschalk (john@citr.uq.oz) 
  7000. Centre for Information Technology Research,
  7001. The University of Queensland, 4072, 
  7002. Brisbane, Queensland, Australia,
  7003. +61 7 365 4321 (phone), +61 7 365 4399 (fax)
  7004.  
  7005. Volume-Number: Volume 27, Number 74
  7006.  
  7007. From std-unix-request@uunet.UU.NET  Wed Apr  8 02:22:26 1992
  7008. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  7009.     (5.61/UUNET-mail-drop) id AA24112; Wed, 8 Apr 92 02:22:26 -0400
  7010. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  7011.     (5.61/UUNET-internet-primary) id AA12137; Wed, 8 Apr 92 02:22:21 -0400
  7012. Newsgroups: comp.std.unix
  7013. From: Andrew Josey <andrew@uel.co.uk>
  7014. Subject: submission for comp.std.unix
  7015. Message-Id: <1992Apr8.060636.13488@uunet.uu.net>
  7016. Originator: sef@ftp.UU.NET
  7017. Nntp-Posting-Host: ftp.uu.net
  7018. X-Submissions: std-unix@uunet.uu.net
  7019. Organization: UUNET Communications Services
  7020. Date: Tue, 7 Apr 1992 15:42:00 GMT
  7021. Reply-To: std-unix@uunet.UU.NET
  7022. To: std-unix@uunet.UU.NET
  7023. Sender: Network News <news@kithrup.com>
  7024. Source-Info:  From (or Sender) name not authenticated.
  7025.  
  7026. Submitted-by: andrew@uel.co.uk (Andrew Josey)
  7027.  
  7028.         X/OPEN USERS GROUP MEETING 
  7029.  
  7030. DATE: May 21st 1992
  7031.  
  7032. VENUE: X/Open offices Washington DC, USA 
  7033.  
  7034. X/Open is  running a series of one day user group meetings to provide 
  7035. information and announcements on the X/Open branding programme
  7036. and the use of VSX (the Verification Suite for X/Open).
  7037.   
  7038. The second of these meetings will take place at X/Open's offices in  
  7039. Washington D.C.  on May 21st.
  7040.   
  7041. All prospective users and interested parties are invited to attend.
  7042. Attendees will also include current VSX licensee's, distributors, and X/Open
  7043. company users.
  7044.   
  7045. * DRAFT AGENDA 
  7046.  
  7047. 0930-10.00    Welcome and introductions    James Andrews
  7048.  
  7049. 1000-1100    VSX its development and implementation    Tom Norris
  7050.  
  7051. Tom will outline the VSX development process, and explain in simple 
  7052. terms how VSX works. Tom will also give a brief tutorial on the Test 
  7053. Environment Toolkit and its role in future test strategy.
  7054.  
  7055. 1100-1200    Branding UNIX System V Release 4    Andrew Josey
  7056.  
  7057. Andrew will relate his experience in branding UNIX SVR4.  His talk 
  7058. will include illustrations of the practical problems of using VSX for testing
  7059. prior to applying for the brand.
  7060.  
  7061. 1200-1300    Making an application for branding    Jenny Wilkinson
  7062.  
  7063. Jenny will explain how to put together a branding application that meets 
  7064. X/Open requirements. She will outline the activities she undertakes in 
  7065. processing the branding application and the typical problems encountered 
  7066. and how they can be avoided.
  7067.  
  7068. 1300-1400    Lunch
  7069.  
  7070. 1400-1500    Test tool quality assurance and     James Andrews
  7071.         test developments.
  7072.  
  7073. James will outline the quality assurance techniques used by X/Open to 
  7074. qualify test tools prior to their release.  He will summarise all the current 
  7075. release programs including a description of the test technology currently 
  7076. under development.  He will also explain the quality assurance methodologies
  7077. and procedures associated with branding to deliver to Users the
  7078. confidence in the conformity of branded products. 
  7079.  
  7080. 1500-1600    XPG4 branding and application         James de Raeve
  7081.             registration launch    
  7082.  
  7083. James will explain X/Open's future plans for the branding program, in 
  7084. particular the launch of XPG4. He will highlight the expected differences 
  7085. between the XPG3 and XPG4 brands. James will also explain the application
  7086. registration scheme.
  7087.  
  7088. 1600-1700    A test centre perspective        TBD
  7089.  
  7090. An X/Open test centre will present their experiences in the 
  7091. distribution of VSX and formal testing.
  7092.  
  7093. 1700-1730    Questions and answers    All Speakers
  7094.  
  7095. All speakers will allow some time for questions, however this session 
  7096. gives you an opportunity to ask any burning question not answered 
  7097. earlier.
  7098.  
  7099. 1730-1745    Summing up and Close of meeting    James Andrews
  7100.  
  7101.  
  7102. * List of Speakers
  7103.  
  7104. Tom Norris is product manager of VSX at X/Open's VSX developer and 
  7105. manufacturer, UniSoft
  7106.  
  7107. Andrew Josey manages the branding of UNIX System Laboratories' 
  7108. products including System V Release 4. He is the UNIX International 
  7109. representative at the X/Open Verification Working Group.
  7110.  
  7111. Jenny Wilkinson is X/Open's branding administrator. She manages all 
  7112. aspects of the processing of branding applications.
  7113.  
  7114. James Andrews is X/Open's Conformance Quality Manger. He is 
  7115. responsible for the quality of the branding program and project manages 
  7116. all test tool procurements and developments.
  7117.  
  7118. James de Raeve is X/Open's Conformance Strategy Manager.  He is 
  7119. responsible for all aspects of the branding programme and in particular its 
  7120. direction and development
  7121.  
  7122.  
  7123. * TO RESERVE A PLACE
  7124.  
  7125. Lunch will be provided and there will be a fee for attendance of US$350.
  7126. Please let Anna Tomasello at X/Open know if you would like us
  7127. to reserve a place for you on this event. Closing date for
  7128. applications is Friday May 8th.
  7129.  
  7130.  
  7131. Anna Tomasello                                        X/Open Company Limited
  7132. Technical Administrator                             Apex Plaza, Forbury Road
  7133. EMail:a.tomasello@xopen.co.uk                      Reading, England, RG1 1AX
  7134. FAX: +(44) (0)734 500110                            Tel: +(44) (0)734 508311
  7135.  
  7136.  
  7137. Volume-Number: Volume 27, Number 74
  7138.  
  7139. From std-unix-request@uunet.UU.NET  Wed Apr  8 02:22:28 1992
  7140. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  7141.     (5.61/UUNET-mail-drop) id AA24117; Wed, 8 Apr 92 02:22:28 -0400
  7142. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  7143.     (5.61/UUNET-internet-primary) id AA12142; Wed, 8 Apr 92 02:22:24 -0400
  7144. Newsgroups: comp.std.unix
  7145. From: Andrew Josey <andrew@uel.co.uk>
  7146. Subject: submission for comp.std.unix
  7147. Message-Id: <1992Apr8.060734.13595@uunet.uu.net>
  7148. Originator: sef@ftp.UU.NET
  7149. Nntp-Posting-Host: ftp.uu.net
  7150. X-Submissions: std-unix@uunet.uu.net
  7151. Organization: UUNET Communications Services
  7152. Date: Tue, 7 Apr 1992 15:42:00 GMT
  7153. Reply-To: std-unix@uunet.UU.NET
  7154. To: std-unix@uunet.UU.NET
  7155. Sender: Network News <news@kithrup.com>
  7156. Source-Info:  From (or Sender) name not authenticated.
  7157.  
  7158. Submitted-by: andrew@uel.co.uk (Andrew Josey)
  7159.  
  7160.         X/OPEN USERS GROUP MEETING 
  7161.  
  7162. DATE: May 21st 1992
  7163.  
  7164. VENUE: X/Open offices Washington DC, USA 
  7165.  
  7166. X/Open is  running a series of one day user group meetings to provide 
  7167. information and announcements on the X/Open branding programme
  7168. and the use of VSX (the Verification Suite for X/Open).
  7169.   
  7170. The second of these meetings will take place at X/Open's offices in  
  7171. Washington D.C.  on May 21st.
  7172.   
  7173. All prospective users and interested parties are invited to attend.
  7174. Attendees will also include current VSX licensee's, distributors, and X/Open
  7175. company users.
  7176.   
  7177. * DRAFT AGENDA 
  7178.  
  7179. 0930-10.00    Welcome and introductions    James Andrews
  7180.  
  7181. 1000-1100    VSX its development and implementation    Tom Norris
  7182.  
  7183. Tom will outline the VSX development process, and explain in simple 
  7184. terms how VSX works. Tom will also give a brief tutorial on the Test 
  7185. Environment Toolkit and its role in future test strategy.
  7186.  
  7187. 1100-1200    Branding UNIX System V Release 4    Andrew Josey
  7188.  
  7189. Andrew will relate his experience in branding UNIX SVR4.  His talk 
  7190. will include illustrations of the practical problems of using VSX for testing
  7191. prior to applying for the brand.
  7192.  
  7193. 1200-1300    Making an application for branding    Jenny Wilkinson
  7194.  
  7195. Jenny will explain how to put together a branding application that meets 
  7196. X/Open requirements. She will outline the activities she undertakes in 
  7197. processing the branding application and the typical problems encountered 
  7198. and how they can be avoided.
  7199.  
  7200. 1300-1400    Lunch
  7201.  
  7202. 1400-1500    Test tool quality assurance and     James Andrews
  7203.         test developments.
  7204.  
  7205. James will outline the quality assurance techniques used by X/Open to 
  7206. qualify test tools prior to their release.  He will summarise all the current 
  7207. release programs including a description of the test technology currently 
  7208. under development.  He will also explain the quality assurance methodologies
  7209. and procedures associated with branding to deliver to Users the
  7210. confidence in the conformity of branded products. 
  7211.  
  7212. 1500-1600    XPG4 branding and application         James de Raeve
  7213.             registration launch    
  7214.  
  7215. James will explain X/Open's future plans for the branding program, in 
  7216. particular the launch of XPG4. He will highlight the expected differences 
  7217. between the XPG3 and XPG4 brands. James will also explain the application
  7218. registration scheme.
  7219.  
  7220. 1600-1700    A test centre perspective        TBD
  7221.  
  7222. An X/Open test centre will present their experiences in the 
  7223. distribution of VSX and formal testing.
  7224.  
  7225. 1700-1730    Questions and answers    All Speakers
  7226.  
  7227. All speakers will allow some time for questions, however this session 
  7228. gives you an opportunity to ask any burning question not answered 
  7229. earlier.
  7230.  
  7231. 1730-1745    Summing up and Close of meeting    James Andrews
  7232.  
  7233.  
  7234. * List of Speakers
  7235.  
  7236. Tom Norris is product manager of VSX at X/Open's VSX developer and 
  7237. manufacturer, UniSoft
  7238.  
  7239. Andrew Josey manages the branding of UNIX System Laboratories' 
  7240. products including System V Release 4. He is the UNIX International 
  7241. representative at the X/Open Verification Working Group.
  7242.  
  7243. Jenny Wilkinson is X/Open's branding administrator. She manages all 
  7244. aspects of the processing of branding applications.
  7245.  
  7246. James Andrews is X/Open's Conformance Quality Manger. He is 
  7247. responsible for the quality of the branding program and project manages 
  7248. all test tool procurements and developments.
  7249.  
  7250. James de Raeve is X/Open's Conformance Strategy Manager.  He is 
  7251. responsible for all aspects of the branding programme and in particular its 
  7252. direction and development
  7253.  
  7254.  
  7255. * TO RESERVE A PLACE
  7256.  
  7257. Lunch will be provided and there will be a fee for attendance of US$350.
  7258. Please let Anna Tomasello at X/Open know if you would like us
  7259. to reserve a place for you on this event. Closing date for
  7260. applications is Friday May 8th.
  7261.  
  7262.  
  7263. Anna Tomasello                                        X/Open Company Limited
  7264. Technical Administrator                             Apex Plaza, Forbury Road
  7265. EMail:a.tomasello@xopen.co.uk                      Reading, England, RG1 1AX
  7266. FAX: +(44) (0)734 500110                            Tel: +(44) (0)734 508311
  7267.  
  7268.  
  7269. [ Apologies if this gets out twice -- mod ]
  7270.  
  7271. Volume-Number: Volume 27, Number 75
  7272.  
  7273. From std-unix-request@uunet.UU.NET  Thu Apr  9 17:14:22 1992
  7274. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  7275.     (5.61/UUNET-mail-drop) id AA07962; Thu, 9 Apr 92 17:14:22 -0400
  7276. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  7277.     (5.61/UUNET-internet-primary) id AA20173; Thu, 9 Apr 92 17:14:28 -0400
  7278. From: Henry Spencer <henry@zoo.toronto.edu>
  7279. Newsgroups: comp.std.unix
  7280. Subject: Re: Query about implementing FIFOs
  7281. Message-Id: <1992Apr9.193728.27989@uunet.uu.net>
  7282. Article-I.D.: uunet.1992Apr9.193728.27989
  7283. References: <1992Apr5.213418.28871@uunet.uu.net>
  7284. Organization: U of Toronto Zoology
  7285. Originator: sef@ftp.UU.NET
  7286. Nntp-Posting-Host: ftp.uu.net
  7287. X-Submissions: std-unix@uunet.uu.net
  7288. Date: 9 Apr 92 16:58:13 GMT
  7289. Reply-To: std-unix@uunet.UU.NET
  7290. To: std-unix@uunet.UU.NET
  7291. Sender: Network News <news@kithrup.com>
  7292. Source-Info:  From (or Sender) name not authenticated.
  7293.  
  7294. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  7295.  
  7296. >Submitted-by: ast@cs.vu.nl (Andy Tanenbaum)
  7297. >There is no place in the i-node to keep track of the current file position,
  7298. >and copying the FIFO to shift everything down 5 bytes doesn't sound like
  7299. >much fun.  Trying to figure out where the start of data is from the parent's
  7300. >file pointer doesn't help, and besides, if the parent had closed too, that
  7301. >wouldn't be there.  How is this normally implemented?
  7302.  
  7303. Note that 6.3.1.2 says that if all file descriptors associated with a FIFO
  7304. have been closed, any remaining data goes away.  The issue arises only if
  7305. somebody has kept the FIFO open, so the usual approach is for the kernel
  7306. to retain some extra information in core for an *open* FIFO.  Andy is
  7307. correct that file pointers aren't useful, if only because there can be
  7308. more than one of them if several processes are involved; the extra
  7309. information has to be associated with the (in-core) inode, not with a
  7310. particular customer.
  7311. -- 
  7312. GCC 2.0 is to C as SVR4 is to Unix.     | Henry Spencer @ U of Toronto Zoology
  7313.                              -Dick Dunn |  henry@zoo.toronto.edu  utzoo!henry
  7314.  
  7315.  
  7316. Volume-Number: Volume 27, Number 76
  7317.  
  7318. From std-unix-request@uunet.UU.NET  Thu Apr  9 18:58:01 1992
  7319. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  7320.     (5.61/UUNET-mail-drop) id AA12047; Thu, 9 Apr 92 18:58:01 -0400
  7321. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  7322.     (5.61/UUNET-internet-primary) id AA19823; Thu, 9 Apr 92 18:58:04 -0400
  7323. Newsgroups: comp.std.unix
  7324. From: Bob Lenk <rml@hpfcdc.fc.hp.com>
  7325. Subject: Re: Report on POSIX.6, Jan. 1992
  7326. Message-Id: <1992Apr9.224808.9753@uunet.uu.net>
  7327. Originator: sef@ftp.UU.NET
  7328. Nntp-Posting-Host: ftp.uu.net
  7329. X-Submissions: std-unix@uunet.uu.net
  7330. Organization: UUNET Technologies, Inc
  7331. References: <1992Apr2.025223.27860@uunet.uu.net>
  7332. Date: Thu, 9 Apr 1992 22:45:35 GMT
  7333. Reply-To: std-unix@uunet.UU.NET
  7334. To: std-unix@uunet.UU.NET
  7335. Sender: Network News <news@kithrup.com>
  7336. Source-Info:  From (or Sender) name not authenticated.
  7337.  
  7338. Submitted-by: rml@hpfcdc.fc.hp.com (Bob Lenk)
  7339.  
  7340. In article <1992Apr2.025223.27860@uunet.uu.net> stephe@mks.com (Stephen Walli)
  7341. writes:
  7342.  
  7343. >          Taken to  an  extreme, this  means  that regardless  of  the
  7344. >          ballot pool  size,  if 3  people  vote affirmative, 1  votes
  7345. >          negative and the  rest abstain, the  initiative passes.  The
  7346. >          moral of the story is:  abstain only as a last resort, there
  7347. >          may be deleterious side effects.
  7348.  
  7349. While this is true, I wouldn't necessarily draw the conclusion that I
  7350. infer (vote negative rather than abstain).  Remember that a negative
  7351. ballot must contain specific objections which, if addressed, would make
  7352. the ballot affirmative.  Thus a negative ballot is actually an
  7353. affirmative response for the subsequent ballot with preconditions.  In
  7354. other words, a negative ballot which doesn't cover all of its
  7355. submitter's real objections to the standard could have even more
  7356. "deleterious side effects".
  7357.  
  7358. Perhaps the conclusion I inferred was not intended.  Another possible
  7359. conclusion is "do not submit a ballot rather than abstain".  I agree
  7360. that it makes sense not to join a balloting group rather than to join
  7361. and abstain.  If one has chosen to join, I think it is appropriate to
  7362. submit a ballot.
  7363.  
  7364.         Bob Lenk
  7365.         rml@fc.hp.com
  7366.         {uunet,hplabs}!fc.hp.com!rml
  7367.  
  7368.  
  7369. Volume-Number: Volume 27, Number 77
  7370.  
  7371. From std-unix-request@uunet.UU.NET  Mon Apr 13 19:41:32 1992
  7372. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7373.     (5.61/UUNET-mail-drop) id AA20036; Mon, 13 Apr 92 19:41:32 -0400
  7374. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  7375.     (5.61/UUNET-internet-primary) id AA09275; Mon, 13 Apr 92 19:41:24 -0400
  7376. From: Joseph Berry <berry@socrates.umd.edu>
  7377. Newsgroups: comp.std.unix
  7378. Subject: Re: threads library
  7379. Message-Id: <sd58rINNbb@ftp.UU.NET>
  7380. Article-I.D.: ftp.sd58rINNbb
  7381. References: <1992Apr8.060502.13348@uunet.uu.net>
  7382. Organization: UUNET Technologies, Inc.
  7383. Nntp-Posting-Host: ftp.uu.net
  7384. X-Submissions: std-unix@uunet.uu.net
  7385. Date: 13 Apr 92 23:25:15 GMT
  7386. Reply-To: std-unix@uunet.uu.net
  7387. To: std-unix@uunet.UU.NET
  7388. Sender: Network News <news@kithrup.com>
  7389. Source-Info:  From (or Sender) name not authenticated.
  7390.  
  7391. Submitted-by: berry@socrates.umd.edu (Joseph Berry)
  7392.  
  7393. john@citr.uq.oz.au (John Gottschalk) writes:
  7394.  
  7395. >Submitted-by: john@citr.uq.oz.au (John Gottschalk)
  7396.  
  7397. >I am considering using the SUN light-weight process package (a threads library)
  7398. >for some software development. I would like to know if there are
  7399. >any standards for a threads library, so that the software can be fairly
  7400. >portable. Do SVR4 or OSF offer a threads library?
  7401.  
  7402. OSF offers a threads library. Furthermore, there is a pthreads "standard"
  7403. (not yet approved) POSIX 1003.4a.
  7404.  
  7405. Joe Berry
  7406. Strategic Software Group, Ltd., 3402 Shelburne Rd, Baltimore, MD 21208
  7407. E-mail:  joe@ssgltd.com  or  uunet!ssgltd!joe
  7408. Phone:  410-764-5668;  Fax: 410-358-2106;  Pager: 410-796-6861
  7409.  
  7410. Volume-Number: Volume 27, Number 78
  7411.  
  7412. From std-unix-request@uunet.UU.NET  Tue Apr 14 21:09:18 1992
  7413. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7414.     (5.61/UUNET-mail-drop) id AA11897; Tue, 14 Apr 92 21:09:18 -0400
  7415. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  7416.     (5.61/UUNET-internet-primary) id AA24130; Tue, 14 Apr 92 21:09:14 -0400
  7417. From: Bob Robillard <duke@sunni.ctsd.bellcore.com>
  7418. Newsgroups: comp.std.unix
  7419. Subject: Mock Ballot on 1003.7.1, POSIX Printing
  7420. Message-Id: <sfrvuINNndt@ftp.UU.NET>
  7421. Organization: UUNET Technologies, Inc.
  7422. Nntp-Posting-Host: ftp.uu.net
  7423. X-Submissions: std-unix@uunet.uu.net
  7424. Date: 15 Apr 92 00:05:18 GMT
  7425. Reply-To: std-unix@uunet.uu.net
  7426. To: std-unix@uunet.UU.NET
  7427. Sender: Network News <news@kithrup.com>
  7428. Source-Info:  From (or Sender) name not authenticated.
  7429.  
  7430. Submitted-by: duke@sunni.ctsd.bellcore.com (Bob Robillard)
  7431.  
  7432. IEEE P1003.7 POSIX is about to start a "mock ballot" of the
  7433. POSIX Print System Requirements.  POSIX is a group of IEEE
  7434. sponsored standards defining a UNIX-like operating
  7435. environment.  The System Administration Working Group
  7436. (1003.7) is the group responsible for system administration
  7437. standards (i.e. the type of operations traditionally found
  7438. in section 8 of the user manuals--fsck, lpc, mkfs, etc).
  7439. The document ready for mock ballot is 1003.7.1, Draft
  7440. Standard for Information Technology--Portable Operating
  7441. System Interface(POSIX)--System Adminstration
  7442. Interface/Printing.
  7443.  
  7444. A mock ballot is an unofficial, non-binding version of the
  7445. regular ballot procedures.  It is performed to get early
  7446. feedback on the direction a standard is taking.  1003.7 has
  7447. adopted MIT's Palladium printing system as the base for its
  7448. printing standard, and one of the goals of this mock ballot
  7449. is to test the acceptability of this choice.
  7450.  
  7451. Even if you cannot fully participate in the mock ballot,
  7452. 1003.7 would greatly appreciate feedback on the choice of
  7453. Palladium as the base for this document.  While we would
  7454. appreciate extensive comments, a simple yes vote, or a no
  7455. vote with an explanation about why Palladium is not an
  7456. acceptable base, would be very helpful.
  7457.  
  7458. Please fill out the attached form should you wish to join
  7459. the mock ballot group.
  7460.  
  7461. Martin Kirk
  7462. Chair 1003.7
  7463.  
  7464.  
  7465. UNIX is a registered trademark of UNIX System Laboratories, Inc.
  7466.  
  7467.  
  7468. --------------------------cut here------------------------------
  7469.  
  7470.         INVITATION TO JOIN P1003.7 MOCK BALLOT GROUP
  7471.  
  7472. The IEEE POSIX P1003.7 System Administration  Working  Group  has
  7473. been  developing  the  POSIX  printing inteface, P1003.7.1.  This
  7474. standard describes the requirements for printing and printing ad-
  7475. ministration.   P1003.7  will  be conducting a mock ballot of the
  7476. 1003.7.1 starting May 14, 1992 and running until June  30,  1992.
  7477. The  purpose of this ballot is to seek feedback on this work from
  7478. those interested parties who have been  inside  and  outside  the
  7479. development process and to prepare for the formal ballot which is
  7480. tentatively scheduled for the second half of 1992.  If  you  pro-
  7481. vide  an  E-mail  address,  we will send the draft in Post Script
  7482. form via this method.  If you require a hard copy of  the  draft,
  7483. we  will  make  every effort to have it in the mail no later than
  7484. the start of balloting .  Please indicate your desire to partici-
  7485. pate  in  this P1003.7.1 Mock Ballot by sending the following in-
  7486. formation:
  7487.  
  7488. Name:_____________________________________________________________
  7489.  
  7490. E-mail                                                        
  7491. address:__________________________________________________________
  7492.  
  7493. Company/Organization 
  7494. Name:_____________________________________________________________
  7495.  
  7496. Address:__________________________________________________________
  7497.  
  7498. __________________________________________________________________
  7499.  
  7500. __________________________________________________________________
  7501.  
  7502. __________________________________________________________________
  7503.  
  7504. Phone:____________________________________________________________
  7505.  
  7506. FAX:______________________________________________________________
  7507.  
  7508. My primary interest category relative to this Standard is:
  7509. (Check only one)                                          
  7510. [ ] General Interest
  7511. [ ] User        
  7512. [ ] Producer
  7513.  
  7514. I would like the draft in the following format:
  7515. (Check only one)
  7516. [ ] Post Script via Email
  7517. [ ] Hard copy via U.S. mail
  7518.  
  7519. Send this information by Wednesday, April 29, 1992 to:
  7520. Bob Robillard                   Voice: 908-699-2249
  7521. Bellcore                        FAX:   908-336-2827
  7522. RRC 1D229                       duke@cc.bellcore.com
  7523. 444 Hoes Lane
  7524. Piscataway, New Jersey  08854
  7525.  
  7526. Thank you in advance for your consideration of this effort.
  7527.  
  7528. Sincerely,
  7529. Martin Kirk, Chair IEEE P1003.7
  7530.  
  7531.  
  7532.  
  7533.  
  7534.  
  7535.  
  7536.  
  7537.  
  7538.  
  7539.  
  7540.  
  7541.  
  7542.  
  7543. Volume-Number: Volume 27, Number 79
  7544.  
  7545. From std-unix-request@uunet.UU.NET  Wed Apr 15 16:49:34 1992
  7546. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7547.     (5.61/UUNET-mail-drop) id AA10870; Wed, 15 Apr 92 16:49:34 -0400
  7548. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  7549.     (5.61/UUNET-internet-primary) id AA06335; Wed, 15 Apr 92 16:49:32 -0400
  7550. From: Michael Joosten <joost@ori.cadlab.de>
  7551. Newsgroups: comp.std.unix
  7552. Subject: Re: threads library
  7553. Message-Id: <si30aINNcgv@ftp.UU.NET>
  7554. Article-I.D.: ftp.si30aINNcgv
  7555. References: <sd58rINNbb@ftp.UU.NET>
  7556. Reply-To: joost@cadlab.uni-paderborn.de
  7557. Organization: UUNET Communications
  7558. Nntp-Posting-Host: ftp.uu.net
  7559. X-Submissions: std-unix@uunet.uu.net
  7560. Date: 15 Apr 92 20:17:14 GMT
  7561. To: std-unix@uunet.UU.NET
  7562. Sender: Network News <news@kithrup.com>
  7563. Source-Info:  From (or Sender) name not authenticated.
  7564.  
  7565. Submitted-by: joost@ori.cadlab.de (Michael Joosten)
  7566.  
  7567. In article <sd58rINNbb@ftp.UU.NET>, berry@socrates.umd.edu (Joseph Berry) 
  7568. writes:
  7569. >>I am considering using the SUN light-weight process package (a threads library)
  7570. >>for some software development. I would like to know if there are
  7571. >>any standards for a threads library, so that the software can be fairly
  7572. >>portable. Do SVR4 or OSF offer a threads library?
  7573. >OSF offers a threads library. Furthermore, there is a pthreads "standard"
  7574. >(not yet approved) POSIX 1003.4a.
  7575.  
  7576. The situation concerning threads libraries is currently a bit difficult. 
  7577. Yes, OSF has POSIX pthread implementation in its DCE package. But it is
  7578. unclear how to get only OSF pthreads (which are in reality DEC's CMA (Concert
  7579. Multithread Architecture) threads) without all the DCE stuff around. For an
  7580. educational site it was rather cheap to join OSF an buy a DCE snapshot (200$ +
  7581. 1000$), I don't know what they charge now. 
  7582.  
  7583. Actually , SunSoft has apparently own plans on improving LWP. There is a paper
  7584. about this in a recent USENIX (Winter '91 ?) about Sun's further development
  7585. plus an interesting paper about how to take care of non-reentrant libraries.
  7586.  
  7587. USL? I don't kow, but I would like to hear a bit more about their intentions.
  7588. Probably there is something emerging, especially with Chorus and the
  7589. much-awaited MultiProcessing Release of SysVR4.
  7590.  
  7591. Since currently no vendor actually sells his Unix with a standardized pthreads
  7592. AND re-rentrant libraries (except OSF with OSF/1, but that's not a vendor),
  7593. the situation is actually a bit hosed: Many developers will face the task to
  7594. convert their existing/emerging multithreaded programs to pthreads, and this
  7595. could be not always easy. LWP, e.g., offers a yield() function which takes an
  7596. explicit LWP argument, thus leading developers to play scheduler-by-their-own
  7597. instead of relying on a built-in scheduler or sempahores/mutexes/condition
  7598. variables/messages. This nearly happened here, and pthread has of course no
  7599. such yield_to(xxx). An explicit yield_to() is fine for coroutines, but does
  7600. not make sense for real threads where the scheduler has more kowledge about
  7601. which (system) resource is blocked or ready (file descriptors,..) than the
  7602. programmer.
  7603.  
  7604. Anyway, without re-entrant libs (libc_r.a) there is IMHO not so much profit
  7605. with pthreads, since a premptive context change is mostly simulated with
  7606. SIGALRM and the finer-grained BSD timer functions. Since most libraries are
  7607. not built to cope with changing threads, you either must set 'guards' like
  7608. mutexes around a lot of (if not all) C library functions (most of the section
  7609. (3) stuff) or be extremly cautiously when coding your system. In the former
  7610. case, you will likely lose performance; imagine your program oftenly call libc
  7611. functions - every time the mutex has to be locked and released, maybe with an
  7612. additional set/reset of the signal mask (expensive system call!).
  7613.  
  7614. Well, this is my perspective, now nearly 5-6 months old. If there's something
  7615. radically changed, please let me know!
  7616.  
  7617. Michael Joosten   |       Tel.  : (+49) (+) 5251-284 120
  7618. CADLAB            |       Fax   : (+49) (+) 5251-284 140
  7619. Bahnhofstr. 32    |       E-Mail: joost@cadlab.de
  7620. D-4790 Paderborn  |                ...!uunet!unido!cadlab!joost
  7621. FRG               | Mass mail to: joost@pbinfo.uni-paderborn.de
  7622.  
  7623.  
  7624. Volume-Number: Volume 27, Number 80
  7625.  
  7626. From std-unix-request@uunet.UU.NET  Wed Apr 15 17:49:07 1992
  7627. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7628.     (5.61/UUNET-mail-drop) id AA18696; Wed, 15 Apr 92 17:49:07 -0400
  7629. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  7630.     (5.61/UUNET-internet-primary) id AA25070; Wed, 15 Apr 92 17:49:04 -0400
  7631. From: Chris Flatters <cflatter@nrao.edu>
  7632. Newsgroups: comp.std.unix
  7633. Subject: Re: threads library
  7634. Message-Id: <si6vpINNdr3@ftp.UU.NET>
  7635. Article-I.D.: ftp.si6vpINNdr3
  7636. References: <si30aINNcgv@ftp.UU.NET> si30aINNcgv@ftp.UU.NET,
  7637. Reply-To: cflatter@nrao.edu
  7638. Organization: NRAO
  7639. Nntp-Posting-Host: ftp.uu.net
  7640. X-Submissions: std-unix@uunet.uu.net
  7641. Date: 15 Apr 92 21:25:13 GMT
  7642. To: std-unix@uunet.UU.NET
  7643. Sender: Network News <news@kithrup.com>
  7644. Source-Info:  From (or Sender) name not authenticated.
  7645.  
  7646. Submitted-by: cflatter@NRAO.EDU (Chris Flatters)
  7647.  
  7648. In article si30aINNcgv@ftp.UU.NET, joost@ori.cadlab.de (Michael Joosten) writes:
  7649. >Submitted-by: joost@ori.cadlab.de (Michael Joosten)
  7650. >Actually , SunSoft has apparently own plans on improving LWP. There is a paper
  7651. >about this in a recent USENIX (Winter '91 ?) about Sun's further development
  7652. >plus an interesting paper about how to take care of non-reentrant libraries.
  7653.  
  7654. Winter '91 is correct: "SunOS Multi-thread Architecture" by M. L. Powell et al.
  7655. I think that it is reprinted in "The SPARC Technology Papers".
  7656.  
  7657. The gist of the paper is that Sun have adopted a two-layer model for multi-
  7658. threading.  At one level threads are implemented in a user-space library while
  7659. at the other light-weight processes are implemented in the kernel.  
  7660.  
  7661.     Chris Flatters
  7662.     cflatter@nrao.edu
  7663.  
  7664.  
  7665. Volume-Number: Volume 27, Number 81
  7666.  
  7667. From std-unix-request@uunet.UU.NET  Wed Apr 15 17:53:33 1992
  7668. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  7669.     (5.61/UUNET-mail-drop) id AA19958; Wed, 15 Apr 92 17:53:33 -0400
  7670. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  7671.     (5.61/UUNET-internet-primary) id AA26804; Wed, 15 Apr 92 17:53:32 -0400
  7672. From: "Kathy A. DeMartini" <kdemarti@polyslo.csc.calpoly.edu>
  7673. Newsgroups: comp.std.unix
  7674. Subject: pls post comp.std.unix,comp.protocols.pup
  7675. Message-Id: <si86qINNeam@ftp.UU.NET>
  7676. Organization: UUNET Communications
  7677. Nntp-Posting-Host: ftp.uu.net
  7678. X-Submissions: std-unix@uunet.uu.net
  7679. Date: 15 Apr 92 21:46:02 GMT
  7680. Reply-To: std-unix@uunet.uu.net
  7681. To: std-unix@uunet.UU.NET
  7682. Sender: Network News <news@kithrup.com>
  7683. Source-Info:  From (or Sender) name not authenticated.
  7684.  
  7685. Submitted-by: kdemarti@polyslo.csc.calpoly.edu (Kathy A. DeMartini)
  7686.  
  7687. I am looking for information concerning Express Technology Protocol
  7688. (XTP) or X/Open Transport interface (XTI) with respect to implementation
  7689. under Unix. XTP is a 3 level protocol for higher bandwidth versus OSI,
  7690. in which TCP/IP or others would be implemented. This is an emerging
  7691. standard.
  7692.  
  7693. If you could mail me articles or information, it would be appreciated.
  7694. Pls e-mail direct versus posting, I will summarize and post whatever
  7695. results in 2 weeks.
  7696.         
  7697.     Thank you.
  7698.  
  7699. Volume-Number: Volume 27, Number 82
  7700.  
  7701. From std-unix-request@uunet.UU.NET  Sun Apr 19 18:02:00 1992
  7702. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  7703.     (5.61/UUNET-mail-drop) id AA05549; Sun, 19 Apr 92 18:02:00 -0400
  7704. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  7705.     (5.61/UUNET-internet-primary) id AA22464; Sun, 19 Apr 92 18:01:47 -0400
  7706. From: "Robert L. Knighten" <knighten@intel.com>
  7707. Newsgroups: comp.std.unix
  7708. Subject: POSIX P1003.4a (Pthreads) Common Reference Ballot
  7709. Message-Id: <ssnddINN2h9@ftp.UU.NET>
  7710. Reply-To: Bob Knighten <knighten@ssd.intel.com>
  7711. Organization: Intel Supercomputer System Division, Beaverton, OR
  7712. Nntp-Posting-Host: ftp.uu.net
  7713. X-Submissions: std-unix@uunet.uu.net
  7714. Date: 19 Apr 92 21:06:53 GMT
  7715. To: std-unix@uunet.UU.NET
  7716. Sender: Network News <news@kithrup.com>
  7717. Source-Info:  From (or Sender) name not authenticated.
  7718.  
  7719. Submitted-by: knighten@intel.com (Robert L. Knighten)
  7720.  
  7721. Draft 6 of the P1003.4a (Threads Extension) draft standard is in its second
  7722. ballot (first reballot.)  This ballot is due at the IEEE Standards Office on
  7723. May 1.
  7724.  
  7725. The following group met and drafted a Common Reference Ballot which
  7726. we hope will be considered by other members of the ballot group before they
  7727. submit their own ballots.  Our CRB is included at the end of this message.
  7728.  
  7729. The CRB will be submitted as the first 70 items in the ballot of
  7730. Robert L. Knighten of Intel Supercomputer Systems Division.
  7731.  
  7732. Nawaf Bitar             Kubota-Pacific
  7733. David Black             Open Software Foundation
  7734. Bob Conti               Digital Equipment Corporation
  7735. Bill Cox                Unix Systems Laboratories
  7736. Michael Jones           Carneige-Mellon University
  7737. Steve Kleiman           SunSoft
  7738. Bob Knighten            Intel Supercomputer Systems Division
  7739. Jim Pitcairn-Hill       Open Software Foundation
  7740. Dave Plauger            Hewlett-Packard
  7741. Paul Rabin              Open Software Foundation
  7742.  
  7743. This CRB is also available in various forms (ASCII, postscript, troff) by
  7744. anonymous ftp from export.ssd.intel.com in the directory /pub/tmp/CRB.
  7745.  
  7746. ==============================================================================
  7747. Robert L. Knighten  P1003.4a/D6 Ballot 4/3/92
  7748. knighten@ssd.intel.com                (503) 629-4315 FAX 629-9147
  7749.  
  7750. --------------------------------------------------------------------------
  7751. @ all o 1
  7752. 1: Section all  page all  line(s) all
  7753.  
  7754. OBJECTION:
  7755.  
  7756.      The use of errno is a mistake with new functions.  Existing POSIX.1
  7757.      functions and their close relatives should maintain their overall
  7758.      structure, as should those tied to existing practice.  The use of
  7759.      errno as a global error indicator in multithreaded environments intro-
  7760.      duces new difficulties and inefficiencies.
  7761.  
  7762. ACTION:
  7763.  
  7764.      New functions should not set a global errno, but instead return an er-
  7765.      ror indication as the function return value.  The only exception are
  7766.      functions such as pthread_exit() which do not return, and
  7767.      pthread_self() which cannot fail.  We do not provide synopses for all
  7768.      such functions, but will on request from the technical reviewers.
  7769.  
  7770.      Change all new functions such as all pthread_ functions to return an
  7771.      error indication on failure, as described above.
  7772.  
  7773. --------------------------------------------------------------------------
  7774. @ all o 2
  7775. 2: Section all  page all  line(s) all
  7776.  
  7777. OBJECTION:
  7778.  
  7779.      The deletion of the POSIX.4 memory model leaves a void in terms of the
  7780.      specification of memory access characteristics.  While the CRB group
  7781.      is not particularly enamored with the POSIX.4 memory model, we feel
  7782.      something is required in this space.
  7783.  
  7784. ACTION:
  7785.  
  7786.      Specify a memory model for POSIX.4a.  You may contact Nawaf Bitar to
  7787.      coordinate assistance in the development of a memory model.
  7788.  
  7789. --------------------------------------------------------------------------
  7790. @ 2 o 3
  7791. 3: Section 2  page 2.2  line(s) 4
  7792.  
  7793. OBJECTION:
  7794.  
  7795.      The term "allocation domain" does not clearly refer to a scheduling
  7796.      allocation.
  7797.  
  7798. ACTION:
  7799.  
  7800.      Change the defined term to "Scheduling Allocation Domain [Allocation
  7801.      Domain]".
  7802.  
  7803. --------------------------------------------------------------------------
  7804. @ 2 o 4
  7805. 4: Section 2  page 2.2  line(s) 5
  7806.  
  7807. OBJECTION:
  7808.  
  7809.      The term "contention scope domain" does not clearly refer to a
  7810.      scheduling contention scope.
  7811.  
  7812. ACTION:
  7813.  
  7814.      Change the defined term to "Scheduling Contention Scope [Contention
  7815.      Scope]".
  7816.  
  7817. --------------------------------------------------------------------------
  7818. @ 2.2 o 5
  7819. 5: Section 2.2  page 5  line(s) 80-81
  7820.  
  7821. OBJECTION:
  7822.  
  7823.      With the inclusion of the process shared attribute mutexes and other
  7824.      synchronization primitives can be used in shared memory by more than
  7825.      one processes.
  7826.  
  7827. ACTION:
  7828.  
  7829.      Delete lines 80-81.
  7830.  
  7831. --------------------------------------------------------------------------
  7832. @ 2.2 o 6
  7833. 6: Section 2.2  page 5  line(s) 98-99
  7834.  
  7835. OBJECTION:
  7836.  
  7837.      The set of synchronous signal that can be generated is not limited to
  7838.      the list in the text. For example SIGBUS.
  7839.  
  7840. ACTION:
  7841.  
  7842.      Either correct the list or change it to the following:
  7843.              The signals which may be generaed synchronously include SI-
  7844.      GILL,
  7845.              SIGFPE, ...
  7846.  
  7847. --------------------------------------------------------------------------
  7848. @ 2.2 o 7
  7849. 7: Section 2.2  page 6  line(s) 104
  7850.  
  7851. OBJECTION:
  7852.  
  7853.      "with a thread" doesn't make sense.
  7854.  
  7855. ACTION:
  7856.  
  7857.      Change "with a thread" to "by a thread."
  7858.  
  7859. --------------------------------------------------------------------------
  7860. @ 2.2 o 8
  7861. 8: Section 2.2  page 6  line(s) 115-116
  7862.  
  7863. OBJECTION:
  7864.  
  7865.      It should be permissible to use the thread ID of a detached thread if
  7866.      the application knows via programmed synchronization that the target
  7867.      thread has not exited. Note that a thread cannot spontaneously exit
  7868.      without calling pthread_exit(), being cancelled (and running the can-
  7869.      cellation handlers), or the process exits.
  7870.  
  7871. ACTION:
  7872.  
  7873.      Delete the sentence beginning "Detaching a thread also prohibits..."
  7874.      or change it to indicate that if the application know via programmed
  7875.      synchronization mechanisms that the thread has not exited then using
  7876.      the thread ID is permissible.
  7877.  
  7878. --------------------------------------------------------------------------
  7879. @ 2.2.1.138,6 o 9
  7880. 9: Section 2.2.1.138,6  page 4,79-101  line(s) 64-65,1-762
  7881.  
  7882. OBJECTION:
  7883.  
  7884.      The terms global and local contention scope are misleading.  [See ob-
  7885.      jection ???.]  The terms system and process contention scope are more
  7886.      intuitive.
  7887.  
  7888. ACTION:
  7889.  
  7890.      Change PTHREAD_SCOPE_GLOBAL to PTHREAD_SCOPE_SYSTEM.  Change
  7891.      PTHREAD_SCOPE_LOCAL to PTHREAD_SCOPE_PROCESS.  Change all references
  7892.      to `global contention scope' to `system contention scope'.  Change all
  7893.      references to `local contention scope' to `process contention scope'.
  7894.  
  7895. --------------------------------------------------------------------------
  7896. @ 2.2.1.139 o 10
  7897. 10: Section 2.2.1.139  page 5  line(s) 66-69
  7898.  
  7899. OBJECTION:
  7900.  
  7901.      The definition of "initial thread" is misleading, and a holdover from
  7902.      older drafts with very different semantics.  In particular, calling
  7903.      the thread which results from fork() an initial thread is wrong with
  7904.      respect to the current usage of the term in the draft.
  7905.  
  7906. ACTION:
  7907.  
  7908.      Replace the definition of "initial thread" with "The first thread
  7909.      which calls main() after an exec, or any thread resulting from a
  7910.      fork() by an initial thread".
  7911.  
  7912. --------------------------------------------------------------------------
  7913. @ 2.6.2 o 11
  7914. 11: Section 2.6.2  page 14  line(s) 388
  7915.  
  7916. OBJECTION:
  7917.  
  7918.      The constant name "DATAKEYS_MAX" does not follow the pthreads naming
  7919.      conventions.
  7920.  
  7921. ACTION:
  7922.  
  7923.      Change the name to "PTHREAD_DATAKEYS_MAX".  Similarly, change
  7924.      "_POSIX_DATAKEYS_MAX" to "_POSIX_PTHREAD_DATAKEYS_MAX".
  7925.  
  7926. --------------------------------------------------------------------------
  7927. @ 3 o 12
  7928. 12: Section 3  page all  line(s) all
  7929.  
  7930. OBJECTION:
  7931.  
  7932.      The use of ENOSYS as an error return requires that all implementations
  7933.      maintain stubs simply to return an error.  This is silly: the linkage
  7934.      editor can easily report that a particular function is not available.
  7935.  
  7936. ACTION:
  7937.  
  7938.      Eliminate all [ENOSYS] errors in this Chapter.  If the only error is
  7939.      ENOSYS under a descriptive lead-in paragraph, delete the lead-in para-
  7940.      graph as well.
  7941.  
  7942. --------------------------------------------------------------------------
  7943. @ 3 o 13
  7944. 13: Section 3  page all  line(s) all
  7945.  
  7946. OBJECTION:
  7947.  
  7948.      The use of errno is a mistake with new functions.  Existing POSIX.1
  7949.      functions and their close relatives should maintain their overall
  7950.      structure, as should those tied to existing practice.  The use of
  7951.      errno as a global error indicator in multithreaded environments intro-
  7952.      duces new difficulties and inefficiencies.
  7953.  
  7954. ACTION:
  7955.  
  7956.      New functions should not set a global errno, but instead return an er-
  7957.      ror indication as the function return value.  The only exception are
  7958.      functions such as pthread_exit() which do not return, and
  7959.      pthread_self() which cannot fail.  We do not provide synopses for all
  7960.      such functions, but will on request from the technical reviewers.
  7961.  
  7962.      Change all new functions such as all pthread_ functions to return an
  7963.      error indication on failure, as described above.
  7964.  
  7965. --------------------------------------------------------------------------
  7966. @ 3.3 o 14
  7967. 14: Section 3.3  page 29-30  line(s) 408-444
  7968.  
  7969. OBJECTION:
  7970.  
  7971.      The function pthread_exit() terminates a thread; if you have pthreads
  7972.      at all, the fundamental management routines pthread_create(),
  7973.      pthread_join, pthread_exit, and pthread_self are essential.  Permit-
  7974.      ting any of those functions to be optional in any way means that you
  7975.      don't have threads that you can use.  How can an application use the
  7976.      fact that pthread_exit() fail?  How can a function that cannot return
  7977.      (line 438) "return 01 and set errno to the corresponding value"?
  7978.  
  7979. ACTION:
  7980.  
  7981.      Delete all error return specification from the pthread_exit() specifi-
  7982.      cation.
  7983.  
  7984. --------------------------------------------------------------------------
  7985. @ 3.3 o 15
  7986. 15: Section 3.3  page 29-30  line(s) 412-471
  7987.  
  7988. OBJECTION:
  7989.  
  7990.      The parameter name "status" is misleading.  The actual use of the
  7991.      pthread_exit parameter is the return value from the start_function ex-
  7992.      ecuted by the thread.
  7993.  
  7994. ACTION:
  7995.  
  7996.      Change the synopsis to
  7997.  
  7998.      void pthread_exit( void *value_ptr);
  7999.  
  8000. --------------------------------------------------------------------------
  8001. @ 3.3 o 16
  8002. 16: Section 3.3  page 30  line(s) 431-433,463-471
  8003.  
  8004. OBJECTION:
  8005.  
  8006.      This return status makes no sense.  The success or failure of a pro-
  8007.      cess is not determined by whether the last thread to exit was de-
  8008.      tached.  The exit status for the process should be determined by the
  8009.      parameter to an explicit _exit() call or the return value to main() as
  8010.      specified in POSIX.1.
  8011.  
  8012. ACTION:
  8013.  
  8014.      Delete lines 431-433 and 463-471.
  8015.  
  8016. --------------------------------------------------------------------------
  8017. @ 3.3 o 17
  8018. 17: Section 3.3  page 30  line(s) 459-462
  8019.  
  8020. OBJECTION:
  8021.  
  8022.      ANSI C does not generally require implementations to preserve integer
  8023.      values across multiple typecasts.  The example is non-portable and
  8024.      should be deleted.
  8025.  
  8026. ACTION:
  8027.  
  8028.      Delete text starting at "it is perfectly" and terminate the sentence.
  8029.  
  8030. --------------------------------------------------------------------------
  8031. @ 3.3.5.2, 7.3.3.2 o 18
  8032. 18: Section 3.3.5.2, 7.3.3.2  page 29, 105  line(s) 425-427
  8033.  
  8034. OBJECTION:
  8035.  
  8036.      Talking about main() and exit() under the pthread_exit() is extrane-
  8037.      ous.
  8038.  
  8039. ACTION:
  8040.  
  8041.      Change lines 425-427 to being a note, instead of normative text in the
  8042.      pthread_exit() description.  Also, move this text to the description
  8043.      of _exit(), in section 7.3.3.2, where it belongs.
  8044.  
  8045. --------------------------------------------------------------------------
  8046. @ 3.4 o 19
  8047. 19: Section 3.4  page 37  line(s) 643-652
  8048.  
  8049. OBJECTION:
  8050.  
  8051.      Measuring overhead in units of the "null loop" is not portable as op-
  8052.      timizing compilers can delete null loops entirely.
  8053.  
  8054. ACTION:
  8055.  
  8056.      Delete this performance metric or restate it in terms of a computation
  8057.      that takes a certain amount of time instead of iterations of the null
  8058.      loop.
  8059.  
  8060. --------------------------------------------------------------------------
  8061. @ 3.4 o 20
  8062. 20: Section 3.4  page 37  line(s) 654-660
  8063.  
  8064. OBJECTION:
  8065.  
  8066.      Measuring overhead in units of the "null loop" is not portable as op-
  8067.      timizing compilers can delete null loops entirely.
  8068.  
  8069. ACTION:
  8070.  
  8071.      Delete this performance metric or restate it in terms of a computation
  8072.      that takes a certain amount of time instead of iterations of the null
  8073.  
  8074.      loop.
  8075.  
  8076. --------------------------------------------------------------------------
  8077. @ 4 o 21
  8078. 21: Section 4  page all  line(s) all
  8079.  
  8080. OBJECTION:
  8081.  
  8082.      The use of ENOSYS as an error return requires that all implementations
  8083.      maintain stubs simply to return an error.  This is silly: the linkage
  8084.      editor can easily report that a particular function is not available.
  8085.  
  8086. ACTION:
  8087.  
  8088.      Eliminate all [ENOSYS] errors in this Chapter.  If the only error is
  8089.      ENOSYS under a descriptive lead-in paragraph, delete the lead-in para-
  8090.      graph as well.
  8091.  
  8092. --------------------------------------------------------------------------
  8093. @ 4 o 22
  8094. 22: Section 4  page all  line(s) all
  8095.  
  8096. OBJECTION:
  8097.  
  8098.      The use of errno is a mistake with new functions.  Existing POSIX.1
  8099.      functions and their close relatives should maintain their overall
  8100.      structure, as should those tied to existing practice.  The use of
  8101.      errno as a global error indicator in multithreaded environments intro-
  8102.      duces new difficulties and inefficiencies.
  8103.  
  8104. ACTION:
  8105.  
  8106.      New functions should not set a global errno, but instead return an er-
  8107.      ror indication as the function return value.  The only exception are
  8108.      functions such as pthread_exit() which do not return, and
  8109.      pthread_self() which cannot fail.  We do not provide synopses for all
  8110.      such functions, but will on request from the technical reviewers.
  8111.  
  8112.      Change all new functions such as all pthread_ functions to return an
  8113.      error indication on failure, as described above.
  8114.  
  8115. --------------------------------------------------------------------------
  8116. @ 4.4 o 23
  8117. 23: Section 4.4  page 44-61  line(s) 85-676
  8118.  
  8119. OBJECTION:
  8120.  
  8121.      There is currently no interface provided by which statically allocated
  8122.      mutex and condition variable objects can be statically initialized.
  8123.      Providing this ability would make self-initializing modules easier to
  8124.      write, and would often make such self-initialization more efficient as
  8125.      well.
  8126.  
  8127.      Furthermore, there is substantial existing practice which provides
  8128.      such interfaces, including Mach cthreads, Encore threads, Sun threads,
  8129.      and others.
  8130.  
  8131. ACTION:
  8132.  
  8133.      Provide new macros PTHREAD_MUTEX_INITIALIZER and
  8134.      PTHREAD_COND_INITIALIZER which may be used in static declarations to
  8135.      initialize mutexes and condition variables.  The effect of:
  8136.          static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
  8137.      at compile time should be identical to the effect of:
  8138.          static pthread_mutex_t m;
  8139.          pthread_mutex_init(&m, NULL);
  8140.      at run time.  Similarly, the effect of:
  8141.          static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
  8142.      at compile time should be identical to the effect of:
  8143.          static pthread_cond_t c;
  8144.          pthread_cond_init(&c, NULL);
  8145.      at run time.
  8146.  
  8147.      Also, add rationale similar to the following discussion supporting
  8148.      this addition.
  8149.  
  8150.      STATIC INITIALIZATION OF SYNCHRONIZATION OBJECTS:
  8151.  
  8152.      Providing for static initialization of statically allocated synchroni-
  8153.      zation objects  allows modules with private static synchronization
  8154.      variables to avoid run time initialization tests and overhead.  Furth-
  8155.      ermore, it simplifies the coding of self-initializing modules.  Such
  8156.      modules are common in C libraries, where for various reasons the
  8157.      design called for self-initialization, instead of requiring an expli-
  8158.      cit module initialization function to be called.  An example use of
  8159.      static initialization follows.
  8160.  
  8161.      Without static initialization, a self-initializing routine foo() might
  8162.      look like:
  8163.          static pthread_once_t foo_once = PTHREAD_ONCE_INIT;
  8164.          static pthread_mutex_t &foo_mutex;
  8165.          void foo_init()
  8166.          {
  8167.              pthread_mutex_init(&foo_mutex, NULL);
  8168.          }
  8169.          void foo()
  8170.          {
  8171.              pthread_once(&foo_once, foo_init);
  8172.              pthread_mutex_lock(&foo_mutex);
  8173.              /* Do work */
  8174.              pthread_mutex_unlock(&foo_mutex);
  8175.          }
  8176.      With static initialization, the same routine could be coded as:
  8177.          static pthread_mutex_t foo_mutex = PTHREAD_MUTEX_INITIALIZER;
  8178.          void foo()
  8179.          {
  8180.              pthread_mutex_lock(&foo_mutex);
  8181.              /* Do work */
  8182.              pthread_mutex_unlock(&foo_mutex);
  8183.          }
  8184.      Note that the static initialization both eliminates the need for the
  8185.      initialization test inside pthread_once and the fetch of &foo_mutex to
  8186.      learn the address to be passed to pthread_mutex_{lock, unlock}.  Thus,
  8187.      the code written is simpler on all machines, and will also be faster
  8188.      on a large class of machines.
  8189.  
  8190.      Yet people will rightly raise the performance question for machines
  8191.  
  8192.      (such as the Sequent Balance) which require mutexes to be allocated
  8193.      out of special memory.  Such machines will actually have to have
  8194.      mutexes and possibly condition variables contain pointers to the actu-
  8195.      al hardware locks.  For static initialization to work on such
  8196.      machines, pthread_mutex_lock() will also have to test whether or not
  8197.      the pointer to the actual lock has been allocated.  If it hasn't it
  8198.      will have to initialize it before use.  This run time test in
  8199.      pthread_mutex_lock would at first seem to be extra work.  Yet notice
  8200.      that in the above old example, pthread_once() was explicitly called in
  8201.      application code for all implementations to test for mutex initializa-
  8202.      tion -- in the new example the test is hidden inside
  8203.      pthread_mutex_lock() only for those machines which need it.  The over-
  8204.      head for machines doing out-of-line mutex allocation is thus similar
  8205.      for modules being implicitly initialized, where it's improved for
  8206.      those doing mutex allocation entirely inline.   The inline case is
  8207.      thus made much faster and the out-of-line case is no worse.
  8208.  
  8209.      Two further objections have been raised to static initialization of
  8210.      synchronization objects for out-of-line implementations.  First, an
  8211.      extra test is required to see if the pointer has been initialized.
  8212.      This might seem to add significant expense.  On most machines this
  8213.      would actually be implemented as a fetch of the pointer, testing the
  8214.      pointer against zero, and then using the pointer if it has already
  8215.      been initialized.  While the test might seem to add extra work, the
  8216.      extra cost of testing a register is usually negligible since no extra
  8217.      memory references are actually done.  As more and more machines pro-
  8218.      vide caches, the real expenses are memory references, not instructions
  8219.      executed.
  8220.  
  8221.      Secondly, it is possible that threads would serialize contending for
  8222.      initialization locks when attempting to finish initializing statically
  8223.      allocated mutexes.  (Such finishing would typically involve taking an
  8224.      internal lock, allocating a structure, storing a pointer to the struc-
  8225.      ture in the mutex, and releasing the internal lock.)  First, many im-
  8226.      plementations would reduce such serialization by hashing on the mutex
  8227.      address.  And second, such serialization can only occur a bounded
  8228.      number of times.  In particular, it can happen at most as many times
  8229.      as there are statically allocated synchronization objects.  Dynamical-
  8230.      ly allocated objects would still be initialized via
  8231.      pthread_mutex_init() or pthread_cond_init().  Finally, if this is a
  8232.      true issue, static initialization can be avoided altogether by expli-
  8233.      citly initializing all synchronization objects with the corresponding
  8234.      pthread_*_init() functions.
  8235.  
  8236.      In summary:  (1) Static initialization provides a significant simplif-
  8237.      ication for programmers of self-initializing modules.  (2) Static ini-
  8238.      tialization significantly improves performance for many implementa-
  8239.      tions.  (3)  Static initialization will not significantly degrade per-
  8240.      formance for any known implementations.  Thus, facilities allowing for
  8241.      static initialization of synchronization objects are included as part
  8242.      of the threads interface.
  8243.  
  8244. --------------------------------------------------------------------------
  8245. @ 4.4 o 24
  8246. 24: Section 4.4  page 48  line(s) 241-251
  8247.  
  8248. OBJECTION:
  8249.  
  8250.      When a process maps a file that contains a process shared synchroniza-
  8251.      tion variable it must not reinitialize it. Similarly, if a process has
  8252.      an initialized synchronization variable in MAP_SHARED memory and
  8253.      forks, it does not have to be reinitialized.
  8254.  
  8255. ACTION:
  8256.  
  8257.      After line 251 add something like the following:
  8258.  
  8259.      If a process shared mutex has previously been initialized by another
  8260.      process, the application shall not reinitialize it.
  8261.  
  8262. --------------------------------------------------------------------------
  8263. @ 4.4 o 25
  8264. 25: Section 4.4  page 55  line(s) 477-487
  8265.  
  8266. OBJECTION:
  8267.  
  8268.      When a process maps a file that contains a process shared synchroniza-
  8269.      tion variable it must not reinitialize it. Similarly, if a process has
  8270.      an initialized synchronization variable in MAP_SHARED memory and
  8271.      forks, it does not have to be reinitialized.
  8272.  
  8273. ACTION:
  8274.  
  8275.      Add something like the following after line 487:
  8276.  
  8277.      If a process shared condition variable has previously been initialized
  8278.      by another process, the application shall not reinitialize it.
  8279.  
  8280. --------------------------------------------------------------------------
  8281. @ 4.4.7.6.1 o 26
  8282. 26: Section 4.4.7.6.1  page 61  line(s) 681
  8283.  
  8284. OBJECTION:
  8285.  
  8286.  
  8287. ACTION:
  8288.  
  8289.      Change "return successfully" to "return without an error".
  8290.  
  8291. --------------------------------------------------------------------------
  8292. @ 5 o 27
  8293. 27: Section 5  page all  line(s) all
  8294.  
  8295. OBJECTION:
  8296.  
  8297.      The use of ENOSYS as an error return requires that all implementations
  8298.      maintain stubs simply to return an error.  This is silly: the linkage
  8299.      editor can easily report that a particular function is not available.
  8300.  
  8301. ACTION:
  8302.  
  8303.      Eliminate all [ENOSYS] errors in this Chapter.  If the only error is
  8304.      ENOSYS under a descriptive lead-in paragraph, delete the lead-in para-
  8305.      graph as well.
  8306.  
  8307. --------------------------------------------------------------------------
  8308. @ 5 o 28
  8309. 28: Section 5  page all  line(s) all
  8310.  
  8311. OBJECTION:
  8312.  
  8313.      The use of errno is a mistake with new functions.  Existing POSIX.1
  8314.      functions and their close relatives should maintain their overall
  8315.      structure, as should those tied to existing practice.  The use of
  8316.      errno as a global error indicator in multithreaded environments intro-
  8317.      duces new difficulties and inefficiencies.
  8318.  
  8319. ACTION:
  8320.  
  8321.      New functions should not set a global errno, but instead return an er-
  8322.      ror indication as the function return value.  The only exception are
  8323.      functions such as pthread_exit() which do not return, and
  8324.      pthread_self() which cannot fail.  We do not provide synopses for all
  8325.      such functions, but will on request from the technical reviewers.
  8326.  
  8327.      Change all new functions such as all pthread_ functions to return an
  8328.      error indication on failure, as described above.
  8329.  
  8330. --------------------------------------------------------------------------
  8331. @ 5.2 o 29
  8332. 29: Section 5.2  page 73  line(s) 75-80
  8333.  
  8334. OBJECTION:
  8335.  
  8336.      A standard pthread_key_delete() is needed for dynamically linked li-
  8337.      braries to recover storage when they are unlinked. Many modern OS im-
  8338.      plementations allow programatic runtime linking in of libraries.
  8339.  
  8340. ACTION:
  8341.  
  8342.      Add pthread_key_delete(). The destructors should be called in each
  8343.      thread.  It is OK if the application id required to ensure that the
  8344.      other thread-specific data function are not called simultaneously with
  8345.      pthread_key_delete().
  8346.  
  8347. --------------------------------------------------------------------------
  8348. @ 5.2 o 30
  8349. 30: Section 5.2  page 74  line(s) 103-107
  8350.  
  8351. OBJECTION:
  8352.  
  8353.      Destructor functions must be allowed to call functions that can poten-
  8354.      tially allocate thread-specific data, otherwise functions must be
  8355.      specifically documented as  callable from a destructor or not.
  8356.  
  8357. ACTION:
  8358.  
  8359.      In order to accomplish this, destructor functions must be called re-
  8360.      peatedly until all thread-specific data is destroyed. Lines 158-160
  8361.      must also be deleted or modified.
  8362.  
  8363. --------------------------------------------------------------------------
  8364. @ 5.2 o 31
  8365. 31: Section 5.2  page 75  line(s) 148
  8366.  
  8367. OBJECTION:
  8368.  
  8369.      pthread_getspecific() should simply return the value instead of stor-
  8370.      ing it through a pointer. This could substantially speed up a critical
  8371.      function.
  8372.  
  8373. ACTION:
  8374.  
  8375.      Change pthread_getspecific to:
  8376.              void * pthread_getspecific(pthread_key_t key); If any error is
  8377.      detected, NULL is returned.
  8378.  
  8379. --------------------------------------------------------------------------
  8380. @ 5.2 o 32
  8381. 32: Section 5.2  page 75-76  line(s) 151-161
  8382.  
  8383. OBJECTION:
  8384.  
  8385.      Since pthread_{s, g}etspecific may not work if the key is undefined
  8386.      the standard should explicitly state that called either of these with
  8387.      an uncreated or destroyed key is undefined. This explicitly prevents
  8388.      the (erroneous) example in lines 246-255.
  8389.  
  8390. ACTION:
  8391.  
  8392.      Add something like the following before line 161:
  8393.              The effect of calling pthread_getspecific or
  8394.      pthread_setspecific
  8395.              with a key value that has not been created (or has been des-
  8396.      troyed)
  8397.              is unspecified.
  8398.  
  8399. --------------------------------------------------------------------------
  8400. @ 5.2 o 33
  8401. 33: Section 5.2  page 76  line(s) 174-175
  8402.  
  8403. OBJECTION:
  8404.  
  8405.      In implementations that support infinite amounts of thread-specific
  8406.      data pthread_setspecific can allocate memory and must be able to re-
  8407.      turn an error is memory is unavailable.
  8408.  
  8409. ACTION:
  8410.  
  8411.      Add ENOMEM to the list of errors for pthread_setspecific.
  8412.  
  8413. --------------------------------------------------------------------------
  8414. @ 5.3 o 34
  8415. 34: Section 5.3  page 77  line(s) 213-215
  8416.  
  8417. OBJECTION:
  8418.  
  8419.      The text reads:
  8420.              If second and subsequent calls to pthread_setspecific perform
  8421.              differently than the first call, then these measurements shall
  8422.              also be reported.  In implementation that support an unbounded
  8423.      amount of thread-specific data, this can cause an unbounded number of
  8424.      measurements.
  8425.  
  8426. ACTION:
  8427.  
  8428.      Delete this sentence or replace it with measurements of setting
  8429.      storage for specified numbers of keys. It is probably best that these
  8430.      be less than 32 keys since this is all a strictly conforming applica-
  8431.      tion can depend on.
  8432.  
  8433. --------------------------------------------------------------------------
  8434. @ 5.3 o 35
  8435. 35: Section 5.3  page 28-29  line(s) 363-407
  8436.  
  8437. OBJECTION:
  8438.  
  8439.      Since there is a "detached" attribute to thread creation, there is no
  8440.      longer very much motivation to include pthread_detach() as a separate
  8441.      function. There is very little need to detach a thread on the fly,
  8442.      since this is mostly known at thread create time when the thread ID is
  8443.      stored.  Making the initial thread be created "undetached" by default
  8444.      means that it can be joined with, while the potential storage leak is
  8445.      limited.
  8446.  
  8447. ACTION:
  8448.  
  8449.      Delete pthread_detached(). Add the requirement that the initial thread
  8450.      be created "undetached".
  8451.  
  8452. --------------------------------------------------------------------------
  8453. @ 6 o 36
  8454. 36: Section 6  page all  line(s) all
  8455.  
  8456. OBJECTION:
  8457.  
  8458.      The use of ENOSYS as an error return requires that all implementations
  8459.      maintain stubs simply to return an error.  This is silly: the linkage
  8460.      editor can easily report that a particular function is not available.
  8461.  
  8462. ACTION:
  8463.  
  8464.      Eliminate all [ENOSYS] errors in this Chapter.  If the only error is
  8465.      ENOSYS under a descriptive lead-in paragraph, delete the lead-in para-
  8466.      graph as well.
  8467.  
  8468. --------------------------------------------------------------------------
  8469. @ 6 o 37
  8470. 37: Section 6  page all  line(s) all
  8471.  
  8472. OBJECTION:
  8473.  
  8474.      The use of errno is a mistake with new functions.  Existing POSIX.1
  8475.      functions and their close relatives should maintain their overall
  8476.      structure, as should those tied to existing practice.  The use of
  8477.      errno as a global error indicator in multithreaded environments intro-
  8478.      duces new difficulties and inefficiencies.
  8479.  
  8480. ACTION:
  8481.  
  8482.      New functions should not set a global errno, but instead return an er-
  8483.      ror indication as the function return value.  The only exception are
  8484.      functions such as pthread_exit() which do not return, and
  8485.      pthread_self() which cannot fail.  We do not provide synopses for all
  8486.      such functions, but will on request from the technical reviewers.
  8487.  
  8488.      Change all new functions such as all pthread_ functions to return an
  8489.      error indication on failure, as described above.
  8490.  
  8491. --------------------------------------------------------------------------
  8492. @ 6 o 38
  8493. 38: Section 6  page all  line(s) all
  8494.  
  8495. OBJECTION:
  8496.  
  8497.      The use of realtime-centric nomenclature, and in particular
  8498.      SCHED_OTHER, is confusing.  SCHED_OTHER is simply a placeholder for
  8499.      "some scheduling algorithm that may be different or not different from
  8500.      SCHED_FIFO and SCHED_RR".  This suggests both that SCHED_OTHER is a
  8501.      name for some specific scheduling algorithm AND that SCHED_OTHER is a
  8502.      name for some selectable scheduling algorithm that may be different
  8503.      from SCHED_FIFO and SCHED_RR.
  8504.  
  8505.      Unfortunately, SCHED_OTHER can't be both.  The apparent meaning is of
  8506.      some system-defined policy that is neither FIFO nor RR.  A more ap-
  8507.      propriate name is "SCHED_DEFAULT."
  8508.  
  8509. ACTION:
  8510.  
  8511.      Rename SCHED_OTHER to SCHED_DEFAULT in the entire chapter.
  8512.  
  8513. --------------------------------------------------------------------------
  8514. @ 6 o 39
  8515. 39: Section 6  page all  line(s) all
  8516.  
  8517. OBJECTION:
  8518.  
  8519.      The rationale in this chapter talks about many things, most of which
  8520.      are not relevant to the scope of POSIX.4a.  Sections 6.1.1.3 and 6.2.3
  8521.      are particularly irrelevant, as they talk about scheduling on a
  8522.      machine with allocation domain of size greater than one, which was
  8523.      specifically excluded from the scope of scheduling by the working
  8524.      group.
  8525.  
  8526.      The text of section 6.2.3 is an attempt to extend the semantics of
  8527.      uniprocessor scheduling to the multiprocessor domain in a way that ex-
  8528.      cludes existing practice or renders the somewhat intuitive SCHED_FIFO
  8529.      and SCHED_RR meaningless (line 214-216).  One point made by previous
  8530.      POSIX.14 coordination ballots and comments was that priority is less
  8531.      meaningful in a multiprocessor.  Line 217 overspecifies behavior.
  8532.  
  8533. ACTION:
  8534.  
  8535.      Delete this chapter.  Define the interactions of draft POSIX.4
  8536.      scheduling behavior and pthreads in a separate document, or move the
  8537.      contents of this chapter to a non-normative appendix clearly marked as
  8538.      "Uniprocessor Thread Scheduling."
  8539.  
  8540. --------------------------------------------------------------------------
  8541. @ 6 o 40
  8542. 40: Section 6  page all  line(s) all
  8543.  
  8544. OBJECTION:
  8545.  
  8546.      The rationale is excessively broad for the normative text in this
  8547.      chapter.  Rationale should explain the derivation and meaning of the
  8548.      normative text; the Chapter 6 rationale goes far beyond that.
  8549.  
  8550.      The most egregious examples are lines 110-118 (Rate Monotonic Schedul-
  8551.      ing) and lines 704-739.  The working group did not accept this text
  8552.      even for a non-normative appendix, and including it in this draft or
  8553.      any final standard based on this draft is excessive.  The rationale is
  8554.      not intended as a place to announce interfaces for "future updates"
  8555.      when the working group did not find the interfaces acceptable for in-
  8556.      clusion anywhere in the draft.
  8557.  
  8558.      The presentation here amounts to an endorsement by POSIX of a research
  8559.      effort and related projects by the current technical reviewer and his
  8560.      colleagues, and inappropriate to normative or rationale text.
  8561.  
  8562. ACTION:
  8563.  
  8564.      Delete lines 110-118 and 704-739 and any other references in the draft
  8565.      that refer to rate monotonic scheduling or sporadic servers.
  8566.  
  8567. --------------------------------------------------------------------------
  8568. @ 6 o 41
  8569. 41: Section 6  page all  line(s) all
  8570.  
  8571. OBJECTION:
  8572.  
  8573.      This chapter is beyond scope in references to multiprocessors and mul-
  8574.      tiprocessor scheduling because the interfaces and uniprocessor tech-
  8575.      niques are neither well-understood nor appropriate to multiprocessors.
  8576.  
  8577.      The extensions to "scheduling domains of size greater than one" is fa-
  8578.      tally flawed because they work either poorly or not at all on current
  8579.      and near-future multiprocessor architectures such as the Stanford DASH
  8580.      machine.  These interfaces and techniques apply only to uniprocessors,
  8581.      therefore they conflict with page 1 lines 25-27, and should be delet-
  8582.      ed.
  8583.  
  8584. ACTION:
  8585.  
  8586.      Delete Chapter 6.
  8587.  
  8588. --------------------------------------------------------------------------
  8589. @ 6.1 o 42
  8590. 42: Section 6.1  page 80  line(s) 34
  8591.  
  8592. OBJECTION:
  8593.  
  8594.      In POSIX, the concept of a "kernel entity" is misplaced.  The proper
  8595.      language would refer instead to a "process."
  8596.  
  8597. ACTION:
  8598.  
  8599.      Change "kernel entity (process)" to "process".
  8600.  
  8601. --------------------------------------------------------------------------
  8602. @ 6.2.2 o 43
  8603. 43: Section 6.2.2  page 83  line(s) 186-189
  8604.  
  8605. OBJECTION:
  8606.  
  8607.      The definition of global contention scope ignores the concept of allo-
  8608.      cation domain.  Resource contention only makes sense within an alloca-
  8609.      tion domain, as indicated by lines 202-204:         Allocation domain
  8610.      is independent of contention scope, as contention         scope merely
  8611.      defines the set of threads with which a thread must         contend
  8612.      for processor resources, while allocation domain defines         the
  8613.      set of processors for which it contends.  The definition of global
  8614.      contention scope is inconsistent with this, and makes it impossible
  8615.      for systems with multiple allocation domains to support global conten-
  8616.      tion scope.
  8617.  
  8618. ACTION:
  8619.  
  8620.      Rewrite lines 186-189 to read: A thread created with global contention
  8621.      scope contends for resources with all other threads in the same allo-
  8622.      cation domain relative to their global scheduling attributes.  The
  8623.      global scheduling attributes of a thread created with global conten-
  8624.      tion scope are the scheduling attributes with which the thread was
  8625.      created.  The global scheduling attributes of a thread created with
  8626.      local contention scope are the implementation-defined mapping into
  8627.      global attribute space of the scheduling attributes with which the
  8628.      thread was created.
  8629.  
  8630. --------------------------------------------------------------------------
  8631. @ 6.2.2 c 44
  8632. 44: Section 6.2.2  page 84  line(s) 191
  8633.  
  8634. EDITORIAL COMMENT:
  8635.  
  8636.      Change `which' to `that'.
  8637.  
  8638. --------------------------------------------------------------------------
  8639. @ 6.2.3 o 45
  8640. 45: Section 6.2.3  page 84  line(s) 196-219
  8641.  
  8642. OBJECTION:
  8643.  
  8644.      This section implies that both the allocation domain size and the as-
  8645.      signment of threads to allocation domains is static.  Both implica-
  8646.      tions can be overly restrictive for some systems.
  8647.  
  8648.      The `process control' approach to scheduling (cf. Tucker and Gupta,
  8649.      "Process Control and Scheduling Issues for Multiprogrammed Shared
  8650.      Memory Multiprocessors", Proceedings of 12th SOSP, December 1989, pp.
  8651.      159-166) obtains significant performance advantages from dynamic allo-
  8652.      cation domain sizes when it is applicable.
  8653.  
  8654.      Non Uniform Memory Access (NUMA) multiprocessors (e.g., BBN Butterfly,
  8655.      Stanford DASH) may use a system scheduling structure that involves
  8656.      reassignment of threads among allocation domains.  In NUMA machines, a
  8657.      natural model of scheduling is to match allocation domains to clusters
  8658.      of processors.  Load Balancing in such an environment requires chang-
  8659.      ing the allocation domain to which a thread is assigned.  The system
  8660.      should have the freedom to do this.
  8661.  
  8662. ACTION:
  8663.  
  8664.      After line 208, add:         Conforming implementations may change the
  8665.      size of allocation         domains and the binding of threads to allo-
  8666.      cation domains at         any time. Add the second and third para-
  8667.      graphs of the objection text to the Rationale after line 109.
  8668.  
  8669. --------------------------------------------------------------------------
  8670. @ 6.3 o 46
  8671. 46: Section 6.3  page 93  line(s) 481-499
  8672.  
  8673. OBJECTION:
  8674.  
  8675.      The parameter proposed for pthread_yield() is not used and is required
  8676.      to be NULL.  The claim in the rationale that this allows extensions is
  8677.      bogus.  The use of a void * does not permit passing of any integer or
  8678.      long value, hence does not permit the extensibility that is claimed.
  8679.      The reference to thread_switch is misplaced in a discussion of a yield
  8680.      interface; thread_switch is an implementation tool, not a user-level
  8681.      scheduling tool to skirt around the priority scheduling that the rest
  8682.      of this chapter says is so important.
  8683.  
  8684. ACTION:
  8685.  
  8686.      Delete the parameter to pthread_yield and lines 490 and 505-510.
  8687.  
  8688. --------------------------------------------------------------------------
  8689. @ 6.3 o 47
  8690. 47: Section 6.3  page 95-96  line(s) 551-590
  8691.  
  8692. OBJECTION:
  8693.  
  8694.      The priority ceiling "emulation" protocol is slower that priority in-
  8695.      heritance in that work must be done in the no-contention case instead
  8696.      of the contention case. It is also more difficult to use in that the
  8697.      priority of all calling threads must be computed a priori. It is also
  8698.      redundant functionality with respect to priority inheritance.
  8699.  
  8700. ACTION:
  8701.  
  8702.      Delete the priority ceiling "emulation" protocol. Delete
  8703.      pthread_mutexattr_setceiling(), pthread_mutexattr_getceiling(), and
  8704.      lines 561-587.
  8705.  
  8706. --------------------------------------------------------------------------
  8707. @ 6.3.4 o 48
  8708. 48: Section 6.3.4  page 94  line(s) 511-537
  8709.  
  8710. OBJECTION:
  8711.  
  8712.      The specified behavior for threads with global contention scope
  8713.      directly contradicts the requirements of POSIX.4 for processes with
  8714.      exactly one thread (namely the initial thread).  This is a fundamental
  8715.      conflict between the scheduling primitives in POSIX.4 and POSIX.4a.
  8716.      There are two choices here; either resolve the conflict or define it
  8717.      out of existence.
  8718.  
  8719.      Resolving the conflict is unlikely to yield a clean solution for
  8720.      processes that use POSIX.4 scheduling primitives and link against a
  8721.      library that creates hidden threads.  The various choices appear to
  8722.      be:
  8723.  
  8724.      a) Treat the initial thread specially and apply POSIX.4 primitives to
  8725.      it alone.
  8726.  
  8727.      b) Ensure that a process consisting only of the initial thread is
  8728.      treated as POSIX.4 scheduling requires
  8729.  
  8730.      c) Extend POSIX.4 scheduling primitives to all threads.
  8731.  
  8732.      Option a) is unacceptable because all threads should be as equivalent
  8733.      as possible, and compatibility support for POSIX.4 primitives is in-
  8734.      sufficient justification for introducing this degree of asymmetry.
  8735.      Option c) is also unacceptable because it creates two methods for af-
  8736.      fecting the scheduling of threads; this both complicates the implemen-
  8737.      tations and makes the resulting program behavior more difficult to
  8738.      understand with no benefits.  Option b) is the least objectionable of
  8739.      the three, but leaves a POSIX.4 program at the mercy of
  8740.      implementation-defined behavior if it should happen to link with a li-
  8741.      brary that creates internal threads.  We offer it as one possible
  8742.      resolution to this objection with the rationale that an application
  8743.      performing its own realtime scheduling must understand the scheduling
  8744.      implications of any library that it links to.
  8745.  
  8746.      The alternative is to define the problem out of existence by prevent-
  8747.      ing the simultaneous use of POSIX.4a primitives and POSIX.4 primi-
  8748.      tives.  Doing this at the source level is not straightforward because
  8749.      of the ability to link separately compiled modules.  The linker must
  8750.      reject any application that attempts to use primitives from both
  8751.      classes; dynamically linked libraries complicate this problem.
  8752.  
  8753.      Also, the specified behavior for threads with local contention scope
  8754.      is an excessively long version of "implementation defined".
  8755.  
  8756. ACTION:
  8757.  
  8758.      Any of the following actions are acceptable to resolve this objection:
  8759.  
  8760.      (1) Replace lines 522-528 with the following:
  8761.  
  8762.      The semantics of these functions (except yield()) are exactly as de-
  8763.      fined in Priority Scheduling s21, POSIX.4 for processes that consist
  8764.      of an initial thread with global contention scope and have created no
  8765.      other threads.  In all other cases, the semantics are implementation
  8766.      defined.
  8767.  
  8768.      (2) Replace lines 522-532 with the following:
  8769.  
  8770.      The semantics of these functions are implementation defined.
  8771.  
  8772.      (3) Replace lines 522-532 with the following:
  8773.  
  8774.      These functions shall fail.
  8775.  
  8776.      (4) Delete section 6.3.4 (lines 511-537) and replace it with a res-
  8777.      triction that prevents a conforming implementation from defining both
  8778.      _POSIX_THREADS and _POSIX_PROCESS_SCHEDULING.  Insert a rationale sec-
  8779.      tion explaining how to do this in practice on a system that can sup-
  8780.      port each option independently.
  8781.  
  8782. --------------------------------------------------------------------------
  8783. @ 6.3.4 c 49
  8784. 49: Section 6.3.4  page 94  line(s) 511-537
  8785.  
  8786. EDITORIAL COMMENT:
  8787.  
  8788.      POSIX.4 has changed the names of the scheduling functions and symbolic
  8789.      constant used in this section.  The new names are prefixed with sched_
  8790.      and the new symbolic constant is _POSIX_PRIORITY_SCHEDULING.
  8791.  
  8792. ACTION:
  8793.  
  8794.      Update to match POSIX.4.
  8795.  
  8796. --------------------------------------------------------------------------
  8797. @ 6.3 o 50
  8798. 50: Section 6.3  page 95-96  line(s) 551-590
  8799.  
  8800. OBJECTION:
  8801.  
  8802.      The priority ceiling "emulation" protocol is slower that priority in-
  8803.      heritance in that work must be done in the no-contention case instead
  8804.  
  8805.      of the contention case. It is also more difficult to use in that the
  8806.      priority of all calling threads must be computed a priori. It is also
  8807.      redundant functionality with respect to priority inheritance.
  8808.  
  8809. ACTION:
  8810.  
  8811.      Delete the priority ceiling "emulation" protocol. Delete:
  8812.              pthread_mutexattr_setceiling(),
  8813.              pthread_mutexattr_getceiling(),
  8814.      and lines 561-587.
  8815.  
  8816. --------------------------------------------------------------------------
  8817. @ 7 o 51
  8818. 51: Section 7  page all  line(s) all
  8819.  
  8820. OBJECTION:
  8821.  
  8822.      The use of ENOSYS as an error return requires that all implementations
  8823.      maintain stubs simply to return an error.  This is silly: the linkage
  8824.      editor can easily report that a particular function is not available.
  8825.  
  8826. ACTION:
  8827.  
  8828.      Eliminate all [ENOSYS] errors in this Chapter.  If the only error is
  8829.      ENOSYS under a descriptive lead-in paragraph, delete the lead-in para-
  8830.      graph as well.
  8831.  
  8832. --------------------------------------------------------------------------
  8833. @ 7 o 52
  8834. 52: Section 7  page all  line(s) all
  8835.  
  8836. OBJECTION:
  8837.  
  8838.      The use of errno is a mistake with new functions.  Existing POSIX.1
  8839.      functions and their close relatives should maintain their overall
  8840.      structure, as should those tied to existing practice.  The use of
  8841.      errno as a global error indicator in multithreaded environments intro-
  8842.      duces new difficulties and inefficiencies.
  8843.  
  8844. ACTION:
  8845.  
  8846.      New functions should not set a global errno, but instead return an er-
  8847.      ror indication as the function return value.  The only exception are
  8848.      functions such as pthread_exit() which do not return, and
  8849.      pthread_self() which cannot fail.  We do not provide synopses for all
  8850.      such functions, but will on request from the technical reviewers.
  8851.  
  8852.      Change all new functions such as all pthread_ functions to return an
  8853.      error indication on failure, as described above.
  8854.  
  8855. --------------------------------------------------------------------------
  8856. @ 7.3 o 53
  8857. 53: Section 7.3  page 104  line(s) 33-56
  8858.  
  8859. OBJECTION:
  8860.  
  8861.      fork() as defined has only the calling thread continue in the child
  8862.      process.  This introduces problems with locks and other state main-
  8863.  
  8864.      tained by user code.  For example, if the surviving thread in the
  8865.      child blocks attempting to lock a mutex between fork() and exec(), no
  8866.      other thread exists to free the lock.  This is exacerbated by limited
  8867.      cancelability (cf. Section 9.3.2, page 126) where a blocking
  8868.      pthread_mutex_lock operation is not an interruption point, so signals
  8869.      and other events that might create another thread cannot do so.
  8870.  
  8871.      There are two useful definitions for fork(), one in which only the
  8872.      calling thread survives, and a second where all threads in the process
  8873.      survive in the child.  With both alternatives useful under some cir-
  8874.      cumstances, both should be defined.
  8875.  
  8876. ACTION:
  8877.  
  8878.      Change the name of fork() on this page to "fork1()".  Define, under an
  8879.      option, a new interface, forkall(), defined below, to duplicate all
  8880.      extant threads in the child process.  Specify that it is
  8881.      implementation-defined whether fork() is fork1() or forkall().
  8882.  
  8883. NAME
  8884.    forkall()
  8885.  
  8886. DESCRIPTION
  8887.    forkall() causes creation of a new process, cloning the parent process
  8888.    in its entirety including all existing pthreads.
  8889.  
  8890. SYNOPSIS
  8891.       #include <sys/types.h>
  8892.       #include <unistd.h>
  8893.  
  8894.       pid_t forkall(void);
  8895.  
  8896. PROCESSING
  8897.    The new process created by forkall duplicates the calling process, in-
  8898.    cluding the set of threads that exist as of the time of the call (up to
  8899.    simultaneity constraints), the data area, and stack(s).
  8900.  
  8901. OUTPUT
  8902.    Upon successful completion, forkall() returns a value of 0 to the new
  8903.    process and returns the process ID of the new process to the caller.
  8904.  
  8905. ERROR/DIAGNOSTICS
  8906.    On failure, a value of (pid_t) -1 is returned to the caller, no new pro-
  8907.    cess is created, and errno is set to indicate the error.
  8908.  
  8909.       EAGAIN
  8910.                 The system limit on number of threads per real user-id would be
  8911.                 exceeded if the call succeeds.
  8912.  
  8913.       EINTR
  8914.                A forkall() has been interrupted by a forkall() executed by
  8915.                another stream of execution in the process.
  8916.  
  8917. --------------------------------------------------------------------------
  8918. @ 7.3 o 54
  8919. 54: Section 7.3  page 104  line(s) 33-56
  8920.  
  8921. OBJECTION:
  8922.  
  8923.      In the event that this ballot's objection with action to define for-
  8924.      kall() is accepted, additional rationale is required to address the
  8925.      issue of how a portable application would use forkall() and fork1().
  8926.  
  8927. --------------------------------------------------------------------------
  8928. @ 7.3.1 o 55
  8929. 55: Section 7.3.1  page 105  line(s)
  8930.  
  8931. OBJECTION:
  8932.  
  8933.      There are at least two serious problems with the semantics of fork()
  8934.      in a multi-threaded program.  One problem has to do with state (e.g.,
  8935.      memory) covered by mutexes.  Consider the case where one thread has a
  8936.      mutex locked and the state covered by that mutex is inconsistent while
  8937.      another thread calls fork(). In the child, the mutex will be in the
  8938.      locked state (locked by a non-existent thread and thus can never be
  8939.      unlocked).  Having the child simply reinitialize the mutex is unsatis-
  8940.      factory since this approach doesn't resolve the question about how to
  8941.      correct or otherwise deal with the inconsistent state in the child.
  8942.  
  8943.      The Pthreads draft suggests that programs that use fork() will call
  8944.      exec() very soon afterwards in the child process, thus resetting all
  8945.      state.  In the meantime, only a short list of "safe" library routines
  8946.      are promised to be available.
  8947.  
  8948.      Unfortunately, this solution does not address the needs of multi-
  8949.      threaded libraries.  Application programs may not be aware that a
  8950.      multi-threaded library is in use, and will feel free to call any
  8951.      number of library routines between fork() and exec(), just as they al-
  8952.      ways have.  Indeed, they may be extant single-threaded programs and
  8953.      cannot, therefore, be expected to obey new restrictions imposed by the
  8954.      thread library.
  8955.  
  8956.      On the other hand, the multi-threaded library needs a way to protect
  8957.      its internal state during fork() in case it is reentered later in the
  8958.      child process.  The problem arises especially in multi-threaded I/O
  8959.      libraries, which are almost sure to be invoked between fork() and
  8960.      exec() to effect I/O redirection.  The solution may require locking
  8961.      mutex variables during fork(), or it may entail simply resetting the
  8962.      state in the child after the fork() processing completes.
  8963.  
  8964.      pthread_atfork1(), as defined below, provides multi-threaded libraries
  8965.      with a mechanism to protect themselves from innocent application pro-
  8966.      grams which call fork(), and it provides multi-threaded application
  8967.      programs with a standard mechanism for protecting themselves from
  8968.      fork() calls in a library routine or the application itself.
  8969.  
  8970.      For example, an application can supply a "prepare" routine that ac-
  8971.      quires the necessary mutexes the library maintains and "child" and
  8972.      "parent" routines that release those mutexes, thus ensuring that the
  8973.      child gets a consistent snapshot of the library's state (and that no
  8974.  
  8975.      mutexes are left stranded).  Alternatively, some libraries might be
  8976.      able to supply just a "child" routine that reinitializes the library's
  8977.      mutexes and all associated state to some known value (e.g., what it
  8978.      was when the image was originally exec'd).
  8979.  
  8980.      Another problem with the semantics of fork() in a multi-threaded pro-
  8981.      gram is the question of which threads that exist in the parent are du-
  8982.      plicated into the child.  The Pthreads draft states that the child
  8983.      process starts with exactly one thread--a copy of the thread that
  8984.      called fork(). Unfortunately, in some cases, the right thing would
  8985.      have been to recreate at least some of the other threads in the child
  8986.      process as well.  pthread_atfork1() allows applications and libraries
  8987.      to deal with this problem as well.  A library or application that
  8988.      creates threads and wants those threads to exist in the child can sup-
  8989.      ply an pthread_atfork1() "child" routine that recreates the threads.
  8990.      This is not exactly equivalent to preserving the thread, but it comes
  8991.      close and should meet most needs.
  8992.  
  8993. ACTION:
  8994.  
  8995.      Add the function pthread_atfork1() as specified below.
  8996.  
  8997.  
  8998. NAME
  8999.    pthread_atfork1() - arrange for fork1 cleanup handling
  9000.  
  9001. SYNOPSIS
  9002.  
  9003.         pthread_atfork1(void (*prepare)(), void (*parent)(), void
  9004.         (*child)());
  9005.         void (*prepare)();
  9006.         void (*parent)();
  9007.         void (*child)();
  9008.  
  9009. DESCRIPTION
  9010.    pthread_atfork1() declares handlers to be called before and after
  9011.    fork1(). The prepare handler is called before fork1() processing com-
  9012.    mences.  The parent handler is called after fork1() processing com-
  9013.    pletes, but in the parent process. The child handler is called after
  9014.    fork1(0 processing completes, but in the child process.
  9015.  
  9016.    If no handling is desired at any one of these three places, its
  9017.    corresponding handler address may be set to NULL.
  9018.  
  9019.    The expected usage is that the prepare handler acquires all mutex locks,
  9020.    and the other two handlers release them.
  9021.  
  9022.    Alternatively, one may also declare only a child handler to just clear
  9023.    any locks.
  9024.  
  9025.    The table of fork handlers maintained by pthread_atfork1() should be
  9026.    semi-static. That is, it is established by calls to pthread_atfork1()
  9027.    during initialization. Handlers are called in last-in, first-out order,
  9028.    to enforce any desired locking hierarchy.  Therefore, the order of calls
  9029.    to pthread_atfork1() is significant.
  9030.  
  9031. RETURN
  9032.    pthread_atfork1() returns 0 if successful.  Otherwise, it returns -1 if
  9033.  
  9034.    there is insufficient table space to record the handler addresses.
  9035.  
  9036. --------------------------------------------------------------------------
  9037. @ 8 o 56
  9038. 56: Section 8  page all  line(s) all
  9039.  
  9040. OBJECTION:
  9041.  
  9042.      The use of errno is a mistake with new functions.  Existing POSIX.1
  9043.      functions and their close relatives should maintain their overall
  9044.      structure, as should those tied to existing practice.  The use of
  9045.      errno as a global error indicator in multithreaded environments intro-
  9046.      duces new difficulties and inefficiencies.
  9047.  
  9048. ACTION:
  9049.  
  9050.      New functions should not set a global errno, but instead return an er-
  9051.      ror indication as the function return value.  The only exception are
  9052.      functions such as pthread_exit() which do not return, and
  9053.      pthread_self() which cannot fail.  We do not provide synopses for all
  9054.      such functions, but will on request from the technical reviewers.
  9055.  
  9056.      Change all new functions such as all pthread_ functions to return an
  9057.      error indication on failure, as described above.
  9058.  
  9059. --------------------------------------------------------------------------
  9060. @ 8.3.2 o 57
  9061. 57: Section 8.3.2  page 111  line(s) 142-143
  9062.  
  9063. OBJECTION:
  9064.  
  9065.  
  9066. ACTION:
  9067.  
  9068.      Change these lines to, "POSIX.4a introduces no new async safe func-
  9069.      tions."
  9070.  
  9071. --------------------------------------------------------------------------
  9072. @ 8.3.3.4.1.1 o 58
  9073. 58: Section 8.3.3.4.1.1  page 113  line(s) 207-215
  9074.  
  9075. OBJECTION:
  9076.  
  9077.      The interest model no longer applies with the introduction of the new
  9078.      signals model.
  9079.  
  9080. ACTION:
  9081.  
  9082.      Delete these lines.
  9083.  
  9084. --------------------------------------------------------------------------
  9085. @ 8.4.1.1 o 59
  9086. 59: Section 8.4.1.1  page 115  line(s) 270
  9087.  
  9088. OBJECTION:
  9089.  
  9090.  
  9091. ACTION:
  9092.  
  9093.      Change to read "int sigwait(const sigset_t *set);"
  9094.  
  9095. --------------------------------------------------------------------------
  9096. @ 8.4.1.2 o 60
  9097. 60: Section 8.4.1.2  page 115  line(s) 276
  9098.  
  9099. OBJECTION:
  9100.  
  9101.      Clarify that it is the caller's responsibility to block signals prior
  9102.      to a call to sigwait.
  9103.  
  9104. ACTION:
  9105.  
  9106.      Change "defined by set shall be blocked" to "defined by set shall have
  9107.      been blocked".
  9108.  
  9109. --------------------------------------------------------------------------
  9110. @ 8.4.1.2 o 61
  9111. 61: Section 8.4.1.2  page 115  line(s) 274
  9112.  
  9113. OBJECTION:
  9114.  
  9115.      In the presence of an implementation that supports queued signals it
  9116.      should be guaranteed that sigwait doesn't flush all instances of a
  9117.      pending signal number.
  9118.  
  9119. ACTION:
  9120.  
  9121.      After the sentence ending "returns that signal number.", add the sen-
  9122.      tence, "If prior to the call to sigwait there are multiple pending in-
  9123.      stances of a single signal number, it is implementation-defined wheth-
  9124.      er upon successful return there are any remaining pending signals for
  9125.      that signal number."
  9126.  
  9127. --------------------------------------------------------------------------
  9128. @ 8.4.7.4 o 62
  9129. 62: Section 8.4.7.4  page 121  line(s) 455
  9130.  
  9131. OBJECTION:
  9132.  
  9133.      ESRCH is a legitimate error return for pthread_kill().
  9134.  
  9135. ACTION:
  9136.  
  9137.      Add it.
  9138.  
  9139. --------------------------------------------------------------------------
  9140. @ 9 o 63
  9141. 63: Section 9  page all  line(s) all
  9142.  
  9143. OBJECTION:
  9144.  
  9145.      The use of ENOSYS as an error return requires that all implementations
  9146.      maintain stubs simply to return an error.  This is silly: the linkage
  9147.      editor can easily report that a particular function is not available.
  9148.  
  9149. ACTION:
  9150.  
  9151.      Eliminate all [ENOSYS] errors in this Chapter.  If the only error is
  9152.      ENOSYS under a descriptive lead-in paragraph, delete the lead-in para-
  9153.      graph as well.
  9154.  
  9155. --------------------------------------------------------------------------
  9156. @ 9 o 64
  9157. 64: Section 9  page all  line(s) all
  9158.  
  9159. OBJECTION:
  9160.  
  9161.      The use of errno is a mistake with new functions.  Existing POSIX.1
  9162.      functions and their close relatives should maintain their overall
  9163.      structure, as should those tied to existing practice.  The use of
  9164.      errno as a global error indicator in multithreaded environments intro-
  9165.      duces new difficulties and inefficiencies.
  9166.  
  9167. ACTION:
  9168.  
  9169.      New functions should not set a global errno, but instead return an er-
  9170.      ror indication as the function return value.  The only exception are
  9171.      functions such as pthread_exit() which do not return, and
  9172.      pthread_self() which cannot fail.  We do not provide synopses for all
  9173.      such functions, but will on request from the technical reviewers.
  9174.  
  9175.      Change all new functions such as all pthread_ functions to return an
  9176.      error indication on failure, as described above.
  9177.  
  9178. --------------------------------------------------------------------------
  9179. @ 9.3.5 o 65
  9180. 65: Section 9.3.5  page 129  line(s) 225-226
  9181.  
  9182. OBJECTION:
  9183.  
  9184.  
  9185. ACTION:
  9186.  
  9187.      Change these lines to, "POSIX.4a introduces no new interrupt safe
  9188.      functions."
  9189.  
  9190. --------------------------------------------------------------------------
  9191. @ 9.3.4 o 66
  9192. 66: Section 9.3.4  page 128-129  line(s) 187-217
  9193.  
  9194. OBJECTION:
  9195.  
  9196.      This is rationale.
  9197.  
  9198. ACTION:
  9199.  
  9200.      So indicate.
  9201.  
  9202. --------------------------------------------------------------------------
  9203. @ 10 o 67
  9204. 67: Section 10  page all  line(s) all
  9205.  
  9206. OBJECTION:
  9207.  
  9208.      The use of ENOSYS as an error return requires that all implementations
  9209.      maintain stubs simply to return an error.  This is silly: the linkage
  9210.      editor can easily report that a particular function is not available.
  9211.  
  9212. ACTION:
  9213.  
  9214.      Eliminate all [ENOSYS] errors in this Chapter.  If the only error is
  9215.      ENOSYS under a descriptive lead-in paragraph, delete the lead-in para-
  9216.      graph as well.
  9217.  
  9218. --------------------------------------------------------------------------
  9219. @ 10 o 68
  9220. 68: Section 10  page all  line(s) all
  9221.  
  9222. OBJECTION:
  9223.  
  9224.      The use of errno is a mistake with new functions.  Existing POSIX.1
  9225.      functions and their close relatives should maintain their overall
  9226.      structure, as should those tied to existing practice.  The use of
  9227.      errno as a global error indicator in multithreaded environments intro-
  9228.      duces new difficulties and inefficiencies.
  9229.  
  9230. ACTION:
  9231.  
  9232.      New functions should not set a global errno, but instead return an er-
  9233.      ror indication as the function return value.  The only exception are
  9234.      functions such as pthread_exit() which do not return, and
  9235.      pthread_self() which cannot fail.  We do not provide synopses for all
  9236.      such functions, but will on request from the technical reviewers.
  9237.  
  9238.      Change all new functions such as all pthread_ functions to return an
  9239.      error indication on failure, as described above.
  9240.  
  9241. --------------------------------------------------------------------------
  9242. @ 10 c 69
  9243. 69: Section 10  page all  line(s) all
  9244.  
  9245. EDITORIAL COMMENT:
  9246.  
  9247.      This chapter needs reorganization.  The ordering of functions and or-
  9248.      ganization into major subsections is confusing.
  9249.  
  9250. ACTION:
  9251.  
  9252.      Reorder and reorganize the chapter, perhaps as a flat list of func-
  9253.      tions.
  9254.  
  9255. --------------------------------------------------------------------------
  9256. @ 10.3.4.2 o 70
  9257. 70: Section 10.3.4.2  page 155  line(s) 503-504
  9258.  
  9259. OBJECTION:
  9260.  
  9261.      Given that some input functions can implicitly cause output this re-
  9262.      quirement treated strictly can cause deadlocks.  In particular, line
  9263.      buffered streams will cause the associated output stream to be flushed
  9264.      upon input.
  9265.  
  9266. ACTION:
  9267.  
  9268.      Add the sentence:  "Implicit operations to streams other than the ex-
  9269.      plicitly referenced stream need not behave as if protected by flock-
  9270.      file() on such implicitly referenced streams".  Also, add rationale
  9271.      saying that this apparent weakening of the semantics is present to
  9272.      avoid lock ordering deadlocks.  Mention that line buffered streams can
  9273.      cause this problem.
  9274. ==============================================================================
  9275. --
  9276. Robert L. Knighten                 | knighten@ssd.intel.com
  9277. Intel Supercomputer Systems Division | 
  9278. 15201 N.W. Greenbrier Pkwy.         | (503) 629-4315
  9279. Beaverton, Oregon  97006         | (503) 629-9147 [FAX]
  9280.  
  9281.  
  9282. Volume-Number: Volume 27, Number 83
  9283.  
  9284. From std-unix-request@uunet.UU.NET  Fri Apr 24 19:22:53 1992
  9285. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  9286.     (5.61/UUNET-mail-drop) id AA27742; Fri, 24 Apr 92 19:22:53 -0400
  9287. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  9288.     (5.61/UUNET-internet-primary) id AA17649; Fri, 24 Apr 92 19:22:57 -0400
  9289. From: Jeffrey Kegler <jeffrey@algor2.algorists.com>
  9290. Newsgroups: comp.std.unix
  9291. Subject: Hardcopy: I give up
  9292. Message-Id: <ta427INNrhu@ftp.UU.NET>
  9293. Article-I.D.: ftp.ta427INNrhu
  9294. Reply-To: Jeffrey Kegler <jeffrey@algor2.algorists.com>
  9295. Organization: Algorists, Inc.
  9296. Nntp-Posting-Host: ftp.uu.net
  9297. X-Submissions: std-unix@uunet.uu.net
  9298. Date: 24 Apr 92 23:02:31 GMT
  9299. To: std-unix@uunet.UU.NET
  9300. Sender: Network News <news@kithrup.com>
  9301. Source-Info:  From (or Sender) name not authenticated.
  9302.  
  9303. Submitted-by: jeffrey@algor2.algorists.com (Jeffrey Kegler)
  9304.  
  9305. For those of you who did not read my earlier posting, I laid forth a
  9306. pitiful tale of what it involves for an individual to subscribe to the
  9307. POSIX documents given the current refusal to provide electronic
  9308. access.  It costs me about $1000 and two man-weeks a year in collating
  9309. the poorly organized loose leafed material.  This burden has taken
  9310. almost all the resources I can afford to devote to POSIX, and leaves
  9311. me without the time to actually comment on the materials.
  9312.  
  9313. I have decided when the time comes to replenish my deposit to do so
  9314. would be counter-productive.  It would only go to perpetuate the
  9315. bureaucracy in whose sole interest this bottleneck exists.
  9316.  
  9317. Aside from the generation of revenues, the only justification advanced
  9318. for the ban on electronic copies is a supposed fear of counterfeits.
  9319. I must say "supposed" because there is no evidence of such a concern
  9320. in the way the hardcopy is distributed.  The materials are
  9321. loose-leafed, pages are numbered variously, or unnumbered, often no
  9322. clear indication of which page belongs with which materials is
  9323. present, and addenda and hand-written corrections on copies are freely
  9324. employed.  If there is a step that could taken to make a
  9325. counterfeiter's life easier that may have been omitted, it slips my
  9326. mind.
  9327.  
  9328. As many in this audience will know, prevention of counterfeits of
  9329. electronic copies is relatively easy.  Fresh copies can be obtained
  9330. from trusted archives.  Checksumming and other more sophisticated
  9331. measures are also possible, if needed.  The RFC's, for example, have
  9332. been available in electronic form for a long time, and this method of
  9333. distribution has proved very successful.
  9334.  
  9335. Electronic access, in fact, makes it easier to prevent and detect
  9336. unauthorized alterations, because the pertinent pieces of the document
  9337. can be easily be extracted, mailed, and compared.  The argument that
  9338. the ban on electronic circulation is based on fear of counterfeiting
  9339. fails any examination, and should be seen for the excuse it is.  Can
  9340. one take even one month's mailing in hardcopy and verify it character
  9341. by character?  Only in electronic form is this possible.
  9342.  
  9343. Let me repeat that the issue is not Jeffrey Kegler's access to draft
  9344. standards.  This could safely be (in fact, has been) eliminated
  9345. entirely with no serious detriment to the process.  The issue is a
  9346. dangerous narrowing of the audience for review of the standards, at a
  9347. point where the review desperately needs to be widened.
  9348.  
  9349. -- 
  9350.  
  9351. Jeffrey Kegler, Independent UNIX Consultant, Algorists, Inc.
  9352. jeffrey@algor2.ALGORISTS.COM or uunet!algor2!jeffrey
  9353. 137 E Fremont AVE #122, Sunnyvale CA 94087
  9354.  
  9355. Volume-Number: Volume 27, Number 84
  9356.  
  9357. From std-unix-request@uunet.UU.NET  Tue Apr 28 16:32:43 1992
  9358. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  9359.     (5.61/UUNET-mail-drop) id AA19204; Tue, 28 Apr 92 16:32:43 -0400
  9360. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  9361.     (5.61/UUNET-internet-primary) id AA09178; Tue, 28 Apr 92 16:32:43 -0400
  9362. From: Erik_Brown@transarc.com
  9363. Newsgroups: comp.std.unix
  9364. Subject: POSIX 1003.4a (Pthread) Comments
  9365. Organization: UUNET Communications
  9366. Message-Id: <tkcelINNee5@ftp.UU.NET>
  9367. Nntp-Posting-Host: ftp.uu.net
  9368. X-Submissions: std-unix@uunet.uu.net
  9369. Date: 28 Apr 1992 13:27:01 -0700
  9370. Reply-To: std-unix@uunet.uu.net
  9371. To: std-unix@uunet.UU.NET
  9372. Sender: Network News <news@kithrup.com>
  9373. Source-Info:  From (or Sender) name not authenticated.
  9374.  
  9375. Submitted-by: Erik_Brown@transarc.com
  9376.  
  9377.   Well, this list has been fairly quiet for a little while, so I
  9378. thought I'd send my brief comments on the recent threading specs.  The
  9379. format follows that given in Appendix B of the Draft 6 document.
  9380.  
  9381.   Please note that I do not speak as a representative of Transarc, but
  9382. only on behalf of myself.
  9383.  
  9384. Erik Brown            eeb@transarc.com
  9385. Transarc Corp            (412) 338-4426
  9386. The Gulf Tower
  9387. Pittsburgh, PA  15206
  9388.  
  9389. ------------------------------------------------------------------
  9390.     Objections to Draft 6 of the POSIX 1003.4a Specification
  9391.  
  9392. ------------------------------------------------------------------
  9393. Erik Brown        (412) 338-4426
  9394. eeb@transarc.com    FAX: (412) 338-4404
  9395. ------------------------------------------------------------------
  9396. @ 4.4 o 1
  9397.  
  9398. PROBLEM
  9399.  
  9400.   The mutex attributes object may force the pthread_mutex_lock() and
  9401. pthread_mutex_unlock() functions to do extra work when a mutex is
  9402. acquired or released.  The Process-shared attribute especially may
  9403. require extra checking for what should be a very low-level and fast
  9404. operation.
  9405.  
  9406.   Providing an interface that allows a very fast low-level locking
  9407. mechanism will encourage application developers to write code based
  9408. solely on the standard.  With the current interface, vendors are
  9409. likely to sacrifice portability in the interest of better performance
  9410. by attempting to use hardware or OS-specific locking mechanisms where
  9411. they are available.  This is especially true if an application does
  9412. not interact with other processes and all threads run at the same
  9413. priority, which is likely to be a common scenerio.
  9414.  
  9415. ACTION
  9416.  
  9417.   The pthread_mutexattr_t structure should be removed from the current
  9418. mutex interface.
  9419.  
  9420.   The mutexattr functionality can be preserved by adding a new type of
  9421. locking mechanism with its own attribute object that would allow the
  9422. current functionality.  The synchronization protocols and priority
  9423. ceilings in Section 6.3 would also be folded into this new mechanism.
  9424.  
  9425. ------------------------------------------------------------------
  9426. @ 4.4 c 2
  9427.  
  9428. COMMENT
  9429.  
  9430.   It is unfortunate that pthread_mutex_lock() and
  9431. pthread_mutex_unlock() are defined to return a value.  On a good RISC
  9432. hardware platform with a test-and-set instruction, a lock can be
  9433. performed in 2 or 3 instructions in user space, and an unlock in
  9434. another 2 or 3 instructions.  Forcing these calls to return an integer
  9435. value may add another 1 or 2 instruction to the implementation.
  9436.  
  9437.   In addition, the caller is forced to check the return code of these
  9438. calls, adding yet another 4 or 5 instructions (to the lock/unlock
  9439. pair).  In effect, the cost is almost doubled compared to the same
  9440. calls implemented as void functions (assuming no errors).
  9441.  
  9442.   If users could be "trusted" not to call these routines incorrectly,
  9443. or the working group were willing to allow a segmentation fault as the
  9444. only error for an incorrectly called pthread_mutex_lock(), then it
  9445. would be nice to see both of these calls as void functions.
  9446.  
  9447. ------------------------------------------------------------------
  9448. @ 4.4 o 3
  9449.  
  9450. PROBLEM
  9451.  
  9452.   The definition of pthread_mutex_trylock() induces unnecessary
  9453. overhead on the caller.  The user must check for -1, and then check
  9454. for EBUSY to ensure that -1 was returned because the lock was already
  9455. held.
  9456.  
  9457. ACTION
  9458.  
  9459.   Change the definition of this routine to return a boolean value, or
  9460. -1 if a real error occurs.  That is, change lines 330 to 332 as
  9461. follows:
  9462.  
  9463.     The function pthread_mutex_trylock() returns a positive
  9464.     integer if the lock on the mutex object referenced by mutex is
  9465.     acquired.  It returns 0 if the mutex is already locked.  If an
  9466.     error occurs, it returns -1 and sets errno to indicate the
  9467.     error.
  9468.  
  9469. ------------------------------------------------------------------
  9470. @ 5.2 o 4
  9471.  
  9472. PROBLEM
  9473.  
  9474.   The pthread_getspecific() function in 5.2.2.1 is essentially a
  9475. mechanism for providing special thread-specific memory.  This is
  9476. likely to be heavily used by threaded applications, so performance of
  9477. this function will be critical.  The performance of the current
  9478. function is not optimal because the user must examine both the return
  9479. code from the function and the value returned in the value parameter.
  9480.  
  9481. ACTION
  9482.  
  9483.   Change the routine to return the value of the given key, rather than
  9484. accepting an address to store the value into.  If the key is invalid,
  9485. 0 would be returned.  For instance, line 148 would change to be
  9486.  
  9487.     void *pthread_getspecific(pthread_key_t key);
  9488.  
  9489. ------------------------------------------------------------------
  9490. @ 6.3 o 5
  9491.  
  9492. PROBLEM
  9493.  
  9494.   The mutex attributes object may force the pthread_mutex_lock() and
  9495. pthread_mutex_unlock() functions to do extra work when a mutex is
  9496. acquired or released.  Putting scheduling logic into the low-level
  9497. synchronization primitive may be overkill for applications that run
  9498. all of its threads with the same priority, or with mutexes that do not
  9499. cross thread priority boundaries.
  9500.  
  9501.   Providing an interface that allows a very fast low-level locking
  9502. mechanism will encourage application developers to write code based
  9503. solely on the standard.  With the current interface, vendors are
  9504. likely to sacrifice portability in the interest of better performance
  9505. by attempting to use hardware or OS-specific locking mechanisms where
  9506. they are available.  This is especially true if an application does
  9507. not interact with other processes and all threads run at the same
  9508. priority, which is likely to be a common scenerio.
  9509.  
  9510. ACTION
  9511.  
  9512.   While not applying to this section, the pthread_mutexattr_t
  9513. structure should be removed from the interface.  A new type of locking
  9514. mechanism can provide the synchronization protocols and priority
  9515. ceilings in its own attribute object.  These functions should then be
  9516. described in terms of this new interface.
  9517.  
  9518. ------------------------------------------------------------------
  9519. @ 8.3 o 6
  9520.  
  9521. PROBLEM
  9522.  
  9523.   The list of async safe functions in 8.3.2 seems to be incomplete.
  9524. In particular, the functions pthread_mutex_unlock() and pthread_self()
  9525. should also be asyn safe.
  9526.  
  9527. ACTION
  9528.  
  9529.   Add these functions to the list given in the final paragraph.
  9530.  
  9531. ------------------------------------------------------------------
  9532. @ 8.4 o 7
  9533.  
  9534. PROBLEM
  9535.  
  9536.   It seems reasonable that more than one thread in the same process
  9537. might be interested in the same signal via the sigwait() function.
  9538. Section 8.4.1.2 states that "exactly one of these threads shall return
  9539. from sigwait() with the signal number."
  9540.  
  9541.   This seems unduly harsh.  For example, various libraries may wish to
  9542. clean up from the receipt of a SIGINT, or check for a created child
  9543. process (with a polling call to waitpid) when SIGCHLD is received.
  9544. Allowing multiple libraries to perform these actions seems worthwhile
  9545.  
  9546. ACTION
  9547.  
  9548.   Change the second paragraph in Section 8.4.1.2 to read
  9549.  
  9550.     If more than one thread is using sigwait() to wait for the
  9551.     same signal then all of these threads shall return from
  9552.     sigwait() with the signal number.  No order can be assumed in
  9553.     the delivery of the signals to the waiting threads.  Also, if
  9554.     a thread exits the program after a return from sigwait(), then
  9555.     other threads that were also waiting for the signal may not
  9556.     actually receive it.
  9557.  
  9558. ------------------------------------------------------------------
  9559.  
  9560.  
  9561. Volume-Number: Volume 27, Number 85
  9562.  
  9563. From std-unix-request@uunet.UU.NET  Fri May  1 21:51:23 1992
  9564. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  9565.     (5.61/UUNET-mail-drop) id AA08111; Fri, 1 May 92 21:51:23 -0400
  9566. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  9567.     (5.61/UUNET-internet-primary) id AA11689; Fri, 1 May 92 21:51:22 -0400
  9568. From: Ron Christian <uswnvg!rchrist@uunet.UU.NET>
  9569. Newsgroups: comp.std.unix
  9570. Subject: Are bugfixes proprietary?
  9571. Message-Id: <tsqu8INNpfe@ftp.UU.NET>
  9572. Organization: US West NewVector, Bellevue, WA
  9573. Nntp-Posting-Host: ftp.uu.net
  9574. X-Submissions: std-unix@uunet.uu.net
  9575. Date: 2 May 92 01:23:20 GMT
  9576. Reply-To: std-unix@uunet.uu.net
  9577. To: std-unix@uunet.UU.NET
  9578. Sender: Network News <news@kithrup.com>
  9579. Source-Info:  From (or Sender) name not authenticated.
  9580.  
  9581. Submitted-by: rchrist@uswnvg.UUCP (Ron Christian)
  9582.  
  9583. Recently, in the process of getting a nasty bug fixed, I asked a
  9584. computer vendor if this bug fix would be communicated back to the Unix
  9585. standards organization from which they got their bits, since the bug
  9586. was in the original code.  (Both computer vendor and standards
  9587. organization will remain nameless for now.) The vendor's response was
  9588. "there is currently no mechanism to communicate bug reports back to
  9589. <organization>".  This sounded interesting, so I asked a couple other
  9590. vendors if they reported bugs or bugfixes.  I got one "yes" response
  9591. and one other "currently no mechanism" response.
  9592.  
  9593. Now, this is not by any means a significant sampling of computer
  9594. vendors, but it leads me to ask the question in this forum.  Are
  9595. vendors who produce an ostensibly standards-based Unix expected to
  9596. report bugs back to the standards organization, or is it the general
  9597. expectation of the industry that bug fixes are value added by the
  9598. vendor and hence proprietary?  Or, is there simply too much overhead
  9599. involved in reporting bugs in some reasonably structured fashion?  If
  9600. vendors typically don't report bugs, how are standards organizations
  9601. (USL, OSF, Posix, X/Open, etc) made aware of them?
  9602.  
  9603. I guess I'm interested in how the system is supposed to work, and also
  9604. people's observations on how the system works (or doesn't work) in real
  9605. life.
  9606.  
  9607. Thanks in advance.
  9608.  
  9609.  
  9610.                 Ron
  9611.  
  9612.  
  9613. Volume-Number: Volume 27, Number 86
  9614.  
  9615. From std-unix-request@uunet.UU.NET  Mon May  4 18:01:55 1992
  9616. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  9617.     (5.61/UUNET-mail-drop) id AA17992; Mon, 4 May 92 18:01:55 -0400
  9618. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  9619.     (5.61/UUNET-internet-primary) id AA02536; Mon, 4 May 92 18:01:52 -0400
  9620. From: Matthew Wicks <wicks@dcdmjw.fnal.gov>
  9621. Newsgroups: comp.std.unix
  9622. Subject: Re: Are bugfixes proprietary?
  9623. Message-Id: <u49s6INNoej@ftp.UU.NET>
  9624. Article-I.D.: ftp.u49s6INNoej
  9625. References: <tsqu8INNpfe@ftp.UU.NET> <tsqu8INNpfe@ftp.UU.NET>,
  9626. Organization: Fermi National Accelerator Laboratory, Batavia IL
  9627. Nntp-Posting-Host: ftp.uu.net
  9628. X-Submissions: std-unix@uunet.uu.net
  9629. Date: 4 May 92 21:21:10 GMT
  9630. Reply-To: std-unix@uunet.uu.net
  9631. To: std-unix@uunet.UU.NET
  9632. Sender: Network News <news@kithrup.com>
  9633. Source-Info:  From (or Sender) name not authenticated.
  9634.  
  9635. Submitted-by: wicks@dcdmjw.fnal.gov (Matthew Wicks)
  9636.  
  9637. In article <tsqu8INNpfe@ftp.UU.NET>, rchrist@uswnvg.UUCP (Ron Christian) writes:
  9638. >Are
  9639. >vendors who produce an ostensibly standards-based Unix expected to
  9640. >report bugs back to the standards organization, or is it the general
  9641. >expectation of the industry that bug fixes are value added by the
  9642. >vendor and hence proprietary?  Or, is there simply too much overhead
  9643. >involved in reporting bugs in some reasonably structured fashion?  If
  9644. >vendors typically don't report bugs, how are standards organizations
  9645. >(USL, OSF, Posix, X/Open, etc) made aware of them?
  9646.  
  9647. It is necessary to differentiate between organizations such as IEEE (POSIX)
  9648. and USL or OSF. In the first case, POSIX is just a specification, thus
  9649. can't contain a bug of the manner you describe. Now of course the standard
  9650. could be poorly specified and thus need changing, but there are official
  9651. procedures for that.
  9652.  
  9653. On the other hand, USL and OSF license and distribute code and thus should
  9654. have some mechanism to allow their customers to report bugs.
  9655.  
  9656. -- 
  9657. Matt Wicks
  9658. Fermi National Accelerator Laboratory
  9659. wicks@fnal.fnal.gov
  9660. 708-840-8083
  9661.  
  9662. [ Also noted by gisle@ifi.uio.no, gwyn@moke.brl.mil, duke@cupid.UUCP -- mod ]
  9663.  
  9664. Volume-Number: Volume 27, Number 87
  9665.  
  9666. From std-unix-request@uunet.UU.NET  Wed May  6 15:14:44 1992
  9667. Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
  9668.     (5.61/UUNET-mail-drop) id AA10471; Wed, 6 May 92 15:14:44 -0400
  9669. Received: from kithrup.COM by relay1.UU.NET with SMTP 
  9670.     (5.61/UUNET-internet-primary) id AA15208; Wed, 6 May 92 15:14:41 -0400
  9671. From: "Shane P. McCarron" <ahby@ui.org>
  9672. Newsgroups: comp.std.unix
  9673. Subject: Debugging Information Format specification available for review
  9674. Keywords: DWARF debug
  9675. Message-Id: <u99vaINN5k5@ftp.UU.NET>
  9676. Article-I.D.: ftp.u99vaINN5k5
  9677. Organization: UNIX International
  9678. Nntp-Posting-Host: ftp.uu.net
  9679. X-Submissions: std-unix@uunet.uu.net
  9680. Date: 6 May 92 18:53:30 GMT
  9681. Reply-To: std-unix@uunet.uu.net
  9682. To: std-unix@uunet.UU.NET
  9683. Sender: Network News <news@kithrup.com>
  9684. Source-Info:  From (or Sender) name not authenticated.
  9685.  
  9686. Submitted-by: ahby@ui.org (Shane P. McCarron)
  9687.  
  9688. The UNIX International Programming Languages Special Interest Group
  9689. has completed a draft of the DWARF debugger format specification, and
  9690. is making it available for industry review.  As with all UNIX 
  9691. International developed specifications, this document is available 
  9692. for distribution without restriction under an X Window System-like
  9693. copyright.
  9694.  
  9695. Attached below is the Foreword and Introduction from the document.  If
  9696. you would like to receive a copy, send mail to archive@ui.org
  9697. containing the following:
  9698.  
  9699.     path yourname@your.site
  9700.     send PUBLIC/dwarf.v1.mm
  9701.  
  9702. for the troff source, or
  9703.  
  9704.     send PUBLIC/dwarf.v1.ps
  9705.  
  9706. for the postscript.  If you system supports uncompress and uudecode, you 
  9707. can request that the data be compressed by placing the command 'compress'
  9708. in the message.
  9709.  
  9710. If you have any questions about the archive service, please contact
  9711. me.  If you have questions about the Programming Languages SIG or the
  9712. DWARF specification, please contact the SIG chair, Dan Oldman, at
  9713. d.oldman@ui.org.  If you are interested in participating in the
  9714. ongoing discussions of the Programming Languages SIG, please send a
  9715. message containing your fully qualified internet address to
  9716. plsig-request@ui.org.
  9717.  
  9718. --
  9719. Shane P. McCarron            ATT:    +1 201 263-8400 x232
  9720. Project Manager                UUCP:    s.mccarron@ui.org
  9721.  
  9722.  
  9723.  
  9724.        DWARF Debugging Information Format
  9725.  
  9726.  
  9727.        FOREWORD
  9728.  
  9729.        This  document  specifies  a  new  generation  of   symbolic
  9730.        debugging  information  that  has been developed by the UNIX
  9731.        International Programming Languages Special  Interest  Group
  9732.        (SIG),  and  is  being  circulated  for industry review.  We
  9733.        started  from  the  document  DWARF  Debugging   Information
  9734.        Requirements  - Issue 2, dated April 4, 1990, made available
  9735.        by AT&T to its source licensees,  and  added  a  significant
  9736.        amount  of material to clarify what was originally specified
  9737.        and to support additional language constructs that were  not
  9738.        in the original specification.
  9739.  
  9740.        At  this  point,  the  SIG  believes  that   this   document
  9741.        sufficiently  supports  the  debugging  needs of C, C++, and
  9742.        FORTRAN 77, and we have released it for public comment.   We
  9743.        will  accept  comments on this document until June 15, 1992.
  9744.        Comments may be directed via email to me or  posted  to  the
  9745.        SIG  mailing list (plsig@ui.org).  If you are unable to send
  9746.        email, paper mail, FAX, or machine readable  copy  on  UNIX,
  9747.        MS-DOS, or Macintosh compatible media can be sent to me, and
  9748.        I will post it for you.
  9749.  
  9750.                            Tony D'Annunzio
  9751.                            Vice President of Technology
  9752.                            UNIX International
  9753.                            Waterview Corporate Center
  9754.                            20 Waterview Boulevard
  9755.                            Parsippany, NJ 07054
  9756.                            Phone:    +1 201-263-8400
  9757.                            Fax: +1 201-263-8401
  9758.  
  9759.  
  9760.  
  9761.  
  9762.  
  9763.  
  9764.  
  9765.  
  9766.  
  9767.  
  9768.  
  9769.  
  9770.  
  9771.  
  9772.  
  9773.  
  9774.  
  9775.  
  9776.  
  9777.  
  9778.  
  9779.  
  9780.        Revision: 1.0.0            Page 1           January 20, 1992
  9781.                           Industry Review Draft
  9782.  
  9783.  
  9784.  
  9785.  
  9786.  
  9787.  
  9788.  
  9789.  
  9790.                                           Programming Languages SIG
  9791.  
  9792.  
  9793.        1.  INTRODUCTION
  9794.  
  9795.        This  document  defines  the  format  for  the   information
  9796.        generated  by compilers, assemblers and linkage editors that
  9797.        is necessary  for  symbolic,  source-level  debugging.   The
  9798.        debugging  information  format  does not favor the design of
  9799.        any compiler or debugger.  Instead, the goal is to create  a
  9800.        method  of  communicating  an accurate picture of the source
  9801.        program to any debugger  in  a  form  that  is  economically
  9802.        extensible  to  different languages while retaining backward
  9803.        compatibility.
  9804.  
  9805.        The design of the  debugging  information  format  is  open-
  9806.        ended,   allowing   for   the   addition  of  new  debugging
  9807.        information  to  accommodate  new  languages   or   debugger
  9808.        capabilities while remaining compatible with other languages
  9809.        or different debuggers.
  9810.  
  9811.        1.1  Purpose and Scope
  9812.  
  9813.        The debugging information format described in this  document
  9814.        is  designed  to  meet  the symbolic, source-level debugging
  9815.        needs  of  different  languages  in  a  unified  fashion  by
  9816.        requiring   language   independent   debugging   information
  9817.        whenever possible.  Individual needs, such  as  C++  virtual
  9818.        functions  or  Fortran  common  blocks  are  accommodated by
  9819.        creating attributes that are used only for those languages.
  9820.  
  9821.        This document describes DWARF Version 1, which  is  designed
  9822.        to  be binary compatible with the debugging information that
  9823.        is described in the  document  DWARF  Debugging  Information
  9824.        Requirements  -  Issue  2,  dated  April  4,  1990, and made
  9825.        available by AT&T to its  source  licencess.  The  April  4,
  9826.        1990,  document  describes the debugging information that is
  9827.        generated by the UNIX System V  Release  4  C  compiler  and
  9828.        consumed by the System V Release 4 debugger, sdb.
  9829.  
  9830.        By ``binary compatibility'' we mean that
  9831.  
  9832.          1.  All  features  intended  to  support  C  and   Fortran
  9833.              described  in the April 4, 1990, document are included
  9834.              in this document, and
  9835.  
  9836.          2.  DWARF produced according to  this  (DWARF  Version  1)
  9837.              specification  should  be  considered well formed by a
  9838.              System V Release 4 compatible DWARF consumer,  but may
  9839.              contain  information that such a consumer is unable to
  9840.              interpret.  Consumers  are  expected  to  ignore  such
  9841.              information.
  9842.  
  9843.  
  9844.  
  9845.  
  9846.        Revision: 1.0.0            Page 3           January 20, 1992
  9847.                           Industry Review Draft
  9848.  
  9849.  
  9850.  
  9851.  
  9852.  
  9853.  
  9854.  
  9855.  
  9856.        DWARF Debugging Information Format
  9857.  
  9858.  
  9859.        The intended audience for this document are  the  developers
  9860.        of  both  producers  and consumers of debugging information,
  9861.        typically language compilers, debuggers and other tools that
  9862.        need  to interpret a binary program in terms of its original
  9863.        source.
  9864.  
  9865.        This version of the document is a draft for industry review.
  9866.        Vendors  developing  products  based on this draft should be
  9867.        aware that the review process may produce changes.
  9868.  
  9869.        1.2  Overview
  9870.  
  9871.        There are two major pieces to the description of  the  DWARF
  9872.        format  in  this document.  The first piece is the debugging
  9873.        information, itself.   Section  two  describes  the  overall
  9874.        structure  of that information.  Section three describes the
  9875.        specific  debugging  information  entries   and   how   they
  9876.        communicate  the  necessary  information  about  the  source
  9877.        program to a debugger.
  9878.  
  9879.        The second piece of the DWARF description  is  the  way  the
  9880.        debugging  information  is  encoded  and  represented  in an
  9881.        object file.  The DWARF encoding  is  presented  in  section
  9882.        four.
  9883.  
  9884.        Section five  describes  compatibility  constraints  on  the
  9885.        format.     Finally,    section   six   describes   external
  9886.        dependencies.
  9887.  
  9888.        In the following sections, text  in  normal  font  describes
  9889.        required  aspects  of  the DWARF format.  Text in italics is
  9890.        explanatory or supplementary material, and not part  of  the
  9891.        format definition itself.
  9892.  
  9893.        1.3  Vendor Extensibility
  9894.  
  9895.        This document describes only the features of DWARF that have
  9896.        been  implemented  and tested by at least one vendor (with a
  9897.        very few exceptions).  It does  not  attempt  to  cover  all
  9898.        languages  or even to cover all of the interesting debugging
  9899.        information needs for its primary target languages (C,  C++,
  9900.        Fortran).   Therefore the document provides vendors a way to
  9901.        define their own  debugging  information  tags,  attributes,
  9902.        fundamental   types,  type  modifiers,  location  atoms  and
  9903.        language names, by reserving a portion of the name space and
  9904.        valid  values  for  these  constructs  for  vendor  specific
  9905.        additions.  Future versions of this document  will  not  use
  9906.        names or values reserved for vendor specific additions.  All
  9907.        names and values not reserved for vendor additions, however,
  9908.        are  reserved  for  future  versions  of this document.  See
  9909.        section 4 for details.
  9910.  
  9911.  
  9912.        Revision: 1.0.0            Page 4           January 20, 1992
  9913.                           Industry Review Draft
  9914. -- 
  9915. Shane P. McCarron            ATT:    +1 201 263-8400 x232
  9916. Project Manager                UUCP:    s.mccarron@ui.org
  9917.  
  9918. [ I wasn't sure about allowing this here.  Please let me know whether
  9919.  or not you, the readers, want information like this posted  -- mod ]
  9920.  
  9921. Volume-Number: Volume 27, Number 88
  9922.  
  9923. From std-unix-request@uunet.UU.NET  Fri May  8 14:15:12 1992
  9924. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  9925.     (5.61/UUNET-mail-drop) id AA11018; Fri, 8 May 92 14:15:12 -0400
  9926. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  9927.     (5.61/UUNET-internet-primary) id AA21489; Fri, 8 May 92 14:15:16 -0400
  9928. From: Bob Robillard <duke@ctt.bellcore.com>
  9929. Newsgroups: comp.std.unix
  9930. Subject: POSIX 1003.1/1003.16 (Language Independent POSIX Ballot extended)
  9931. Organization: UUNET Communications
  9932. Message-Id: <ued6sINNi5l@ftp.UU.NET>
  9933. Reply-To: duke@ctt.bellcore.com
  9934. Nntp-Posting-Host: ftp.uu.net
  9935. X-Submissions: std-unix@uunet.uu.net
  9936. Date: 8 May 1992 10:19:24 -0700
  9937. To: std-unix@uunet.UU.NET
  9938. Sender: Network News <news@kithrup.com>
  9939. Source-Info:  From (or Sender) name not authenticated.
  9940.  
  9941. Submitted-by: duke@ctt.bellcore.com (Bob Robillard)
  9942.  
  9943. The deadline for getting in the ballot group for POSIX
  9944. 1003.1/1003.16 has been extended to May 15.  This is the
  9945. "Language Independent" version and "C binding" of the
  9946. POSIX system calls.  If you care about the way that all
  9947. future POSIX APIs will be written I suggest you ballot
  9948. this draft.
  9949.  
  9950. The sign-up form IEE sent out says to contact IEEE's Anna
  9951. Kaczmarek at 908-562-1571 to get involved with this.
  9952. (Don't get in touch with me; I'm just a civilian about
  9953. this...)
  9954.  
  9955. For people unfamiliar with POSIX's new "Language Independent"
  9956. movement, here's my heavily biased take:  Bew POSIX APIs
  9957. will not be C language APIs.  They have to be written in 
  9958. new, invented programming language that is supposed to be 
  9959. easily translatable to Ada, or Fortran, or even C.  API's 
  9960. written in this new, invented programming language are called 
  9961. "Language Independent APIs."  
  9962.  
  9963. Each "Language Independent APIs" should come with translations 
  9964. to real programming languages (like C, Ada and Fortran).  These 
  9965. translations are called "bindings."  In order to find out what 
  9966. a given function is supposed to do, you'll need to read the 
  9967. Language Independent Spec to find out the basic functionality, 
  9968. and then read the language binding to find out the syntax and
  9969. language specific functionality.
  9970.  
  9971. Bob Robillard, Technical Editor, 1003.7      Bellcore
  9972. duke@cc.bellcore.com                         RRC 1D-229
  9973. bcr!cupid!duke                               444 Hoes Lane
  9974. 908-699-2249, FAX: 908-336-2827              Piscataway, NJ 08854
  9975.  
  9976.  
  9977.  
  9978. Volume-Number: Volume 27, Number 89
  9979.  
  9980. From std-unix-request@uunet.UU.NET  Fri May  8 22:27:27 1992
  9981. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  9982.     (5.61/UUNET-mail-drop) id AA04446; Fri, 8 May 92 22:27:27 -0400
  9983. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  9984.     (5.61/UUNET-internet-primary) id AA05278; Fri, 8 May 92 22:27:34 -0400
  9985. From: James Buster <bitbug@netcom.com>
  9986. Newsgroups: comp.std.unix
  9987. Subject: Posix.1 oddity: why specify this?
  9988. Message-Id: <ufb93INNq8m@ftp.UU.NET>
  9989. Organization: Lynx Real-Time Systems, Inc.
  9990. Nntp-Posting-Host: ftp.uu.net
  9991. X-Submissions: std-unix@uunet.uu.net
  9992. Date: 9 May 92 01:52:35 GMT
  9993. Reply-To: std-unix@uunet.uu.net
  9994. To: std-unix@uunet.UU.NET
  9995. Sender: Network News <news@kithrup.com>
  9996. Source-Info:  From (or Sender) name not authenticated.
  9997.  
  9998. Submitted-by: bitbug@netcom.com (James Buster)
  9999.  
  10000. Moderator!:  Delete most of these lines (begin):
  10001.  
  10002. In IEEE Posix Std. 1003.1 (ISO/IEC 9945-1) states, under the definition
  10003. of utime() (Pages 108-110):
  10004.  
  10005.     "If the _times_ argument is not NULL, it is interpreted as a
  10006.     pointer to a utimbuf structure, and the access and modification
  10007.     times are set to the values contained in the designated structure.
  10008.     Only the owner of the file and processes with appropriate
  10009.     privileges shall be permitted to use the utime() function in
  10010.     this way."
  10011.  
  10012. Later, in the Errors section:
  10013.  
  10014. [EPERM]    The _times_ argument is not NULL, the effective user ID of the
  10015.     calling process has write access to the file, but does not
  10016.     match the owner of the file, and the calling process does not
  10017.     have the appropriate privileges.
  10018.  
  10019. Here is my question: Why mention write access in the EPERM description?
  10020. Clearly, as described above, if _times_ isn't NULL, write access is not
  10021. considered when determining whether to grant a successful call to utime().
  10022. I can only conclude that mentioning write access is an error on the part
  10023. of the drafters of this document. Any Posix experts care to comment?
  10024. -- 
  10025.                 James Buster
  10026.                  bitbug@netcom.com
  10027.  
  10028.  
  10029. Volume-Number: Volume 27, Number 90
  10030.  
  10031. From std-unix-request@uunet.UU.NET  Wed May 13 15:45:59 1992
  10032. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10033.     (5.61/UUNET-mail-drop) id AA04688; Wed, 13 May 92 15:45:59 -0400
  10034. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10035.     (5.61/UUNET-internet-primary) id AA07219; Wed, 13 May 92 15:46:02 -0400
  10036. From: Brian Button <bab@se39.wg2.waii.com>
  10037. Newsgroups: comp.std.unix
  10038. Subject: POSIX binary semaphore question
  10039. Organization: Western Geophysical Exploration Products
  10040. Message-Id: <urr82INNan5@ftp.UU.NET>
  10041. Nntp-Posting-Host: ftp.uu.net
  10042. X-Submissions: std-unix@uunet.uu.net
  10043. Date: 13 May 1992 12:38:42 -0700
  10044. Reply-To: std-unix@uunet.uu.net
  10045. To: std-unix@uunet.UU.NET
  10046. Sender: Network News <news@kithrup.com>
  10047. Source-Info:  From (or Sender) name not authenticated.
  10048.  
  10049. Submitted-by: bab@se39.wg2.waii.com (Brian Button)
  10050.  
  10051. Is there a way to find out the control information regarding POSIX.4
  10052. binary semaphores? I need a way to find out the uid and gid of the
  10053. creator and the size of the semaphore set which was created.
  10054.  
  10055. Any suggestions?
  10056. --
  10057. Brian Button          | email : button@wg2.waii.com, bab@buster.stafford.tx.us
  10058. Design Engineer       | voice : (713)964-6221
  10059. Western Geophysical
  10060. 3600 Briarpark
  10061. Houston, Texas  77042
  10062.  
  10063. Volume-Number: Volume 27, Number 93
  10064.  
  10065. From std-unix-request@uunet.UU.NET  Wed May 13 15:48:29 1992
  10066. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10067.     (5.61/UUNET-mail-drop) id AA04825; Wed, 13 May 92 15:48:29 -0400
  10068. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10069.     (5.61/UUNET-internet-primary) id AA07902; Wed, 13 May 92 15:48:33 -0400
  10070. From: Ian Lance Taylor <ian@airs.com>
  10071. Newsgroups: comp.std.unix
  10072. Subject: UUCP standardization effort
  10073. Message-Id: <urqs9INNagg@ftp.UU.NET>
  10074. Article-I.D.: ftp.urqs9INNagg
  10075. Organization: UUNET Communications
  10076. Nntp-Posting-Host: ftp.uu.net
  10077. X-Submissions: std-unix@uunet.uu.net
  10078. Date: 13 May 92 19:32:25 GMT
  10079. Reply-To: std-unix@uunet.uu.net
  10080. To: std-unix@uunet.UU.NET
  10081. Sender: Network News <news@kithrup.com>
  10082. Source-Info:  From (or Sender) name not authenticated.
  10083.  
  10084. Submitted-by: ian@airs.com (Ian Lance Taylor)
  10085.  
  10086. I recently discovered that the UUCP program suite is apparently being
  10087. considered for standardization by the POSIX networking interfaces
  10088. group.  Is the group actively meeting, and, if so, is there any way to
  10089. get in touch with the relevant people via e-mail?
  10090.  
  10091. Thanks, and apologies if this is well-known information.
  10092. -- 
  10093. Ian Lance Taylor                ian@airs.com                uunet!airs!ian
  10094. First person to identify this quote wins a free e-mail message:
  10095. ``They were all-but forgotten people: the breed that was remembered with a
  10096.   start, or with the unreality of a recrudescent dream.''
  10097.  
  10098.  
  10099. Volume-Number: Volume 27, Number 91
  10100.  
  10101. From std-unix-request@uunet.UU.NET  Wed May 13 15:48:37 1992
  10102. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10103.     (5.61/UUNET-mail-drop) id AA04833; Wed, 13 May 92 15:48:37 -0400
  10104. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10105.     (5.61/UUNET-internet-primary) id AA07927; Wed, 13 May 92 15:48:41 -0400
  10106. From: ritley@uimrl7.mrl.uiuc.edu
  10107. Newsgroups: comp.std.unix
  10108. Subject: Anyone heard of PICK???
  10109. Message-Id: <urqvbINNaif@ftp.UU.NET>
  10110. Reply-To: ritley@uiucmrl.bitnet
  10111. Organization: Materials Research Lab
  10112. Nntp-Posting-Host: ftp.uu.net
  10113. X-Submissions: std-unix@uunet.uu.net
  10114. Date: 13 May 92 19:34:03 GMT
  10115. To: std-unix@uunet.UU.NET
  10116. Sender: Network News <news@kithrup.com>
  10117. Source-Info:  From (or Sender) name not authenticated.
  10118.  
  10119. Submitted-by: ritley@uimrl7.mrl.uiuc.edu
  10120.  
  10121. I have heard of something called PICK, which, from what little I've heard,
  10122. seems to be some sort of user-friendly, business-application-oriented
  10123. shell which runs on top of Unix.
  10124.  
  10125. It sounds like this is something standard. 
  10126.  
  10127. I know there are books about PICK, but can anyone provide me with some
  10128. on-line sources of information, etc. --- such as anonymous-ftp
  10129. sites for PICK utilities and so forth?
  10130.  
  10131. Many thanks!
  10132.  
  10133.  
  10134. Volume-Number: Volume 27, Number 92
  10135.  
  10136. From std-unix-request@uunet.UU.NET  Thu May 14 14:51:50 1992
  10137. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10138.     (5.61/UUNET-mail-drop) id AA16090; Thu, 14 May 92 14:51:50 -0400
  10139. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10140.     (5.61/UUNET-internet-primary) id AA19742; Thu, 14 May 92 14:51:54 -0400
  10141. From: Malcolm Stayner <malcolm@usenet.icl.co.nz>
  10142. Newsgroups: comp.std.unix
  10143. Subject: COMMA SEPARATED VALUE FILES
  10144. Organization: Office Support Centre, Fujitsu ICL (NZ) Ltd, Wellington, New Zealand
  10145. Message-Id: <uuc7dINN31a@ftp.UU.NET>
  10146. Reply-To: Malcolm Stayner <usenet!malcolm@uunet.UU.NET>
  10147. Nntp-Posting-Host: ftp.uu.net
  10148. Keywords: CSV,standards
  10149. X-Submissions: std-unix@uunet.uu.net
  10150. Date: 14 May 1992 11:40:45 -0700
  10151. To: std-unix@uunet.UU.NET
  10152. Sender: Network News <news@kithrup.com>
  10153. Source-Info:  From (or Sender) name not authenticated.
  10154.  
  10155. Submitted-by: malcolm@usenet.icl.co.nz (Malcolm Stayner)
  10156.  
  10157. I've recently come across a situation where a UNIX application incorrectly 
  10158. processed a CSV file because null fields were not delimited by double quotes.
  10159. e.g.
  10160.     Apple,Banana,,,Orange
  10161.  
  10162. instead of:
  10163.  
  10164.     Apple,Banana,"","",Orange
  10165.  
  10166. Does anyone know of a formal standard for CSV files and, in particular the
  10167. correct rules for the above situation?
  10168.  
  10169. -- 
  10170. Malcolm Stayner           Email: malcolm@icl.co.nz  "Intelligence is silence,
  10171. Open Systems Consultant   Tel: +64-4-472 4884       truth is being invisible,
  10172. Fujitsu ICL N.Z. Ltd      Fax: +64-4-472 6737       but what a racket I make in
  10173. P.O. Box 394, Wellington, New Zealand               declaring this" NED ROREM
  10174.  
  10175.  
  10176. Volume-Number: Volume 27, Number 94
  10177.  
  10178. From std-unix-request@uunet.UU.NET  Thu May 14 16:47:47 1992
  10179. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10180.     (5.61/UUNET-mail-drop) id AA23998; Thu, 14 May 92 16:47:47 -0400
  10181. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10182.     (5.61/UUNET-internet-primary) id AA19953; Thu, 14 May 92 16:47:52 -0400
  10183. From: Chris Wagner <jwag@moose.asd.sgi.com>
  10184. Newsgroups: comp.std.unix
  10185. Subject: Feature Test macros for POSIX
  10186. Organization: Silicon Graphics, Research & Development
  10187. Message-Id: <uugn6INN4k6@ftp.UU.NET>
  10188. Nntp-Posting-Host: ftp.uu.net
  10189. X-Submissions: std-unix@uunet.uu.net
  10190. Date: 14 May 1992 12:57:26 -0700
  10191. Reply-To: std-unix@uunet.uu.net
  10192. To: std-unix@uunet.UU.NET
  10193. Sender: Network News <news@kithrup.com>
  10194. Source-Info:  From (or Sender) name not authenticated.
  10195.  
  10196. Submitted-by: jwag@moose.asd.sgi.com (Chris Wagner)
  10197.  
  10198. I am trying to figure out the feature test macro for POSIX1003.4 and 4a.
  10199. Although draft 12 gives lots of compile-time option constants, it seems
  10200. to imply that the only feature test macro is _POSIX_C_SOURCE.
  10201. Draft12 seems to imply that as of a certain date (the date of approval
  10202. I assume) all the symbols defined in POSIX1003.4 will suddenly be
  10203. added to header files such as stdio.h, etc. A user can optionally
  10204. set _POSIX_C_SOURCE to an earlier date to preclude certain symbols.
  10205. Is this right?? It seems kind of silly to base visibility on date.
  10206. I would expect that most  developers will still want to be able
  10207. to demand a pure 1003.1 symbol environment.
  10208. Is this _POSIX_C_SOURCE just a 1003.4 hack? or has it been
  10209. formally adopted at the way the future POSIX stds will
  10210. be added to existing headers.
  10211.  
  10212. It seems to me that each standard should add feature test macros that
  10213. can be defined at compile time...(e.g. _POSIX_4SOURCE, etc.)
  10214.  
  10215. ----
  10216. Chris Wagner (jwag@sgi.com)
  10217.  
  10218. Volume-Number: Volume 27, Number 95
  10219.  
  10220. From std-unix-request@uunet.UU.NET  Sat May 16 21:03:38 1992
  10221. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10222.     (5.61/UUNET-mail-drop) id AA00650; Sat, 16 May 92 21:03:38 -0400
  10223. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10224.     (5.61/UUNET-internet-primary) id AA18974; Sat, 16 May 92 21:03:44 -0400
  10225. From: David A Willcox <willcox@urbana.mcd.mot.com>
  10226. Newsgroups: comp.std.unix
  10227. Subject: Re: Feature Test macros for POSIX
  10228. Message-Id: <v139nINNr4n@ftp.UU.NET>
  10229. References: <uugn6INN4k6@ftp.UU.NET>
  10230. Organization: Motorola Computer Group, Urbana Design Center
  10231. Nntp-Posting-Host: ftp.uu.net
  10232. X-Submissions: std-unix@uunet.uu.net
  10233. Date: 15 May 92 19:26:47 GMT
  10234. Reply-To: std-unix@uunet.uu.net
  10235. To: std-unix@uunet.UU.NET
  10236. Sender: Network News <news@kithrup.com>
  10237. Source-Info:  From (or Sender) name not authenticated.
  10238.  
  10239. Submitted-by: willcox@urbana.mcd.mot.com (David A Willcox)
  10240.  
  10241. jwag@moose.asd.sgi.com (Chris Wagner) writes:
  10242.  
  10243. >I am trying to figure out the feature test macro for POSIX1003.4 and 4a.
  10244. >Although draft 12 gives lots of compile-time option constants, it seems
  10245. >to imply that the only feature test macro is _POSIX_C_SOURCE.
  10246. >Draft12 seems to imply that as of a certain date (the date of approval
  10247. >I assume) all the symbols defined in POSIX1003.4 will suddenly be
  10248. >added to header files such as stdio.h, etc. A user can optionally
  10249. >set _POSIX_C_SOURCE to an earlier date to preclude certain symbols.
  10250. >Is this right?? It seems kind of silly to base visibility on date.
  10251. >I would expect that most  developers will still want to be able
  10252. >to demand a pure 1003.1 symbol environment.
  10253. >Is this _POSIX_C_SOURCE just a 1003.4 hack? or has it been
  10254. >formally adopted at the way the future POSIX stds will
  10255. >be added to existing headers.
  10256.  
  10257. A short tutorial on POSIX feature test macros ...
  10258.  
  10259. OK, here's the the way it works.  An ANSI C compiler is not allowed to
  10260. make symbols visible to an application beyond what's defined in ANSI
  10261. C, unless the application does something explicit to make those
  10262. symbols available.  The application does this by defining one or more
  10263. feature test macros before including any headers.  Basically, if the
  10264. application defines a feature test macro, it is saying that it "knows"
  10265. about, and is willing to deal with, the additions to the name space
  10266. that are associated with that feature test macro.
  10267.  
  10268. _POSIX_C_SOURCE is the new POSIX method for controling visibility of
  10269. POSIX symbols.  The application sets _POSIX_C_SOURCE to a date value,
  10270. and that PERMITS the implementation to make visible any symbols
  10271. associated with parts of POSIX that were approved on or before that
  10272. date.  (Using a date as the value is arbitrary.  A simple integer that
  10273. was incremented with each new revision could have been used, but we
  10274. felt that a date would be more meaningful to humans.)  The
  10275. implementation then informs the application which options it actually
  10276. supports through version macros (e.g. _POSIX_VERSION and
  10277. _POSIX2_C_VERSION), or specific "feature present" macros (e.g.
  10278. _POSIX_SYNCHRONIZED_IO).
  10279.  
  10280. So, if an application only wants to see only POSIX.1 ("POSIX Classic"),
  10281. then it will define _POSIX_SOURCE.  Only symbols defined in IEEE
  10282. Std 1003.1-1990 (or -1988) will appear, even if the implementation
  10283. supports POSIX.2, POSIX.4, and ten other options that haven't been
  10284. created, yet.  An application that needs POSIX.1 and POSIX.2 Annex B
  10285. will define _POSIX_C_SOURCE to 199208L [exact value not yet
  10286. determined], and POSIX.4 symbols will not appear.  An application that
  10287. wants only POSIX.4 will define _POSIX_C_SOURCE to 199209L [again,
  10288. exact value not yet determined], and the implementation is then
  10289. permitted to make visible symbols from POSIX.1, POSIX.2, and POSIX.4.
  10290.  
  10291. A couple of things to note:
  10292. (1) Just because the application sets _POSIX_C_SOURCE to a value, does
  10293.     not mean that the imlementation supports all of the requested
  10294.     options.  If the application sets _POSIX_C_SOURCE to 199209L
  10295.     [using the above example] but the implementation doesn't support
  10296.     POSIX.4, then clearly POSIX.4 symbols might or might not appear.
  10297. (2) There is no way for an application to say "I want POSIX.4 symbols
  10298.     but NOT POSIX.1 or POSIX.2 symbols.  It doesn't need to use the
  10299.     unwanted options, but it must respect the reserved namespace of all
  10300.     options defined before
  10301. (3) It is our hope that the IEEE will publish a table saying "here are
  10302.     the symbols defined if <header.h> is included and _POSIX_C_SOURCE
  10303.     is set to yyyymmL" whenever a new revision is approved.
  10304. (4) If this was all consistent, defining _POSIX_C_SOURCE as 199009L
  10305.     would be equivalent to defining _POSIX_SOURCE.  Unfortunately,
  10306.     that isn't required by the current version of POSIX.1.
  10307.  
  10308. >It seems to me that each standard should add feature test macros that
  10309. >can be defined at compile time...(e.g. _POSIX_4SOURCE, etc.)
  10310.  
  10311. The feature test macros are defined at compile time, it's just that
  10312. there is only one feature test macro instead of many.
  10313.  
  10314. Something that many people don't understand is that the different
  10315. POSIX.* docuements are not different standards.  POSIX.2 Annex B,
  10316. POSIX.4, POSIX.4a, POSIX.1a, plus several others, are revisions of
  10317. POSIX.1 describing optional features.  Ultimately, they are all
  10318. considered part of one ISO standard, 9945-1.  (Somebody will probably
  10319. correct me on this, but 9945-2 is shell and utilities [most of POSIX.2],
  10320. and 9945-3 is system administration.) So it actually makes more sense
  10321. for all of the C bindings to use the same feature test macro than to
  10322. give each option of the standard its own feature test macro. 
  10323.  
  10324. David A. Willcox        "Just say 'NO' to universal drug testing"
  10325. Motorola MCG - Urbana        UUCP: ...!uiucuxc!udc!willcox
  10326. 1101 E. University Ave.        INET: willcox@urbana.mcd.mot.com
  10327. Urbana, IL 61801        FONE: 217-384-8534
  10328.  
  10329.  
  10330. Volume-Number: Volume 27, Number 96
  10331.  
  10332. From std-unix-request@uunet.UU.NET  Sat May 16 21:03:44 1992
  10333. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10334.     (5.61/UUNET-mail-drop) id AA00657; Sat, 16 May 92 21:03:44 -0400
  10335. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10336.     (5.61/UUNET-internet-primary) id AA18985; Sat, 16 May 92 21:03:51 -0400
  10337. From: Henry Spencer <henry@zoo.toronto.edu>
  10338. Newsgroups: comp.std.unix
  10339. Subject: Re: Anyone heard of PICK???
  10340. Organization: U of Toronto Zoology
  10341. Message-Id: <v13ajINNr6d@ftp.UU.NET>
  10342. References: <urqvbINNaif@ftp.UU.NET>
  10343. Nntp-Posting-Host: ftp.uu.net
  10344. X-Submissions: std-unix@uunet.uu.net
  10345. Date: 15 May 1992 12:27:15 -0700
  10346. Reply-To: std-unix@uunet.uu.net
  10347. To: std-unix@uunet.UU.NET
  10348. Sender: Network News <news@kithrup.com>
  10349. Source-Info:  From (or Sender) name not authenticated.
  10350.  
  10351. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  10352.  
  10353. >Submitted-by: ritley@uimrl7.mrl.uiuc.edu
  10354. >I know there are books about PICK, but can anyone provide me with some
  10355. >on-line sources of information, etc. --- such as anonymous-ftp
  10356. >sites for PICK utilities and so forth?
  10357.  
  10358. Unless things have changed since I last encountered it, PICK is a proprietary
  10359. product of one particular company, and you will have to talk to them about
  10360. machine-readable documentation, utilities, etc.
  10361.  
  10362. It used to be a complete operating system, in fact.  They eventually saw
  10363. which way the wind was blowing and did a port to the Unix environment.
  10364. -- 
  10365. ISDN, n:  Incredibly Slow and Dumb      | Henry Spencer @ U of Toronto Zoology
  10366. Networking                              |  henry@zoo.toronto.edu  utzoo!henry
  10367.  
  10368.  
  10369. Volume-Number: Volume 27, Number 97
  10370.  
  10371. From std-unix-request@uunet.UU.NET  Mon May 18 23:06:48 1992
  10372. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10373.     (5.61/UUNET-mail-drop) id AA16231; Mon, 18 May 92 23:06:48 -0400
  10374. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10375.     (5.61/UUNET-internet-primary) id AA26475; Mon, 18 May 92 23:06:53 -0400
  10376. From: Bob Larson <blarson@mizar.usc.edu>
  10377. Newsgroups: comp.std.unix
  10378. Subject: Re: Anyone heard of PICK???
  10379. Organization: USC Software Systems, home of TOADS
  10380. Message-Id: <v8vecINNn3a@ftp.UU.NET>
  10381. References: <urqvbINNaif@ftp.UU.NET> <v13ajINNr6d@ftp.UU.NET>
  10382. Nntp-Posting-Host: ftp.uu.net
  10383. X-Submissions: std-unix@uunet.uu.net
  10384. Date: 18 May 1992 12:10:04 -0700
  10385. Reply-To: std-unix@uunet.uu.net
  10386. To: std-unix@uunet.UU.NET
  10387. Sender: Network News <news@kithrup.com>
  10388. Source-Info:  From (or Sender) name not authenticated.
  10389.  
  10390. Submitted-by: blarson%mizar.usc.edu@usc.edu (Bob Larson)
  10391.  
  10392. Pick is a data-base and operating enviornment (including programming
  10393. language) designed around the commands used to query the data-base.
  10394. It's main strength is the ability to quickly design new reports.
  10395.  
  10396. In article <v13ajINNr6d@ftp.UU.NET> henry@zoo.toronto.edu (Henry Spencer) writes:
  10397. >>Submitted-by: ritley@uimrl7.mrl.uiuc.edu
  10398. >>I know there are books about PICK, but can anyone provide me with some
  10399. >>on-line sources of information, etc. --- such as anonymous-ftp
  10400. >>sites for PICK utilities and so forth?
  10401. >
  10402. >Unless things have changed since I last encountered it, PICK is a proprietary
  10403. >product of one particular company, 
  10404.  
  10405. Technicly true, although that is also true of Unix.  However, the
  10406. (proprietary to other companies) work-betters have been around for
  10407. well over a decade.  (Unlike Unix, where no-AT&T code work-alikes are
  10408. relitivly recent.)  There are at least four competing variations
  10409. running on various Unix platforms, (Universe, Unidata, Prime
  10410. Information/Open, and Advanced Pick) as well as those running on other
  10411. operating systems and stand alone.
  10412.  
  10413. >and you will have to talk to them about
  10414. >machine-readable documentation, utilities, etc.
  10415.  
  10416. There are several magizines devoted to Pick-Alikes, and various
  10417. user-groups and trade shows.  Quite a few companies make their living
  10418. selling utilities and doing consulting on Pick systems.
  10419.  
  10420. I don't know of any FTP sites.  Comp.sys.prime sometimes has
  10421. discussions of Prime Information and Prime Information/Open.
  10422.  
  10423. >It used to be a complete operating system, in fact.
  10424.  
  10425. And still is.  Although cheap Unix boxes are making it less common.
  10426.  
  10427. >They eventually saw
  10428. >which way the wind was blowing and did a port to the Unix environment.
  10429.  
  10430. After noting lost sales to compeditors.
  10431.  
  10432. Disclaimer: I work for a company that sells a utility for building
  10433. data entry screens for three of the four above mentioned Pick-based
  10434. eviornments, and sells one of them.  (And even Unix boxes to run it
  10435. on, if you want.)  Call +1(213)743-0091 and ask for someone in sales
  10436. if you are interested.
  10437.  
  10438.  
  10439. Volume-Number: Volume 27, Number 98
  10440.  
  10441. From std-unix-request@uunet.UU.NET  Mon May 18 23:06:56 1992
  10442. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10443.     (5.61/UUNET-mail-drop) id AA16237; Mon, 18 May 92 23:06:56 -0400
  10444. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10445.     (5.61/UUNET-internet-primary) id AA26498; Mon, 18 May 92 23:07:03 -0400
  10446. From: Al Bledsoe <abledsoe@sdf.lonestar.org>
  10447. Newsgroups: comp.std.unix
  10448. Subject: Re: Anyone heard of PICK???
  10449. Organization: sdf Public Access UNIX, Dallas--unrestricted free shell access
  10450. Message-Id: <v8vf6INNn4l@ftp.UU.NET>
  10451. References: <urqvbINNaif@ftp.UU.NET> <v13ajINNr6d@ftp.UU.NET>
  10452. Nntp-Posting-Host: ftp.uu.net
  10453. X-Submissions: std-unix@uunet.uu.net
  10454. Date: 18 May 1992 12:10:30 -0700
  10455. Reply-To: std-unix@uunet.uu.net
  10456. To: std-unix@uunet.UU.NET
  10457. Sender: Network News <news@kithrup.com>
  10458. Source-Info:  From (or Sender) name not authenticated.
  10459.  
  10460. Submitted-by: abledsoe@sdf.lonestar.org (Al Bledsoe)
  10461.  
  10462. >>I know there are books about PICK, but can anyone provide me with some
  10463. >>on-line sources of information, etc. --- such as anonymous-ftp
  10464. >
  10465. >It used to be a complete operating system, in fact.  They eventually saw
  10466.  
  10467. PICK has been ported to UNIX for awhile now.  UniVerse by Vmark and
  10468. Unidata are serious implementations.  It is a DBMS that is relational
  10469. but not Codd relational.  Read BYTE of May 1992, "Two Steps Forward
  10470. and One Step Back".  PICK is similar to MUMPS in that it has existed in
  10471. vertical niche markets.  But even though PICK is not ANSI like MUMPS
  10472. the InfoBASIC language and file structure make it quite a serious
  10473. contender in real world development cycles.  Unidata provides a SQL
  10474. frontend and UniVerse's release 7 will have SQL.  I'm from a MUMPS
  10475. background doing migration from PICK to Informix.  The transactional
  10476. section of the package will be left in PICK and the analytical in
  10477. Informix Wingz.
  10478.  
  10479. PICK and MUMPS kick RDBMS's to pieces in performance,  with SQL their
  10480. once closed nature will be open,  shoot,  running on most open
  10481. systems now, without SQL maybe they're open already... read the BYTE
  10482. article.
  10483. ---
  10484. abledsoe@sdf.lonestar.org
  10485.  
  10486. Volume-Number: Volume 27, Number 99
  10487.  
  10488. From std-unix-request@uunet.UU.NET  Mon May 18 23:07:02 1992
  10489. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10490.     (5.61/UUNET-mail-drop) id AA16245; Mon, 18 May 92 23:07:02 -0400
  10491. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10492.     (5.61/UUNET-internet-primary) id AA26536; Mon, 18 May 92 23:07:09 -0400
  10493. From: David A Willcox <willcox@urbana.mcd.mot.com>
  10494. Newsgroups: comp.std.unix
  10495. Subject: Re: Feature Test macros for POSIX
  10496. Message-Id: <v8vg1INNn64@ftp.UU.NET>
  10497. Article-I.D.: ftp.v8vg1INNn64
  10498. References: <uugn6INN4k6@ftp.UU.NET> <v139nINNr4n@ftp.UU.NET>
  10499. Organization: Motorola Computer Group, Urbana Design Center
  10500. Nntp-Posting-Host: ftp.uu.net
  10501. X-Submissions: std-unix@uunet.uu.net
  10502. Date: 18 May 92 19:10:57 GMT
  10503. Reply-To: std-unix@uunet.uu.net
  10504. To: std-unix@uunet.UU.NET
  10505. Sender: Network News <news@kithrup.com>
  10506. Source-Info:  From (or Sender) name not authenticated.
  10507.  
  10508. Submitted-by: willcox@urbana.mcd.mot.com (David A Willcox)
  10509.  
  10510. willcox@urbana.mcd.mot.com (David A Willcox) writes:
  10511.  
  10512. Just to keep the record straight...
  10513.  
  10514. >                                         ...  POSIX.2 Annex B,
  10515. >POSIX.4, POSIX.4a, POSIX.1a, plus several others, are revisions of
  10516. >POSIX.1 describing optional features.  Ultimately, they are all
  10517. >considered part of one ISO standard, 9945-1.  ...
  10518.  
  10519. POSIX.2, Annex B, though it does contain C functions, is not currently
  10520. part of 9945-1, but rather 9945-2.  However, there is a proposal on
  10521. the floor to move that part of POSIX.2 into POSIX.1 and POSIX.16.
  10522. (The C interfaces would go into POSIX.16.  The not-yet-written 
  10523. language-independent versions would go into POSIX.1.)  As I understand
  10524. it (don't take my word for this), those C functions would then become
  10525. part of 9945-1.
  10526.  
  10527.  
  10528. Volume-Number: Volume 27, Number 100
  10529.  
  10530. From std-unix-request@uunet.UU.NET  Mon May 18 23:07:08 1992
  10531. Received: from relay2.UU.NET by rodan.UU.NET with SMTP 
  10532.     (5.61/UUNET-mail-drop) id AA16252; Mon, 18 May 92 23:07:08 -0400
  10533. Received: from kithrup.COM by relay2.UU.NET with SMTP 
  10534.     (5.61/UUNET-internet-primary) id AA26550; Mon, 18 May 92 23:07:16 -0400
  10535. From: Doug Gwyn <gwyn@smoke.brl.mil>
  10536. Newsgroups: comp.std.unix
  10537. Subject: Re: Feature Test macros for POSIX
  10538. Message-Id: <v8vhlINNn7h@ftp.UU.NET>
  10539. Article-I.D.: ftp.v8vhlINNn7h
  10540. References: <uugn6INN4k6@ftp.UU.NET> <v139nINNr4n@ftp.UU.NET>
  10541. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  10542. Nntp-Posting-Host: ftp.uu.net
  10543. X-Submissions: std-unix@uunet.uu.net
  10544. Date: 18 May 92 19:11:49 GMT
  10545. Reply-To: std-unix@uunet.uu.net
  10546. To: std-unix@uunet.UU.NET
  10547. Sender: Network News <news@kithrup.com>
  10548. Source-Info:  From (or Sender) name not authenticated.
  10549.  
  10550. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  10551.  
  10552. In article <v139nINNr4n@ftp.UU.NET> willcox@urbana.mcd.mot.com (David A Willcox) writes:
  10553. >OK, here's the the way it works.  An ANSI C compiler is not allowed to
  10554. >make symbols visible to an application beyond what's defined in ANSI
  10555. >C, unless the application does something explicit to make those
  10556. >symbols available.  The application does this by defining one or more
  10557. >feature test macros before including any headers.
  10558.  
  10559. More accurately:  In order to conform to the C standard, a C implementation
  10560. must, among other requirements, accept any strictly conforming C program.
  10561. A strictly conforming C program must, among other requirements, not use
  10562. certain classes of identifiers in contexts where they have been reserved
  10563. for use by C implementations.  And a conforming C implementation must not
  10564. define any identifiers in the standard headers other than those specified
  10565. in the standard plus those reserved for implementations.  (Reserved
  10566. identifiers mostly begin with underscore; see the C standard for details.)
  10567.  
  10568. There are no requirements on any headers other than those specified in the
  10569. standard; thus additional facilities can AND SHOULD be defined by separate
  10570. headers, not through modifications to the standard headers.  This is
  10571. especially important when the standard C implementation is provided by
  10572. one source of supply but the additional functionality is provided by a
  10573. different source of supply, as frequently ocurs in this industry.
  10574.  
  10575. The only reason there was any need for "feature flags" in the first place
  10576. was the historical accident that some of the standard headers (notably
  10577. <stdio.h>) included interface definitions for UNIX-specific facilities AND
  10578. general portably-available facilities.  The C standard does not single out
  10579. the UNIX environment for an exception, but rather prohibits pollution of
  10580. the identifier name spaces by ANY conforming implementation.  Thus, for
  10581. <stdio.h> and a few other standard headers, a conforming C implementation
  10582. can make additional non-reserved symbols (such as "popen") visible ONLY to
  10583. programs that are NOT strictly conforming.  The method chosen by 1003.1 for
  10584. this was for the program to somehow #define _POSIX_SOURCE before including
  10585. the relevant standard header.  This allows the implementation to key on
  10586. that symbol to "turn on" additional symbols in the standard header, without
  10587. those symbols being visible in the absence of such a feature flag.
  10588.  
  10589. As the last acting liaison between X3J11 and P1003, I was heavily involved
  10590. in getting this issue resolved.  1003.1 did not quite follow X3J11's
  10591. recommendations, apparently adopting a different view of feature flags,
  10592. and from what David has said I gather that the repeated message from X3J11
  10593. to 1003 to not further pollute the standard headers has gotten lost.
  10594.  
  10595. For NEW facilities (i.e. not those inherited from historic implementations
  10596. of UNIX), use new, distinct headers for defining new interfaces; don't add
  10597. new symbols (whether or not under control of feature flags) to standard C
  10598. headers.  Please!
  10599.  
  10600.  
  10601. Volume-Number: Volume 27, Number 101
  10602.  
  10603.