home *** CD-ROM | disk | FTP | other *** search
- Submitted-by: jason@cnd.hp.com (Jason Zions)
-
- Doug Gwyn said:
-
- >No, what I was really
- >complaining about is the large amount of committee invention in 1003.2,
- >especially such atrocities as "c89", the regular expression mess, and a
- >rash of commands and options not previously implemented in ANY version of
- >UNIX.
-
- In another message, someone else had pleaded that POSIX standardizers get
- their head out of the clouds and actually standardize what had already been
- implemented. (I'll ignore the implied insult that most POSIX writers are not
- in fact implementors; direct contradiction with reality.)
-
- The "c89 atrocity" to which Doug refers is a perfect example of the kind of
- invention made *necessary* by *existing implementations*.
-
- The typical C compiler has between 30 and 60 options, using most of the
- lower- and upper-case letters. If one were to take the union of all features
- provided by the top 5 non-commonly-derived implementations, one might find
- around 60 unique options implemented by two or more of those five; if one
- were to be selective and try to identify the options which represent the
- concensus of implementations, one might find, oh, 40 or so.
-
- Now, suppose vendor A has implemented one of those options, and it is
- invoked by using the -P option. Similarly, vendor B's compiler implements
- the same option, but used -S for it, and put another of the 40-odd concensus
- options on -P. Tell me, which option should the standard "cc" turn on when
- the -P option is used? The one vendor A put there, or the one vendor B put
- there? Either way, shell scripts already existing on machines built by A or
- B will suddenly, and silently, stop working correctly. There's no way for a
- vendor to offer a graceful cut-over period; when a user rolls to the
- 1003.2-conforming release, all those makefiles and shell scripts which
- invoke cc with the changed options will break.
-
- The "c89" solution, ugly as it may be, offers vendors, and users, an
- opportunity to gracefully shift over to the new, standard, option set. A
- vendor will continue to provide the same "cc" driver they provide today,
- with the same non-standardized set of options. At the same time, the vendor
- would also provide a "c89" driver which understood the new, standard, option
- set. Makefiles and shell scripts could be converted at leisure, and
- converted and unconverted scripts could coexist on the same system. Two or
- three releases into the future, a vendor could obsolete the old option set
- for "cc" and make that command a synonym for c89, if they so chose.
-
- At the same time, the c89 option space is cleaned up and more rigorously
- controlled; this means that new standard options can be added in the future
- without needing to go through this mess again.
-
- The only thing which is perhaps atrocious about "c89" is the name itself. It
- had to be different from "cc"; what would you have chosen?
-
- As regards the "commands and options not previously implemented", many of
- them are directly implied by the stuff in 1003.1 (the pathconf-related shell
- commands come to mind). If those kinds of changes were important enough to
- application portability to be put in 1003.1, why would similar changes not
- be needed to help ensure script portability?
-
- The "regular expression mess" was similar to the c89 problem, but worse;
- they couldn't change the command names to separate the regexp letter names.
- More than that, regexp's as usually implemented were hopelessly
- ethnocentric; changing languages was impossible. All POSIX standards have an
- *explicit* goal of being International (ISO) standards; non-English support
- is *required* to meet that goal, as ISO JTC1/SC22/WG15 has made abundantly
- clear. Given the fact that the union of common implementations resulted in
- most of the useable characters being given conflicting meanings, and that a
- "good" standard causes equal pain for everyone instead of favoring one of
- the implementations over others, how would *you* have resolved it?
-
- Doug, you mentioned your original proposal to 1003.2 all those years ago.
- How did that proposal address overlap of options in the most common
- implementations, hopeless English-centrism, and the like?
-
- Jason Zions
-
- Volume-Number: Volume 26, Number 4
-
-