Minutes of the 13th May 2019 Teleconference Austin-932 Page 1 of 1 Submitted by Andrew Josey, The Open Group. 15th May 2019 Attendees: Andrew Josey, The Open Group Nick Stoughton, USENIX, ISO/IEC JTC 1/SC 22 OR Don Cragun, IEEE PASC OR Geoff Clare, The Open Group Joerg Schilling, FOKUS Fraunhofer Eric Blake, Red Hat, The Open Group OR Mark Ziegast, SHware Systems Dev. Robert Clausecker, Zuse Institute Berlin Apologies: None. * General news We agreed there would be no meeting on the 27th May as its a holiday in the US and UK. We agreed that the purpose of the meeting on 23rd May will be to review and approve the draft PAR for the next major revision. Andrew took an action to determine the IEEE NESCOM deadlines for submittals. It appears we just missed one, the next is July 26th for the September IEEE NESCOM teleconference. Andrew took an action to circulate the latest draft PAR and PMC criteria to the core team list. Andrew mentioned that he plans to investigate whether it would be possible to move the standard source to a gitlab repository at The Open Group. This would support an automated build environment. He is talking with The Open Group IT team about this and hopes to determine the feasibility in the next quarter. * Outstanding actions (Please note that this section has been flushed to shorten the minutes - to locate the previous set of outstanding actions, look to the minutes from 9 March 2018 and earlier) Bug 1077: Recommend support for wide-character regcomp and regexec and/or specify multi-byte behavior OPEN http://austingroupbugs.net/bug_view_page.php?bug_id=1077 Andrew has completed the action to ping his Apple contact and is awaiting a reply. Bug 1122: POSIX should include gettext() and friends OPEN http://austingroupbugs.net/view.php?id=1122 Left open as an action is still in progress to flesh out a complete proposal. Bug 1218: Add reallocarray() OPEN http://austingroupbugs.net/view.php?id=1218 Action: Eric to ask if The Open Group is willing to sponsor this interface. A full set of changes would need to be developed. Bug 1219: snprintf requirement to fail when n > INT_MAX conflicts with C OPEN http://austingroupbugs.net/view.php?id=1219 Action: Nick (on his return) to ask C committee for guidance, whether an n > INT_MAX but less than SIZE_MAX, where SIZE_MAX is between, inclusively, INT_MAX+1 and UINT_MAX (or higher on 64-bit architectures) may be a preemptive reason to fail the interface, without examining any other arguments. Bug 1220: Add an API to query the name of a locale category of a locale object OPEN http://austingroupbugs.net/view.php?id=1220 Action: Eric to ask if The Open Group is willing to sponsor this interface. * Current Business Bug 1225: flushing while seeking on memory buffer streams Accept as Marked http://austingroupbugs.net/view.php?id=1225 An interpretation is required. This item is tagged for TC3-2008. Interpretation response: The standard does not speak to this issue, and as such no conformance distinction can be made between alternative implementations based on this. This is being referred to the sponsor. Rationale: The fseek() description was not updated when fmemopen(), open_memstream() and open_wmemstream() were added to the standard. Notes to the Editor (not part of this interpretation): On page 957 line 32543 section fseek(), change: If the stream is writable and... to: If the stream has an underlying file description and is writable, and... On page 957 line 32545 section fseek(), append: If the stream was created by fmemopen(), open_memstream(), or open_wmemstream() and the stream is writable, and if the stream is buffered and data in the stream's buffer has not been written to the underlying memory buffer, fseek() shall cause the unwritten data to be written to the underlying memory buffer. On page 958 line 32568 section fseek(), change: [EINVAL] The whence argument is invalid. The resulting file-position indicator would be set to a negative value. to: [EINVAL] The whence argument is invalid, the resulting file-position indicator would be set to a negative value, or the stream was created by fmemopen() and the resulting file-position indicator would be beyond the end of the underlying memory buffer. On page 958 line 32575 section fseek(), change: [ENOSPC] There was no free space remaining on the device containing the file. to: [ENOMEM] The stream was created by open_memstream() or open_wmemstream() and insufficient memory is available. [ENOSPC] There was no free space remaining on the device containing the file or in the buffer used by the fmemopen() function. On page 958 line 32568 section fseek(), change the RATIONALE from: None. to: When the stream was created by fmemopen(), fseek() fails if an attempt is made to seek beyond the end of the underlying memory buffer. This is different than fseek() on a file when a file size limit is in effect because the size specified to fmemopen() is a fixed, absolute limit whereas a file size limit is artificial and can be changed. With a file size limit, it is possible to seek past the limit, then raise the limit and successfully write at the new position; there is no equivalent possibility with the buffer size specified to fmemopen(). On page 958 line 32595 section fseek(), add fmemopen() and open_memstream() under the "See Also" heading. On page 960 line 32641 section fsetpos(), add: [CX]If the stream has an underlying file description and is writable, and buffered data has not been written to the underlying file, fsetpos() shall cause the unwritten data to be written to the file and shall mark the last data modification and last file status change timestamps of the file for update. If the stream was created by fmemopen(), open_memstream(), or open_wmemstream() and the stream is writable, and if the stream is buffered and data in the stream's buffer has not been written to the underlying memory buffer, fsetpos() shall cause the unwritten data to be written to the underlying memory buffer.[/CX] On page 960 line 32665 section fsetpos(), change: [ENOSPC] There was no free space remaining on the device containing the file. to: [ENOMEM] The stream was created by open_memstream() or open_wmemstream() and insufficient memory is available. [ENOSPC] There was no free space remaining on the device containing the file or in the buffer used by the fmemopen() function. On page 961 line 32677 section fsetpos(), change RATIONALE from: None. to: The ERRORS section does not include an [EINVAL] error equivalent to the one for fseek() because applications are required to obtain the fpos_t value using fgetpos(), in which case the file position to be set will always be valid. Directly manipulating the fpos_t object to set a position results in undefined behavior. However, if an implementation detects that the requested file position would be a negative value, or would be beyond the end of the underlying memory buffer of a stream that was created by fmemopen(), it is recommended that fsetpos() returns a non-zero value and sets errno to [EINVAL]. On page 961 line 32681 section fsetpos(), add fmemopen() and open_memstream() under the "See Also" heading. Bug 1226: shell can not test if a file is text OPEN http://austingroupbugs.net/bug_view_page.php?bug_id=1226 We commenced discussion and will continue this on the next call. Next Steps ---------- The next calls are on: May 16 2019 (Thursday) This call will be for 90 minutes. May 20 2019 (Monday) This call will be for 60 minutes. Calls are anchored on US time. (8am Pacific) Please check the calendar invites for new dial in details. Apologies in advance: None http://austingroupbugs.net An etherpad is usually up for the meeting, with a URL using the date format as below: https://posix.rhansen.org/p/201x-mm-dd username=posix password=2115756#