Document Number: AUSTIN/9r5 Title: Action item 9809-04 Revision Date: 2000-05-22 Original Date: 1998-09-11 Source: Andrew Josey, Chair Action: for information Long Description of the Proposed Common Standards Revision Project SUMMARY ------- This document describes the proposed project to produce a common standard to revise ISO/IEC 9945-1, ISO/IEC 9945-2, IEEE Std 1003.1, IEEE Std 1003.2, and the appropriate parts of The Open Group Single UNIX Specification. It describes the Base Documents for consideration in the revision, the criteria for inclusion and exclusion of material, the expected deliverables and outline structure of the project and requirements for the project. The approach to specification development is "write once, adopt everywhere", with the deliverables being a set of specifications that will carry both the IEEE POSIX designation and The Open Group's CAE Specification designation, and if adopted an ISO/IEC designation. BASE DOCUMENTS -------------- The following are the base documents for the revision: IEEE Std 1003.1, 1996 Edition (incorporating ANSI/IEEE Stds 1003.1-1990, 1003.1b-1993, 1003.1c-1995, and 1003.1i-1995) ISBN 1-55937-573-6 The following amendments to IEEE Std 1003.1-1990: | P1003.1a, P1003.1d (Additional Realtime Extensions), | P1003.1g (Protocol Independent Interfaces), | P1003.1j (Advanced Realtime Extensions), and P1003.1q (Trace) | IEEE Std 1003.2-1992 (includes IEEE Std 1003.2a-1992) ISBN 1-55937-255-9 The following amendments to IEEE Std 1003.2-1992: | IEEE Std 1003.2d-1994 , P1003.2b | System Interface Definitions, Issue 5, (XBD5) The Open Group ISBN 1-85912-186-1 February 1997 System Interfaces and Headers, Issue 5 - Two Volumes, (XSH5) The Open Group ISBN 1-85912-181-0 February 1997 Commands and Utilities, Issue 5, (XCU5) The Open Group ISBN 1-85912-191-8 February 1997 Networking Services, Issue 5.2 , (XNS5.2) | The Open Group | ISBN 1-85912-241-8 January 2000 | ISO/IEC 9899:1999 Programming Languages -- C. | SCOPE ----- The three "Base volumes" of the Single UNIX Specification, Version 2 (XBD5, XSH5, XCU5) are supersets of the functionality contained in the existing published IEEE standards (1003.1-1996 and 1003.2-1992), this project proposes to use them as the basis for the revision, to merge | functionality from XNS5.2 and to add additional parts of the POSIX | functionality to them. | The additional functionality from the POSIX standards to be merged with the Base volumes is as follows: Normative text not included in the Base volumes. The amendments to IEEE Stds 1003.1-1990 and 1003.2-1992 listed above except for parts of IEEE Std 1003.1g-2000. Portability Considerations (Annex F of .1-1996, .2-1992) Additional rationale and notes ( Annex B of 1003.1-1996, Annex E of 1003.2-1992). The following features will not be carried forward into the amendment, features marked Legacy or obsolescent in the Base volumes, and those marked obsolescent in POSIX. From XSH this means the following Legacy Interfaces, Headers and External Variables will not be carried forward: advance() gamma() putw() sbrk() wait3() brk() getdtablesize() re_comp() sigstack() chroot() getpagesize() re_exec() step() compile() getpass() getw() regcmp() ttyslot() cuserid() regex() valloc() loc1 __loc1 loc2 locs From XCU thus means the following Legacy Utilities will not be carried forward: calendar cancel cc dis egrep fgrep mail pack pcat unpack uulog col cpio cu dircmp line lint lpstat pg spell sum uuname uupick tar uuto In addition Legacy features within non-legacy manual pages (for example headers) will not be carried forward. POSIX.1-1996 obsolescent features to be removed are: p 112 CLK_TCK p 197 tcgetattr() - rate returned option In POSIX.2 obsolescent features to be removed are: p 75 zero-length prefix within PATH p 156,159 set synopsis etc p 178 awk - use of no argument and no parentheses with length p 259 ed synopsis etc * p 272 env synopsis etc p 282 find -perm [-]onum p 295-296 egrep synopsis etc p 299-300 head synopsis etc p 305-306 join synopsis etc p 309-310 kill synopsis etc p 431-433,435-436 sort synopsis etc p 444-445 tail synopses etc p 453,455-456 touch synopsis etc p 464-465 tty synopsis etc p 472 uniq synopsis section * p 515-516 ex synopsis etc p 542-543 expand synopsis etc p 563-565 more synopsis etc p 574-576 newgrp synopsis etc p 578 nice synopsis etc p 594-596 renice synopsis etc p 597-598 split synopsis etc p 600-601 strings synopsis etc p 624-625 vi synopsis etc p 693 lex synopsis etc In XSH, text marked OH needs to be reviewed on a case by case basis. The XCU text marked OF, OP, PI, and UN will need to be reviewed on a case by case basis. For the networking interfaces the base document will be XNS5.2. | The following parts of XNS5.2 will be omitted | Part 3: XTI (this is now marked as deprecated) | Part 4: Appendices (these relate to use of XTI over various | transports, and also ATM which is outside the scope | of this project). | Since there is much duplication between XNS5.2 and 1003.1g, material | only from the following sections of 1003.1g will be considered for | merging: | General Terms related to sockets (clause 2.2.2) | Socket concepts (clauses 5.1 through 5.3 inclusive) | The pselect() function (clause 6.2.2.1, 6.2.3) | The isfdtype() function (clause 5.4.8) | The header (clause 6.2) | Interpretations Issues raised by IEEE or ISO/IEC Interpretations against IEEE Std 1003.1 and IEEE Std 1003.2 will be addressed in the revision. Issues raised in corrigenda for the Base volumes and working group resolutions from OGTGbase (the group responsible for the Base volumes) will be addressed in the revision. Corrigenda and resolutions passed by OGTGnet (the group responsible for XNS) will be addressed in the revision. Consistency | Changes to the standard will be made to make it self-consistent with the | material merged. | Options. The revision will consider the options within the standard, and whether its possible to reduce the number of them. It will also include an examination of the possibility of adding overriding options (feature groups in the existing XSH) that combine a set of finer grained options or related functionality. Functional extensions from XSH/XCU over POSIX will be added as one or more options, for example there could be a STREAMS option and a System V IPC option. This allows standards building on the Common Standard to mandate the options, one such example would be the UNIX specification. Terminology The agreed terminology style is to use ISO/IEC style for the revision ("shall" rather than "will"). This will require some changes to the Base volumes that are the basis for the revision, and The Open Group has produced a discussion paper on proposed terminology style. Slicing and Dicing as per 1003.13 A set of profiling option groups will be introduced to facilitate | profiles such as in IEEE Std 1003.13 (based on PASC SEC N754). | EXPECTED OUTPUT --------------- The expected output of the project is four logical books: System Interface Definitions System Interfaces Shell & Utilities | Rationale (Informative) | * Base Definitions: This book is organised in chapters as follows: Introduction (including scope,normative references) | Conformance | Definitions | General Concepts | File Format Notation Character Set Locale Environment Variables Regular Expressions Directory Structure and Devices General Terminal Interface Utility Conventions Headers | The Headers chapter is organized alphabetically. | There is currently no POSIX book corresponding to this book. The existing base document XBD5 contains major parts of POSIX.1 Section 2 (Terminology and General Requirements), POSIX.2 Section 2 (Terminology and General Requirements), and extended definitions common to XCU5, and XSH5. The presence of this book reduces duplication in the other volumes and ensures consistency of use of terminology. Where terminology and definitions common to both the System Interfaces and Commands & Utilities books occurs then additions will be made to this book. The definitions from XNS5.2/1003.1g will be merged into this book. | * System Interfaces: This book is similar to POSIX.1-1996 except that after it is organised as follows: Chapter 1 Introduction Chapter 2 General Information Chapter 3 System Interfaces Chapter 3 is organized alphabetically. The existing Base document contains all the normative part of POSIX.1-1996 except for: -1. major chunks of Section 2 (Terminology and General Requirements) [which are included in the Base Definitions], -2. Section 10 (Data Interchange Format) archive format header block descriptions associated with the cpio, pax, and tar utilities [which are included in Commands & Utilities], -3. Annex B (Rationale and Notes) [although some of this is included in Examples and Application Usage sections], -4. Annex D (Profiles), -5. Annex E (Sample National Profile), -6. Annex F (Portability Considerations), -7. Annex G (Performance Metrics), and -8. Annex H (Realtime Files). This project proposes to add 3 and 6 to the resulting document. The system interfaces from XNS5.2/1003.1g will be merged into this book. | * Commands & Utilities: This book is similar to POSIX.2 combined with POSIX.2a, except that it is organized as follows: Chapter 1 Introduction Chapter 2 Shell Command Language Chapter 3 Batch Environment Services | Chapter 4 Utilities Chapter 4 is organized alphabetically. The existing Base document contains all of POSIX.2 and POSIX.2a except: -1. major chunks of Section 2 (Terminology and General Requirements) [which are included in the Base definitions], -2. Section 7 (Language Independent System Services) and Annex B (C-Language Bindings Option) [which are included in the System Interfaces book], -3. Annex E (Rationale and Notes) [although some of of this is included in Application Usage and Examples sections], -4. Annex F (Portability Considerations), -5. Annex G (Sample National Profile), and -6. Annex H (Proposals for Future Revisions). This project proposes to add 3 and 4 to the Base document. The existing Base document also contains: +1. POSIX.1 Section 10 (Data Interchange Format) cpio and tar archive format header block descriptions associated with the cpio, pax, and tar utilities, +2. full alignment with ISO C (including Amendment 1), and +3. several extensions (additional utilities and additional options to POSIX utilities). IEEE Std 1003.2d-1994 (Batch Extensions) will be merged into this book. | REQUIREMENTS ------------ The following are requirements on the revision. Backward compatibility. It has been agreed that there should be no breakage of functionality in the existing base documents. This requirement will have to be tempered by any breakage introduced in the ISO/IEC 9899:1999 C Language standard. Architecture and n-bit neutral. The common standard should not make any implicit assumptions about the system architecture or size of data types, for example previously some 32-bit implicit assumptions had crept into the standards. Extensibility. It should be possible to extend the common standard without breaking backward compatibility. For example, the name space should be reserved and structured to avoid duplication of names between the standard and extensions to it.