Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0001755 [Issue 8 drafts] Base Definitions and Headers Objection Error 2023-07-06 08:44 2023-08-22 14:45
Reporter geoffclare View Status public  
Assigned To
Priority normal Resolution Accepted  
Status Applied   Product Version Draft 3
Name Geoff Clare
Organization The Open Group
User Reference
Section 1.8.1 Codes
Page Number 8
Line Number 196
Final Accepted Text
Summary 0001755: not deferring to C17 on specifics has knock-on effects
Description In order not to defer to the C standard for some specific behaviours we have changed the usual boilerplate at the beginning of the DESCRIPTION for affected functions. However, the description of the CX margin code refers to the precise wording of that introductory text, and so needs to be updated. The rationale for that margin code should also explain why the need for these deviations from the C standard has arisen.

In addition, there have been questions raised concerning some wording on the c17 page in XCU which we should clarify in order to ensure it cannot be interpreted as requiring conformance to section 7 (Library) of the C standard.
Desired Action On page 8 line 196 section 1.8.1 Codes (CX), change:
The functionality described is an extension to the ISO C standard. Application developers may make use of an extension as it is supported on all POSIX.1-202x-conforming systems.

With each function or header from the ISO C standard, a statement to the effect that ``any conflict is unintentional'' is included.
to:
The functionality described is an extension to the ISO C standard or a deviation from it. Application developers can make use of the functionality as it is supported on all POSIX.1-202x-conforming systems.

With each function or header from the ISO C standard, a statement is included to the effect that ``any conflict is unintentional'', or ``any other conflict is unintentional'' if there is an intentional conflict (deviation).

On page 2652 line 87330 section c17, change:
it shall accept source code conforming to the ISO C standard
to:
it shall accept source code written in the C language as defined in section 6 of the ISO C standard

On page 2652 line 87333 section c17, after:
... and a linkage phase, for handling Phase 8 of the ISO C standard and extensions described here.
add a sentence:
The reference to ``library components'' in Phase 8 shall be taken to refer to components of libraries specified using the -l option, libraries specified as file.a or file.so operands, and the equivalent of a -l c option passed to the link editor in the manner specified in the EXTENDED DESCRIPTION.

After page 2660 line 87690 section c17 (APPLICATION USAGE), add a paragraph:
Since this standard requires that conforming applications define either _POSIX_C_SOURCE or _XOPEN_SOURCE before inclusion of any header (see [xref to XSH 2.2.1 POSIX.1 Symbols]), if c17 is used to compile source code that includes a header without defining one of these feature test macros in the required manner, the behavior of c17 itself and the results of using any files it generates are undefined. When c17 is used this way, implementations are encouraged to make visible in headers from the ISO C standard only the symbols that are allowed by that standard, and otherwise to behave the same as if _POSIX_C_SOURCE or _XOPEN_SOURCE had been defined, but portable applications cannot rely on this.

On page 3606 line 123517 section A.1.8.1 Codes (CX), change:
This margin code is used to denote extensions beyond the ISO C standard. For interfaces that are duplicated between POSIX.1-202x and the ISO C standard, a CX introduction block describes the nature of the duplication, with any extensions appropriately CX marked and shaded.
to:
This margin code is used to denote extensions beyond and, in exceptional cases, deviations from the ISO C standard. For interfaces that are duplicated between POSIX.1-202x and the ISO C standard, a CX introduction block describes the nature of the duplication, with any extensions or deviations appropriately CX marked and shaded. Where deviations exist, the reasons for them are explained in the RATIONALE section of the affected interface. Deviations have become necessary because there is no longer any formal way for ISO to acknowledge defects in the ISO C standard. For the original C90 standard and the C99 revision, defect reports (DRs) were issued, but there is no equivalent mechanism for the current revision. Even if the defect is corrected in a later revision, without stating deviations POSIX.1-202x would continue to require the incorrect behavior described in the version of the ISO C standard that it references.

Tags applied_after_i8d3, issue8
Attached Files

- Relationships
related to 0001647Applied 1003.1(2016/18)/Issue7+TC2 printf("%lc", (wint_t)0) can't output NUL byte 

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2023-07-06 08:44 geoffclare New Issue
2023-07-06 08:44 geoffclare Name => Geoff Clare
2023-07-06 08:44 geoffclare Organization => The Open Group
2023-07-06 08:44 geoffclare Section => 1.8.1 Codes
2023-07-06 08:44 geoffclare Page Number => 8
2023-07-06 08:44 geoffclare Line Number => 196
2023-07-06 08:45 geoffclare Relationship added related to 0001647
2023-07-24 16:26 Don Cragun Status New => Resolved
2023-07-24 16:26 Don Cragun Resolution Open => Accepted
2023-07-24 16:27 Don Cragun Tag Attached: issue8
2023-08-22 14:45 geoffclare Status Resolved => Applied
2023-08-22 14:45 geoffclare Tag Attached: applied_after_i8d3


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker