All
Enclosed are the minutes of yesterday’s meeting
regards
Andrew
------------
Minutes of the 27th July 2023 Teleconference Austin-1332 Page 1 of 1
Submitted by Andrew Josey, The Open Group. 28th July 2023
Attendees:
Andrew Josey, The Open Group
Don Cragun, IEEE PASC OR
Mark Ziegast, SHware Systems Dev.
Geoff Clare, The Open Group
Eric Ackermann, HPI, University of Potsdam
Eric Blake, Red Hat, The Open Group OR
Apologies
Nick Stoughton, Logitech/USENIX, ISO/IEC JTC 1/SC 22 OR
Tom Thompson, IEEE
* General news
The meeting on July 31 will be a webex.
The meeting logistics for August 3rd are undecided as to whether it
is a zoom or webex meeting. We will check with Nick on Monday.
Andrew noted that draft planning is still to be done.
It is expected that the cutoff for the next draft will be determined
by the closing date for open interpretations.
* Current Business
Note for issue resolution all items are tagged for Issue 8 unless
noted otherwise or disposition is reject or duplicate.
Bug 1766: catgets: quotation in "Change History" lacks closing quotes Accepted
https://austingroupbugs.net/view.php?id=1766
This item is tagged for TC3-2008.
Bug 1769: CX shading needed for fputwc() EILSEQ error indicator requirement
Accepted
https://austingroupbugs.net/view.php?id=1769
Bug 1614: XSH 3/mktime does not specify EINVAL and should Accepted as Marked
https://austingroupbugs.net/view.php?id=1614
An interpretation is required.
Interpretation response:
The standard clearly states that when an unsuccessful call to
mktime() returns (time_t)-1 it sets errno to [EOVERFLOW], and
conforming implementations must conform to this.
Rationale:
The RETURN VALUE section on the mktime() page states:
If the time since the Epoch cannot be represented, the function
shall return the value (time_t)-1 [CX]and set errno to indicate
the error[/CX].
This requires that errno is set to indicate "the error", and the
beginning of the sentence states the nature of the error condition
to which "the error" refers: the time since the Epoch (i.e. the
integer value to be returned) cannot be represented. The ERRORS
section requires that the error number [EOVERFLOW] is used for this
condition.
Thus the standard requires that errno is set to [EOVERFLOW] when
an unsuccessful call to mktime() returns (time_t)-1 and an
implementation that sets it to [EINVAL] does not conform.
The mktime() function does not have any way to indicate to the
caller that an error other than [EOVERFLOW] occurred.
Notes to the Editor (not part of this interpretation):
On page 425 line 14451 section <time.h>, after applying bug 1253 change:
The value of tm_isdst shall be positive if Daylight Saving Time
is in effect, 0 if Daylight Saving Time is not in effect, and
negative if the information is not available.
to:
When tm_isdst is set by an interface defined in this standard,
its value shall be positive if Daylight Saving Time (DST) is
in effect and 0 if DST is not in effect. [CX]It shall not be
set to a negative value by any interface defined in this standard.
When tm_isdst is passed to the mktime() function, it specifies
how mktime() is to handle DST when calculating the time since
the Epoch value; see [xref to mktime()].[/CX]
On page 1331 line 44310 section mktime(), delete:
A positive or 0 value for tm_isdst shall cause mktime() to
presume initially that Daylight Savings Time, respectively, is
or is not in effect for the specified time. A negative value
for tm_isdst shall cause mktime() to attempt to determine whether
Daylight Savings Time is in effect for the specified time.
On page 1331 line 44317 section mktime(), change:
corrected for timezone and any seasonal time adjustments
to:
corrected for the offset of the timezone's standard time from
Coordinated Universal Time and further corrected (if applicable--see
below) for Daylight Saving Time
After page 1331 line 44321 section mktime(), add these new paragraphs:
[CX]If the timezone is one that includes Daylight Saving Time
(DST) adjustments, the value of tm_isdst in the tm structure
controls whether or not mktime() adjusts the calculated seconds
since the Epoch value by the DST offset (after it has made the
timezone adjustment), as follows:
If tm_isdst is zero, mktime() shall not further adjust the
seconds since the Epoch by the DST offset.
If tm_isdst is positive, mktime() shall further adjust the
seconds since the Epoch by the DST offset.
If tm_isdst is negative, mktime() shall attempt to determine
whether DST is in effect for the specified time; if it
determines that DST is in effect it shall produce the same
result as an equivalent call with a positive tm_isdst value,
otherwise it shall produce the same result as an equivalent
call with a tm_isdst value of zero. If the broken-down time
specifies a time that is either skipped over or repeated
when a transition to or from DST occurs, it is unspecified
whether mktime() produces the same result as an equivalent
call with a positive tm_isdst value or as an equivalent
call with a tm_isdst value of zero.
If the TZ environment variable specifies a geographical timezone
for which the implementation's timezone database includes
historical or future changes to the offset from Coordinated
Universal Time of the timezone's standard time, and the broken-down
time corresponds to a time that was (or will be) skipped over
or repeated due to the occurrence of such a change, mktime()
shall calculate the time since the Epoch value using either the
offset in effect before the change or the offset in effect after
the change.[/CX]
On page 1331 line 44323 section mktime(), after applying bug 1613 change:
with the specified time since the Epoch as its argument
to:
with the calculated time since the Epoch as its argument
On page 1331 line 44327 section mktime(), change:
The mktime() function shall return the specified time since the
Epoch encoded as a value of type time_t. If the time since the
Epoch cannot be represented, the function shall return the value
(time_t)-1 [CX]and set errno to indicate the error[/CX].
to:
The mktime() function shall return the calculated time since
the Epoch encoded as a value of type time_t. If the time since
the Epoch cannot be represented as a time_t [CX]or the value
to be returned in the tm_year member of the structure pointed
to by timeptr cannot be represented as an int[/CX], the function
shall return the value (time_t)-1 [CX]and set errno to [EOVERFLOW],
and shall not change the value of the tm_wday component of the
structure.[/CX]
[CX]Since (time_t)-1 is a valid return value for a successful
call to mktime(), an application wishing to check for error
situations should set tm_wday to a value less than 0 or greater
than 6 before calling mktime(). On return, if tm_wday has not
changed an error has occurred.[/CX]
On page 1332 line 44348 section mktime(), change:
if (mktime(&time_str) == -1)
to:
time_str.tm_wday = -1;
if (mktime(&time_str) == (time_t)-1 && time_str.tm_wday == -1)
On page 1332 line 44359 section mktime(), change RATIONALE from "None" to:
In order to allow applications to distinguish between a successful
return of (time_t)-1 and an [EOVERFLOW] error, mktime() is
required not to change tm_wday on error. This mechanism is used
rather than the convention used for other functions whereby the
application sets errno to zero before the call and the call
does not change errno on error because the ISO C standard does
not require mktime() to set errno on error. The next revision
of the ISO C standard is expected to require that mktime() does
not change tm_wday when returning (time_t)-1 to indicate an
error, and that this return convention is used both for the
case where the value to be returned by the function cannot be
represented as a time_t and the case where the value to be
returned in the tm_year member of the tm structure cannot be
represented as an int.
The DESCRIPTION section says that mktime() converts the specified
broken-down time into a time since the Epoch value. The use of
the indefinite article here is necessary because, when tm_isdst
is negative and the timezone has Daylight Saving Time transitions,
there is not a one-to-one correspondence between broken-down
times and time since the Epoch values.
The description of how the value of tm_isdst affects the behavior
of mktime() is shaded CX because the requirements in the ISO C
standard are unclear. The next revision of the ISO C standard
is expected to state the requirements using wording equivalent
to the wording in this standard.
Bug 1647: printf("%lc", (wint_t)0) can't output NUL byte Accepted as Marked
https://austingroupbugs.net/view.php?id=1647
Now the C committee has responded to our feedback, we can approve
the proposed interpretation. (closed after meeting)
Bug 1768: catgets: incomplete paragraph in "Change History" Accepted as Marked
https://austingroupbugs.net/view.php?id=1768
This item is tagged for TC3-2008
The text of Austin Group Interpretation 1003.1-2001 #148 can be found here:
https://collaboration.opengroup.org/austin/interps/documents/14539/AI-148.txt
[^]
It doesn't contain any changes to catgets().
We considered whether there might be a typo in the 148 number, but we
have been unable to find any other interpretation (besides #044
that is already listed) affecting catgets(), and as far as it can
be seen, all of the changes to catgets() between Issue 6 and Issue 7
are described in the other Change History entries.
The other possibility is that this entry should have been on a
different page, but all of the functions affected by #148 have a
Change History entry for it.
All we can do at this point is treat this line as spurious and delete it.
Bug 1770: Typo re iswblank_l Accepted
https://austingroupbugs.net/view.php?id=1770
This item is tagged for TC3-2008
Bug 1767: sed: clarify behavior of c (change) command Accepted
https://austingroupbugs.net/view.php?id=1767
Bug 1747: mailx: document alias expansion prevention Accepted
https://austingroupbugs.net/view.php?id=1747
Bug 1746: fuser output format clarification
https://austingroupbugs.net/view.php?id=1746
This item is tagged for TC3-2008
An interpretation is required.
Interpretation response:
The standard states that the process ID is written using the format
"%d", and conforming implementations must conform to this. However,
concerns have been raised about this which are being referred to
the sponsor.
Rationale:
Format "%d" allows, but does not require a space or tab before the
process ID. The standard should require separation between process
IDs in order for the output to be usable.
Notes to the Editor (not part of this interpretation):
Make the changes in bugnote:6341
Bug 1745: tsort input and output format clarifications Accepted as Marked
https://austingroupbugs.net/view.php?id=1745
This item is tagged for TC3-2008.
An interpretation is required.
Interpretation response:
The standard is unclear on this issue, and no conformance distinction
can be made between alternative implementations based on this. This
is being referred to the sponsor.
Rationale:
None.
Notes to the Editor (not part of this interpretation):
Make the changes in the Desired Action.
We will continue next time on:
Bug 1732: cp and mv EXIT STATUS does not account for -i
https://austingroupbugs.net/view.php?id=1732
Next Steps
----------
The next call is on:
Mon 2023-07-31 (Webex meeting - general bugs/ballot resolution)
Thu 2023-08-03 (TBD Zoom or Webex meeting - general bugs/ballot resolution)
The calls are for 90 minutes
Calls are anchored on US time. (8am Pacific)
Please check the calendar invites for dial in details.
Apologies in advance:
Tom Thompson 2023-07-31
Andrew Josey 2023-08-07, 2023-08-10
Bugs are at:
https://austingroupbugs.net
An etherpad is usually up for the meeting, with a URL using the date format as
below:
https://posix.rhansen.org/p/20xx-mm-dd
(For write access this uses The Open Group single sign on,
for those individuals with gitlab.opengroup.org accounts.
Please contact Andrew if you need to be setup)
--------
Andrew Josey, The Open Group, [email protected]