home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / v21 / 120 < prev    next >
Internet Message Format  |  1990-12-05  |  13KB

  1. From std-unix-request@uunet.uu.net  Thu Sep 20 14:21:46 1990
  2. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  3.     id AA11139; Thu, 20 Sep 90 14:21:46 -0400
  4. Posted-Date: 20 Sep 90 18:01:17 GMT
  5. Received: by cs.utexas.edu (5.64/1.76) 
  6. From: jsh@usenix.org (Jeffrey S. Haemer)
  7. Newsgroups: comp.std.unix
  8. Subject: Standards Update, IEEE 1003.2: Shell and tools
  9. Message-Id: <530@usenix.ORG>
  10. Sender: jsq@usenix.ORG
  11. Reply-To: std-unix@uunet.uu.net
  12. Organization: USENIX Standards Watchdog Committee
  13. X-Submissions: std-unix@uunet.uu.net
  14. Date: 20 Sep 90 18:01:17 GMT
  15. To: std-unix@uunet.uu.net
  16.  
  17. Submitted-by: jsh@usenix.org (Jeffrey S. Haemer)
  18.  
  19.            An Update on UNIX*-Related Standards Activities
  20.  
  21.                             September 1990
  22.  
  23.                  USENIX Standards Watchdog Committee
  24.  
  25.                    Jeffrey S. Haemer, Report Editor
  26.  
  27. IEEE 1003.2: Shell and tools
  28.  
  29. Randall Howard <rand@mks.com> reports on the July 16-20 meeting in
  30. Danvers, MA:
  31.  
  32. Background on POSIX.2
  33.  
  34. The POSIX.2 standard deals with the shell programming language and
  35. utilities.  Currently, it is divided into two components:
  36.  
  37.    + POSIX.2, the base standard, deals with the basic shell
  38.      programming language and a set of utilities required for
  39.      application portability.  Application portability essentially
  40.      means portability of shell scripts and thus excludes most
  41.      features that might be considered interactive.  In an analogy to
  42.      the ANSI C standard, the POSIX.2 shell command language is the
  43.      counterpart to the C programming language, while the utilities
  44.      play, roughly, the role of the C library.  In fact, because
  45.      POSIX.2 provides an interface to most of the features (and
  46.      possibly more) of POSIX.1, it might also be thought of as a
  47.      particular language binding to the soon-to-be language
  48.      independent version of that standard.  POSIX.2 also standardizes
  49.      command-line and function interfaces related to certain POSIX.2
  50.      utilities (e.g., popen(), regular expressions, etc.), as
  51.      discussed in detail in the snitch report for the Snowbird
  52.      meeting.  This part of POSIX.2, which was developed first, is
  53.      also known as ``Dot 2 Classic.''
  54.  
  55.    + POSIX.2a, the User Portability Extension or UPE, is a supplement
  56.      to the base POSIX.2 standard.  Not a stand-alone document, it
  57.      will eventually be an optional chapter and a small number of
  58.      other revisions to a future draft of that base document.  This
  59.      approach allows the adoption of the UPE to trail Dot 2 Classic
  60.      without delaying it.  The UPE standardizes commands, such as vi,
  61.      that might not appear in shell scripts but are important enough
  62.      that users must learn them on any real system.  It is essentially
  63.      an interactive standard that attempts to reduce retraining costs
  64.      caused by system-to-system variation.
  65.  
  66. __________
  67.  
  68.   * UNIXTM is a Registered Trademark of UNIX System Laboratories in
  69.     the United States and other countries.
  70.  
  71. September 1990 Standards Update           IEEE 1003.2: Shell and tools
  72.  
  73.  
  74.                 - 2 -
  75.  
  76.      Some utilities have interactive as well as non-interactive
  77.      features.  In such cases, the UPE defines extensions from the
  78.      base POSIX.2 utility.  An example is the shell, for which the UPE
  79.      defines job control, history, and aliases.  Features used both
  80.      interactively and in scripts tend to be defined in the base
  81.      standard.
  82.  
  83. Together, Dot 2 Classic and the UPE will make up the International
  84. Standards Organization's IS 9945/2 -- the second volume of the
  85. proposed ISO three-volume standard related to POSIX.
  86.  
  87. Status of POSIX.2 Balloting
  88.  
  89. Draft 10 of Dot 2 Classic was sent out during July in a recirculation
  90. ballot.  Recirculation means that objections need only be considered
  91. if they are existing unresolved objections or are based on new
  92. material.  Other objections will be considered at the whim of the
  93. Technical Editor.
  94.  
  95. Draft 10 is an imposing, if not intimidating, 780 pages, made even
  96. denser by the decision to remove much white space in a (vain) attempt
  97. to save paper.  Ballots are due by September 10.  Unfortunately, the
  98. recirculation ballot materials arrived at my organization on August
  99. 17th, giving our group barely three weeks to review this massive
  100. document.
  101.  
  102. The technical editors and others working behind the scenes (Hal
  103. Jespersen, Don Cragun, and others) have done an admirable job of
  104. diff-marking changes and producing personalized lists of unresolved
  105. objections for each balloter.  In addition, all 96 pages of unresolved
  106. objections are provided.  However, the amount of new material that has
  107. never been reviewed and the major reorganization means that Draft 10
  108. bears much less resemblance to Draft 9 than one might hope.  That,
  109. combined with balloting on the UPE, has put many balloters -- myself
  110. included -- in balloting overload.
  111.  
  112. If a recirculation simply means forming opinions on my (and other)
  113. unresolved objections, then the time period is quite reasonable.
  114. However, as I shall describe below, Draft 10 is so changed from the
  115. previous drafts that it deserves to be read practically from cover to
  116. cover, and the recirculation deadline does not provide adequate time
  117. for that task.  The changes fall into a number of categories:
  118.  
  119.    + New Utilities: For example, a superset of the traditional od
  120.      replaced the Draft 9 hexdump which was xd in Draft 8.  Pathchk
  121.      and set -o noclobber have replaced create from Draft 9 and
  122.      validfnam and mktemp from Draft 8.  Such examples demonstrate
  123.      that Draft 10 is not mature and needs more consideration to
  124.      achieve consensus.
  125.  
  126. September 1990 Standards Update           IEEE 1003.2: Shell and tools
  127.  
  128.  
  129.                 - 3 -
  130.  
  131.    + Expanded Material: Previous descriptions of such utilities as
  132.      awk, sh, bc, etc., were neither sufficiently comprehensive nor
  133.      sufficiently complete to be of the quality demanded of a
  134.      standard.  In the latest draft, these descriptions have been
  135.      fleshed out, and include much more detail on operator precedence,
  136.      interactions, subtle semantics, and so on.  This is clearly a
  137.      step in the right direction, but adds to the job of reviewing
  138.      Draft 10.
  139.  
  140.    + Internationalization: While the localedef and locale utilities
  141.      remain, they have changed substantially.  I personally support
  142.      including these features, but am concerned that these are being
  143.      designed during the balloting process which is, if anything,
  144.      worse than design-by-committee.  Overall, balloting-group
  145.      reaction to these utilities ranges from impassioned pleas for
  146.      their removal to requests for greater functionality (complexity)
  147.      to handle ever more arcane aspects of the internationalization
  148.      problem.
  149.  
  150.    + Chapter 2: Chapter 2's front matter is substantially reorganized
  151.      and more voluminous.  This chapter contains definitions, utility
  152.      syntax information, requirements imported from POSIX.1, the
  153.      definition of a locale, description of basic and extended regular
  154.      expressions, etc..  Utility descriptions seem to be getting
  155.      shorter, with more and more pointers to Chapter 2.  This is a
  156.      good trend, as long as balloters adequately consider the
  157.      chapter's technical contents.
  158.  
  159. Status of POSIX.2a Balloting
  160.  
  161. The first formal ballot on POSIX.2a UPE Draft 5 was due in the IEEE
  162. offices by August 16th.  Unfortunately, the UPE is laced with
  163. references to definitions and concepts largely defined in Chapter 2 of
  164. Draft 10.  I did not receive my Draft 10 until after the UPE balloting
  165. was due to be returned.  This hinders any attempt to review these two
  166. documents as a single entity -- which is what they will eventually
  167. become.
  168.  
  169. The UPE is starting to mature: it's converging.  The major controversy
  170. is scope -- as it has been throughout the UPE's entire life.  This
  171. draft aligns itself more closely to Dot-2-Classic in many ways, which
  172. leads me to believe that combined review is essential to its
  173. understanding.
  174.  
  175. A few utilities remain contentious:
  176.  
  177.    + nice, renice: These require underlying functionality absent from
  178.      POSIX.1, although POSIX.4 has setscheduler(), which allows
  179.      applications to set priority and scheduling algorithms.
  180.  
  181. September 1990 Standards Update           IEEE 1003.2: Shell and tools
  182.  
  183.  
  184.                 - 4 -
  185.  
  186.      Some working and balloting group members adamantly resist any
  187.      attempt to add utilities that are not implementable on top of a
  188.      bare POSIX.1.  Others view the UPE as addressing what users type,
  189.      regardless of underlying implementation.  I am in the latter
  190.      camp, not the least because other working groups, such as
  191.      POSIX.4, have not yet standardized a utility interface, leaving a
  192.      void which the much-maligned UPE group is most able to fill.  (It
  193.      is telling that implementing df and ps is impossible using only
  194.      POSIX.1 functions, yet there is little opposition to including
  195.      either utility.
  196.  
  197.    + ps: The description for this utility was an interesting amalgam
  198.      of two incompatible visions of how ps output should be
  199.      formatted -- that in Draft 4 and that in Draft 5.  A correction
  200.      should have been issued during balloting, so that balloters could
  201.      concentrate on the real issues of what should be the scope of the
  202.      ps utility.
  203.  
  204.    + patch: This utility differs from many others; its origins are in
  205.      the public domain rather than in a traditional UNIX variants.  As
  206.      a result, many people feel that patch is worthwhile, but not
  207.      mature enough to standardize.
  208.  
  209.    + lint89: This utility is optional, largely because it is
  210.      controversial for a number of reasons.  Obviously, the very name
  211.      lint89 is painfully bureaucratic.  Furthermore, many feel that
  212.      ANSI C makes it unnecessary; moreover, any remaining required
  213.      functionality rightfully belongs as an additional option in the
  214.      c89 (cc) utility.  Some point to existing practice.  But what is
  215.      existing practice when the utility's name is lint89?  [Editor: On
  216.      the other hand, it may prove indispensable in detecting
  217.      portability problems in lex89- and yacc89-generated code.
  218.      Parenthetically, Draft 10 calls these lex and yacc, but that must
  219.      just be a temporary oversight; the utilities obligatorily have
  220.      ANSI C input and output.  (One assumes we'll escape c89tags
  221.      because ctags can be made to work with both flavors.)]
  222.  
  223.    + compress: The inclusion of this utility remains controversial
  224.      because of the Unisys patent on the particular variable of
  225.      Lempel-Ziv compression used by traditional implementations of
  226.      this utility.  The working group appears to be divided on the
  227.      subject of basing a standard on patented material -- no matter
  228.      what the licensing fees are.  There is, however, general
  229.      agreement that it is preferrable to remove compress entirely
  230.      rather than ``invent'' some new compression algorithm.
  231.      Therefore, it appears that a pax-like compromise, of having a
  232.      single interface to a number of competing formats or algorithms,
  233.      is not widely supported.  [Editor: see Andrew Hume's X3B11 report
  234.      for another wrinkle on data compression.] Clearly, this issue
  235.      will have to be resolved with further information from Unisys
  236.      lawyers during the balloting process.
  237.  
  238. September 1990 Standards Update           IEEE 1003.2: Shell and tools
  239.  
  240.  
  241.                 - 5 -
  242.  
  243. Status of the Danvers Meeting
  244.  
  245. The Danvers working group dealt with neither Dot 2 Classic nor the
  246. UPE.  Instead, at POSIX.3.2's request (that's the subgroup of Dot 3
  247. producing test assertions for Dot 2), we met jointly to co-develop
  248. test assertions for Dot 2 Classic.  This work is a consequence of the
  249. SEC's recent decision requiring each POSIX working group to develop
  250. its own test assertions and ballot them with the standard.  It also
  251. stems from Dot 3's frustration over the (inadequate) way Dot 2
  252. addressed testing.  For example, automated testing of lp, is
  253. impossible; it can only be tested by a human test procedure.  Our
  254. working group should have explored the implications of this before
  255. subjecting POSIX.3 to that task.  (Some utilities can only be tested
  256. manually, but the working group defining that utility should likely
  257. put something to that effect in the Rationale or History of Decisions
  258. Made to confirm to the testing people that they knew this.)
  259.  
  260. The three days of working with Dot 3 were a real learning experience
  261. for our working group.  Nonetheless, many of us had our fill of test
  262. assertions that week.
  263.  
  264. I'm also concerned that a three-day meeting cost my company nearly as
  265. much as a five day meeting would have.  In the future, I would prefer
  266. to see schedules that make productive use of the entire working week.
  267.  
  268. September 1990 Standards Update           IEEE 1003.2: Shell and tools
  269.  
  270. Volume-Number: Volume 21, Number 120
  271.  
  272.