Thread View: comp.std.unix
6 messages
6 total messages
Started by Peter Collinson
Wed, 09 Sep 1992 21:32
Report on POSIX.2: Shell and Utilities
Author: Peter Collinson
Date: Wed, 09 Sep 1992 21:32
Date: Wed, 09 Sep 1992 21:32
155 lines
7772 bytes
7772 bytes
Submitted-by: pc@hillside.co.uk (Peter Collinson)
USENIX Standards Watchdog Committee
Stephen Walli <stephe@usenix.org>, Report Editor
Report on POSIX.2: Shell and Utilities
David Rowley <david@mks.com> reports on the July 13-17 meeting in
Chicago, IL:
Summary
September the 16th, 1992 -- that's the date people have been waiting
for since the POSIX.2 working group was formed more than five years
ago. It's the date the IEEE Standards Board is due to approve P1003.2
as an IEEE Full Use Standard. The standard includes both the ``Dot 2
Classic'' and ``Dot 2a'' components, previously balloted as separate
standards. The IEEE Standard (based on the new Draft 12) is identical
(at least from a technical standpoint) to ISO/IEC Draft International
Standard 9945-2:1992.
NIST continues to work on a new FIPS (Federal Information Processing
Standard) for POSIX.2, expected in draft form by early Fall 1992.
POSIX.2b work is progressing well, incorporating symbolic link support
within a number of utilities, a new PAX archive format, and addresses
a number of international concerns regarding locales.
Test assertion work continues. The POSIX.2 assertions have almost
full coverage, and will go to ballot soon, perhaps as early as
October. The POSIX.2a test assertion work is going well, though
assertions for vi have not yet been attempted.
There is talk that the test assertion work will be renamed P2003.2
instead of the current P1003.3.2.
Background
A brief POSIX.2 project description:
- The base utilities of the POSIX.2 standard deal with the basic
shell programming language and a set of utilities required for
the portability of shell scripts. It excludes most features that
might be considered interactive. POSIX.2 also standardizes
command-line and function interfaces related to certain POSIX.2
utilities (e.g., popen(), regular expressions,
etc.). This part of POSIX.2, which was developed first,
is sometimes known as ``Dot 2 Classic.''
- the User Portability Utilities Option or UPUO, is an option in
the base standard (previously known as POSIX.2a). It
standardizes commands, such as vi, that might not appear in shell
scripts, but are important enough that users must learn them on
any real system.
Some utilities have both interactive and non- interactive
features. In such cases, the UPUO defines extensions from the
base POSIX.2 utility. Features used both interactively and in
scripts tend to be defined in the base utility.
- POSIX.2b is a newly approved project which covers extensions and
new requests from other groups, such as a new file format for PAX
and extensions for symbolic links. It also includes resolution
of items arising from comments by ISO Working Group 15.
POSIX.2 is equivalent to the International Standards Organization's
ISO DIS 9945-2 -- the second volume of the proposed ISO three-volume
POSIX standard.
POSIX.2 Status
The ISO Draft International Standard 9945-2 that was approved at the
May meeting of Working Group 15 is due to be approved at the IEEE on
September 16th. There are no apparent road-blocks to the IEEE
Standards Board approving the standard, but of course there are very
few sure things in life.
POSIX.2 Draft 12 comprises the standard set of utilities (``Dot 2
Classic'') and now includes the User Portability Utilities Option
(previously ``Dot 2a, User Portability Extensions''). Hal Jespersen
has done a fine job integrating the two separately balloted standards
into one epic tree-killing tome, coordinating it with the ISO 9945-
2:1992 Draft International Standard, POSIX.2's ISO equivalent. The
implementors of the world owe Hal a debt of thanks for ensuring the
ISO and IEEE standards can be technically identical.
FIPS and Certification
NIST continues to work towards a new FIPS (Federal Information
Processing Standard) for POSIX.2. Verifiable conformance to the
standard is now the critical issue. Fortunately, it seems as though
good progress is being made within the standards industry on coming up
with a well- endorsed solution. X/Open has issued an RFQ (Request for
Quotation) for an Integrator to put together a joint POSIX.2 and XPG4
Commands and Utilities verification suite. This work points towards
there being a single validation suite for both the POSIX.2 and XPG4
implementations of the shell and utilities, again making life much
easier for implementors and users alike. The XPG4 commands and
utilities specification comprises a superset of the POSIX.2
utilities. The X/Open suite will allow verification of both the XPG4
superset, as well as the POSIX.2 subset.
NIST will likely point to this suite, once in place, as the yardstick
for gauging conformance to the POSIX.2 FIPS.
The suite will likely be finished towards the end of 1993.
PAX File Format
The group continued to define the new PAX file format, but are now
intent in verifying the sanity of using the ISO 1001 tape format as a
base format. A posting to ``comp.std.unix'' requested feedback and
input as to the appropriateness of ISO 1001, along with a request for
alternate proposals. The proposals will be discussed at the Utrecht
meeting in October.
The group also modified the proposal for codeset representation of
filenames, user names, etc. contained in the archive. The format that
will be used is now specified as UTF (UCS Transformation Format). A
slight problem with this exists because the UTF description is
contained in Annex F of the ISO 10646 Unicode standard, and is only
informative rather than normative. The group is therefore (a little)
hesitant to point to it, but feels the space savings and the inherent
seamless ability to upgrade to the full 32-bit codeset (UCS4)
overcomes these objections.
Working Group 15 Requirements
The group also examined the Working Group 15 (ISO) requirements for
the next revision, as outlined in Annex H of the ISO Draft
International Standard 9945-2:1992. Most of the issues centered
around the definition of locales, specifically codeset issues. A
number of specific proposals are pending from the ISO member bodies,
including something similar to trigraphs for the sh, awk, etc.,
extensions to locale character class definitions, re-incorporation of
the substitute facility, relaxing of the restriction on NUL collating
lower than all other characters, support for state-dependent
characters sets (such as shift encoding), and a general character
translation utility (perhaps X/Open's iconv).
These issues will be discussed further at the Utrecht meeting on
October 22nd, 23rd (just before the next WG15 meeting).
Test Methods
POSIX.3.2 Test Method work is progressing well, with almost all of the
assertions corresponding to the current draft of POSIX.2. The group
expects to go to ballot sometime around October.
Work on the UPUO test methods also progressed, with only a few gaps
remaining. The daunting vi command still strikes fear in some that
would approach it, and has not yet been addressed. This will be
worked on at the Utrecht meeting.
Volume-Number: Volume 29, Number 24
Re: Report on POSIX.2: Shell and Utilities
Author: Henry Spencer
Date: Sun, 13 Sep 1992 00:38
Date: Sun, 13 Sep 1992 00:38
61 lines
3908 bytes
3908 bytes
Submitted-by: henry@zoo.toronto.edu (Henry Spencer) >Submitted-by: pc@hillside.co.uk (Peter Collinson) >September the 16th, 1992... the IEEE Standards Board is due to approve P1003.2 >as an IEEE Full Use Standard... Which is a pity, unfortunately, because despite all the delays, if ever a standard deserved to spend some time at the intermediate stage of Trial Use Standard, it's this one... The fundamental problem is that most of 1003.2 has never been implemented *from scratch* by people working only from the spec. The folks who claim to have implemented it have been hacking existing implementations to fix what they think are the differences between their code and the standard. They've missed all the interesting little places where the behavior called for by 1003.2 is subtly different from what the existing code does, or isn't even sufficiently well-defined to determine whether the existing code meets it. I've been only lightly involved with 1003.2, but in the three areas where I have paid careful attention -- regular expressions, awk, and grep -- we *know* there are still bugs in 1003.2. Not big ones, but not entirely trivial either. The scary part is that both 1003.2 regular expressions and 1003.2 awk were considerably improved at the eleventh hour because I actually *tried* from-scratch implementations (although only a partial one in the case of awk), and the lengthy 1003.2-bug lists that resulted arrived (just) in time to get things fixed. Unfortunately, I and others have found more since, and it's too late. Understand: this is not the result of gross negligence. I reviewed several of the earlier regular-expression drafts; I *thought* they looked fine. As did other competent people. Similarly, the awk draft looked fine to me -- and to people who have implemented awk -- until I actually tried to write a parser from it, at which point I noticed that (for example) nobody had ever specified the precedence of the "|" operator... It's too late to do anything about 1003.2, I'm afraid, except to push for a revised version soon (but not instantly -- we desperately need some more implementation experience first), and meanwhile be aware that the standard is seriously flawed and *is* likely to get revised. But I'm deeply concerned about the wider implications. There isn't much wrong with 1003.1, but it sure looks to me like that happy state of affairs isn't going to be repeated for the later POSIX standards, especially the big and complex ones like 1003.2. What can be done? Just getting more people involved is *not* the answer, although it can't hurt and might help a little. In the three areas I mentioned above, the specs were already being reviewed by some of the Unix community's top experts in the topics, including major implementors. You just canNOT find these problems without writing code from the spec. Nothing else works. We need to find some way to encourage more early implementations (from scratch, not as modifications of existing ones, so the specification problems get faced squarely), and preferably some way to keep the standards from getting cast in concrete until at least the early returns are in. -- There is nothing wrong with making | Henry Spencer @ U of Toronto Zoology mistakes, but... make *new* ones. -D.Sim| henry@zoo.toronto.edu utzoo!henry Volume-Number: Volume 29, Number 33
Re: Report on POSIX.2: Shell and Utilities
Author: D. J. Bernstein
Date: Sun, 13 Sep 1992 23:51
Date: Sun, 13 Sep 1992 23:51
30 lines
1874 bytes
1874 bytes
Submitted-by: brnstnd@KRAMDEN.ACF.NYU.EDU (D. J. Bernstein) Henry Spencer writes: > You just canNOT find these problems without writing code from the spec. > Nothing else works. Seems about time to repeat this: What makes standard-writing so attractive is that it strokes your ego. You get to write down your musings about how the world should work, and boom! Everyone does what you say. You don't have to waste time actually *implementing* your ideas, or working out the problems, or competing with people who were foolish enough to try their non-POSIX-approved products on the market. You've got an _ego standard_. This psychological explanation may sound a bit nasty, but it explains a lot. It explains why POSIX members react emotionally to any hint that their standards don't reflect the real world or are technically inferior. It explains why no POSIX ``standard'' describes the state of any actual system at the time of standardization. It explains why POSIX people are so incredibly enthusiastic about writing standards, when in the real world writing a standard means drudging through existing documentation and rehashing it in the dullest possible language. I wish POSIX would stop shooting off into the cosmos, come back to earth, and spend some time documenting what UNIX systems actually *do*. ---Dan Volume-Number: Volume 29, Number 34
Re: Report on POSIX.2: Shell and Utilities
Author: Scott E. Preece
Date: Mon, 14 Sep 1992 18:55
Date: Mon, 14 Sep 1992 18:55
25 lines
1777 bytes
1777 bytes
Submitted-by: preece@urbana.mcd.mot.com (Scott E. Preece) In article <190k6vINN5g9@ftp.UU.NET> brnstnd@KRAMDEN.ACF.NYU.EDU (D. J. Bernstein) writes: > I wish POSIX would stop shooting off into the cosmos, come back to > earth, and spend some time documenting what UNIX systems actually *do*. Funny, the POSIX meetings I've been to have tended to involve a lot of discussion of existing practice and a lot of drudging through existing documentation and rehashing it in the dullest possible language. What that drudging has generally led to is a realization that none of the existing documentation specifies *anything* completely enough and that every vendor's UNIX system is different. So you have to write a standard that specifies things nobody specified before and you have to try to merge different versions of the same functionality. And if you're a responsible engineer, you have to resist standardizing bad practice just because it is existing practice. scott -- scott preece motorola/mcg urbana design center 1101 e. university, urbana, il 61801 uucp: uunet!uiucuxc!udc!preece, arpa: preece@urbana.mcd.mot.com phone: 217-384-8589 fax: 217-384-8550 Volume-Number: Volume 29, Number 35
Re: Report on POSIX.2: Shell and Utilities
Author: Michael John Haertel
Date: Mon, 14 Sep 1992 23:24
Date: Mon, 14 Sep 1992 23:24
28 lines
1926 bytes
1926 bytes
Submitted-by: mike@getafix.cs.uoregon.edu (Michael John Haertel) In article <192n6aINNlt2@ftp.UU.NET> preece@urbana.mcd.mot.com (Scott E. Preece) writes: >And if >you're a responsible engineer, you have to resist standardizing bad >practice just because it is existing practice. The problem is that often one person's bad practice is another's holy grail. Certainly, we can all agree that some things are bad practice. But there are also many more things that lots of people still don't agree on. For example, I happen to think that Berkeley's socket interface is a terrible way to do networks. I know lots of people who agree with me. But I also know lots of people who disagree, often quite vehemently. So where do you draw the line between resisting the standardization of bad practice, and gratuitously standardizing some committee member's notion of the One True Way (existing implementations be damned)? Existing systems all have their flaws, but at least we know what they are. Any new invention, by a standardization commitee or anyone else, will inevitably include new flaws. I feel the scope of standards should be restricted to what's well-understood. Introducing new flaws that are not well understood to a standard that is to be carved in stone is not a Good Idea. Volume-Number: Volume 29, Number 36
Re: Report on POSIX.2: Shell and Utilities
Author: D. J. Bernstein
Date: Tue, 15 Sep 1992 05:30
Date: Tue, 15 Sep 1992 05:30
29 lines
1953 bytes
1953 bytes
Submitted-by: brnstnd@KRAMDEN.ACF.NYU.EDU (D. J. Bernstein) Scott E. Preece writes: > So you have to write a > standard that specifies things nobody specified before and you have to > try to merge different versions of the same functionality. Ah, but you never _have_ to write a standard. You see that systems vary widely in, e.g., the output format of ``who'', and even the type of information stored in /etc/utmp (or whatever file ``who'' reads). Does this mean you have to apply your imagination, specify what the market hasn't specified, merge what the market hasn't merged? No. It's a very strong signal that standardization is premature. You shouldn't standardize ``who'' at all. Wait for market convergence. You see that the market has come to agree on what you are sure is bad practice. Does this mean you have to resist documenting that practice in a standard? No. It means that your conceptions of what's good and bad are out of sync with the market. Your responsibility as standards-writer is to document what's being done, not to dream up new solutions. ``Only those who code have the right to dream.'' If you can identify a technical flaw in the bad practice, go ahead and document that! If you're sure that you can make a better solution, try it on the market! ---Dan, still wondering why POSIX [:digit:] is better than Perl \d Volume-Number: Volume 29, Number 37
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads