Austin Group Minutes of the 8 Mar 2007 Teleconference Austin-354 Page 1 of 1 Submitted by Andrew Josey, The Open Group. March 9, 2007 Attendees Andrew Josey, The Open Group Geoff Clare, The Open group Nick Stoughton, USENIX, ISO/IEC OR Ulrich Drepper, Red Hat Mark Brown, IBM, TOG OR Apologies Don Cragun , Sun, PASC OR Action item review --------------------- ACTION AI-2005-01-01: Don Cragun to present paper on pathname resolution. OPEN ACTION AI-2006-09-02: Ulrich and Nick to develop a draft PAR and criteria for C++ POSIX binding for discussion, and to produce the Study Group final report by March 31. OPEN Action AI-2006-06-01: Andrew to work out the full set of changes for recirculation for XSH ERN 132 Closing -- Andrew to update based on Geoff's comments. C committee suggest lowercase m, so go with lowercase m ACTION 2007-02-01: Andrew Josey to make a pass through current closed aardvarks against approved std, to move items to SD-5 or interpretations when ready. OPEN ACTION 2007-02-02: Andrew Josey to talk to IEEE and ITTF about the name to use in the text: is POSIX.1:200x satisfactory to all? OPEN , Andrew is going to introduce the matter as part of the ISO project editor report. ACTION 2007-02-03: Nick to work with Cathy and Andrew to address cross reference issues. The document should be built as a single PDF book to aid in the production of cross document references. Mostly done, but some spacing issues remain. ACTION 2007-02-04: Nick to provide Rationale for changes. CLOSED ACTION 2007-02-05: Nick to provide Rationale for changes for fcntl.h XBD ERN 39. CLOSED ACTION 2007-02-06: Ulrich to research issue 15 and propose text for XSH intro to explain directory searching, with special respect to the *at() functions. OPEN (Geoff has posted some mail on this, come back) ACTION 2007-02-07: Nick to improve example for XSH ERN 42 CLOSED ACTION 2007-02-08: Mark Brown to produce sample pages with various ways of presenting c99 information, including synopsis changes, Geoff Clare's proposal, and no change, and to circulate these pages. OPEN ACTION 2007-02-09: ALL review sample c99 pages when available with an audience that includes non standards developers. OPEN (dependent on previous action) ACTION 2007-02-10: Nick Stoughton to develop a comprehensive set of aardvarks to capture all editing instructions relating to fine-grain timestamps by March 31. In progress ACTION 2007-02-11: Cathy to produce an unofficial draft showing examples of how a single pdf would look, including some limited examples of cross volume references. OPEN Aardvark Bug Reports -------------------- We picked up on the aardvark for D2R from the face to face meeting http://www.opengroup.org/austin/docreg.html XBDd2 ERN 82 Accept as marked below We agreed with Geoff's suggestion to merge in the XBDbug2.txt ERN 84 changes into this bug so as to make a single set of edits. At line 12753 change: "The following symbolic names for the values of type mode_t shall also be defined. File type:" to: "The header shall define the following symbolic constants for the file types encoded in type mode_t. The values shall be suitable for use in #if preprocessing directives." Replace lines 12763-12787 with: "The header shall define the following symbolic constants for the file mode bits encoded in type mode_t, with the indicated numeric values. These macros shall expand to an expression which has a type that allows them to be used, either singly or ORed together, as the third argument to open() without the need for a (mode_t) cast. The values shall be suitable for use in #if preprocessing directives. Name Numeric Value Description S_IRWXU 0700 Read, write, execute/search by owner. S_IRUSR 0400 Read permission, owner. S_IWUSR 0200 Write permission, owner. S_IXUSR 0100 Execute/search permission, owner. S_IRWXG 070 Read, write, execute/search by group. S_IRGRP 040 Read permission, group. S_IWGRP 020 Write permission, group. S_IXGRP 010 Execute/search permission, group. S_IRWXO 07 Read, write, execute/search by others. S_IROTH 04 Read permission, others. S_IWOTH 02 Write permission, others. S_IXOTH 01 Execute/search permission, others. S_ISUID 04000 Set-user-ID on execution. S_ISGID 02000 Set-group-ID on execution. [XSI] S_ISVTX 01000 On directories, restricted deletion flag. [/XSI]" Append to RATIONALE, page 368 line 12853: "Some earlier versions of this standard did not specify values for the file mode bit macros. The expectation was that some implementors might choose to use a different encoding for these bits than the traditional one, and that new applications would use symbolic file modes instead of numeric. This version of the standard specifies the traditional encoding, in recognition that nearly 20 years after the first publication of this standard numeric file modes are still in widespread use by application writers, and that all conforming implementations still use the traditional encoding." On page 54 line 1766 change the colon to a comma, i.e.: "3.169 File Mode Bits A file's file permission bits: set-user-ID-on-execution bit (S_ISUID), set-group-ID-on-execution bit (S_ISGID), and, on directories, the restricted deletion flag bit (S_ISVTX)." becomes: "3.169 File Mode Bits A file's file permission bits, set-user-ID-on-execution bit (S_ISUID), set-group-ID-on-execution bit (S_ISGID), and, on directories, the restricted deletion flag bit (S_ISVTX)." XSHd2 ERN 35 fstatat() OPEN We agreed to reoen this item pending Issues List item 15. XSHbug2.txt ERN 132 Accept as marked below We agreed to close this with the suggested updates from Geoff incorporated. In fscanf DESCRIPTION In XSH p444 add after 14628 * An optional assignment-allocation character 'm' Insert after line 14664 before the text "The length modifiers and their meanings are:" [CX] (bullet list item)An optional assignment-allocation character `m`. The %s, %S and %[ conversion specifiers shall accept an optional assignment-allocation character 'm', which shall cause a memory buffer to be allocated to hold the string converted including a terminating null character. In such a case, the argument corresponding to the conversion specifier should be a reference to a pointer variable that will receive a pointer to the allocated buffer. The system shall allocate a buffer as if malloc had been called. The application shall be responsible for freeing the memory after usage. If there is insufficient memory to allocate a buffer, the function shall set errno to [ENOMEM] and a conversion error shall result. In that case any memory successfully allocated for other parameters using assignment-allocation character 'm' by this call shall be freed. [/CX] Add as a new shall fail to the ERRORS section [ENOMEM] Insufficient storage space is available In DESCRIPTION On line 14674 (description of ell). Add to end of para: [CX] If the 'm' assignment-allocation character is specified, the conversion applies to an argument with the type pointer to pointer to wchar_t. [/CX] On lines 14717-14720 Change from: The application shall ensure that the corresponding argument is a pointer to the initial byte of an array of char, signed char, or unsigned char large enough to accept the sequence and a terminating null character code, which shall be added automatically. to: If the 'm' assignment-allocation character is not specified, the application shall ensure that the corresponding argument is a pointer to the initial byte of an array of char, signed char, or unsigned char large enough to accept the sequence and a terminating null character code, which shall be added automatically. [CX] Otherwise the application shall ensure that the corresponding argument is a pointer to a pointer to a char.[/CX] On lines 14724-14727 Change from: The application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the sequence and the terminating null wide character, which shall be added automatically. Change to: If the 'm' assignment-allocation character is not specified, the application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the sequence and the terminating null wide character, which shall be added automatically. [CX] Otherwise the application shall ensure that the corresponding argument is a pointer to a pointer to a wchar_t[/CX] On lines 14729-14732 (The application shall ensure....) Change from: The application shall ensure that the corresponding argument is a pointer to the initial byte of an array of char, signed char, or unsigned char large enough to accept the sequence and a terminating null byte, which shall be added automatically. to: If the 'm' assigment-allocation character is not specified, the application shall ensure that the corresponding argument is a pointer to the initial byte of an array of char, signed char, or unsigned char large enough to accept the sequence and a terminating null byte, which shall be added automatically. [CX] Otherwise the application shall ensure that the corresponding argument is a pointer to a pointer to a char.[/CX] On lines 14736-14739 Change from: The application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the sequence and the terminating null wide character, which shall be added automatically to: If the 'm' assigment-allocation character is not specified, the application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the sequence and the terminating null wide character, which shall be added automatically. [CX] Otherwise the application shall ensure that the corresponding argument is a pointer to a pointer to a wchar_t[/CX] On lines 14751-14755 (c) Change from: The application shall ensure that the corresponding argument is a pointer to the initial byte of an array of char, signed char, or unsigned char large enough to accept the sequence. No null byte is added. The normal skip over white-space characters shall be suppressed in this case. to: No null byte is added. The normal skip over white-space characters shall be suppressed in this case. If the 'm' assignment-allocation character is not specified, the application shall ensure that the corresponding argument is a pointer to the initial byte of an array of char, signed char, or unsigned char large enough to accept the sequence. [CX] Otherwise the application shall ensure that the corresponding argument is a pointer to a pointer to a char [/CX] On lines 14759-14761 Change from: The application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the resulting sequence of wide characters. No null wide character is added. to: No null wide character is added. If the 'm' assignment-allocation character is not specified, the application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the resulting sequence of wide characters. [CX] Otherwise the application shall ensure that the corresponding argument is a pointer to a pointer to a wchar_t[/CX] fwscanf changes =============== In fwscanf DESCRIPTION (XSH page 487) Insert after line 16111 before the text "The length modifiers and their meanings are:" [CX] (bullet list item)An optional assignment-allocation character 'm'. The %s, %S and %[ conversion specifiers shall accept an optional assignment-allocation character 'm', which shall cause a memory buffer to be allocated to hold the wide-character string converted including a terminating null wide character. In such a case, the argument corresponding to the conversion specifier should be a reference to a pointer value that will receive a pointer to the allocated buffer. The system shall allocate a buffer as if malloc had been called. The application shall be responsible for freeing the memory after usage. If there is insufficient memory to allocate a buffer, the function shall set errno to [ENOMEM] and a conversion error shall result. In that case any memory successfully allocated for other parameters using assignment-allocation character 'm' by this call shall be freed. [/CX] Add a shall fail ERROR: [ENOMEM] Insufficient storage space is available In DESCRIPTION On line 16117 (description of ell). Add to end of para: [CX] If the 'm' assignment-allocation character is specified, the conversion applies to an argument with the type pointer to pointer to wchar_t. [/CX] On lines 16167-16170 (starting "The application shall ensure...) Change from: The application shall ensure that the corresponding argument is a pointer to a character array large enough to accept the sequence and the terminating null character, which shall be added automatically. to: If the 'm' assignment-allocation character is not specified, the application shall ensure ..(existing words)... . [CX] Otherwise the application shall ensure that the corresponding argument is a pointer to a pointer to a wchar_t[/CX] On lines 16171-16173 Change from: Otherwise, the application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the sequence and the terminating null wide character, which shall be added automatically. To: If the l (ell) qualifier is present and the 'm' assignment-allocation character is not specified, the application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the sequence and the terminating null wide character, which shall be added automatically. [CX] If the l (ell) qualifier is present and the 'm' assignment-allocation character is present the application shall ensure that the corresponding argument is a pointer to a pointer to a wchar_t.[/CX] On lines 16178- Change from: The application shall ensure that the corresponding argument is a pointer to a character array large enough to accept the sequence and the terminating null character, which shall be added automatically. To: If the 'm' assignment-allocation character is not specified, the application shall ensure that the corresponding argument is a pointer to a character array large enough to accept the sequence and the terminating null character, which shall be added automatically. [CX] Otherwise the application shall ensure that the corresponding argument is a pointer to a pointer to a wchar_t.[/CX] On lines 16181- Change from: If an l (ell) qualifier is present, the application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the sequence and the terminating null wide character, which shall be added automatically. to: If an l (ell) qualifier is present and the 'm' assignment-allocation character is not specified, the application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the sequence and the terminating null wide. [CX] If an l (ell) qualifier is present and the 'm' assignment-allocation character is specified, the application shall ensure that the corresponding argument is a pointer to a pointer to a wchar_t.[/CX] On lines 16203- (under c ) Change from: If an l (ell) length modifier is present, the corresponding argument shall be a pointer to the initial element of an array of wchar_t large enough to accept the sequence. No null wide character is added. to: No null wide character is added. If an l (ell) length modifier is present, and the 'm' assignment-allocation character is not specified, the application shall ensure that the corresponding argument shall be a pointer to the initial element of an array of wchar_t large enough to accept the sequence. [CX] If an l (ell) qualifier is present and the 'm' assignment-allocation character is specified, the application shall ensure that the corresponding argument is a pointer to a pointer to a wchar_t.[/CX] Delete lines 16206-16208 as covered above: "Otherwise, the application shall ensure that the corresponding argument is a pointer to an array of wchar_t large enough to accept the sequence. No null wide character is added." XSHd2 ERN 6 OPEN Action: Andrew to ask Larry for his input on this item XBDd2 ERN 86 OPEN Action: Mark Brown to draft some additional Application Usage Additional XRAT rdvk We discussed an additional IEEE ballot comment that was not raised at the face to face meeting. XRAT B.3 literal page B.3 Accept as marked below tmpnam() and tempnam() are marked as obsolescent. And gethostbyaddr() are removed. Anyone who want to use function gethostbyaddr can find (in B.3) which function should use - maybe same could be done for everyone who want to use tmpnam (and other obsolescent functions)? I know, tmpnam() still can be used, exist in standard, but will be removed - so it is better to not use this function in new programs. Also - B.3 should include all removed system interfaces, not only removed in this revision. Response: Interfaces that are obsolescent are still mandatory in the standard and have alternative application usage on their relevant manual pages, so its unnecessary and undesirable to duplicate the information here. We agree in principle for the latter part about documenting removed interfaces from previous revisions and would welcome detailed wording instructions. Action: Andrew to add this to the aardvark report for DR2 XRAT. Next Steps ----------- Andrew will update the aardvark reports with the latest inbound defect reports. Next teleconference meeting will be 15 March 2007. Note that the time will be at 15:00 UK local time since the US is moving to summer time this weekend. See http://www.opengroup.org/austin/. An IRC channel will be available for the meeting irc://irc.freestandards.org #austin irc://irc.freestandards.org/austin ICAL: http://www.google.com/calendar/ical/nvctqtstkuni3fab9k3jqtrt4g@group.calendar.google.com/public/basic XML: http://www.google.com/calendar/feeds/nvctqtstkuni3fab9k3jqtrt4g@group.calendar.google.com/public/basic