Version 1.2 of ai12s/ai12-0388-1.txt

Unformatted version of ai12s/ai12-0388-1.txt version 1.2
Other versions for file ai12s/ai12-0388-1.txt

!standard 4.3.5(0)          20-08-27 AI12-0388-1/02
!standard 6.1.1(26.10/4)
!standard 6.1.1(29/4)
!standard 7.3.4(0)
!standard D.4(16)
!class presentation 20-08-21
!status Amendment 1-2012 20-08-21
!status work item 20-08-21
!status received 20-07-31
!priority Low
!difficulty Easy
!qualifier Omission
!subject Still More Presentation issues
!summary
[Editor's note: This AI's changes have been included in draft 26 of the RM even though it is not yet approved, as it is expected that these changes will not be controversal.]
(1) Add (see 13.1.1) after "nonoverridable" in 4.3.5(12/5) and D.4(20/5).
(2) Use "are" in 6.1.1(26.10/5).
(3) In 6.1.1(29/5), replace "previously" with "above as part of the Name Resolution Rules for Post'Class".
(4) In 7.3.4(3/5), add "each" to clarify.
!question
(1) Typically, there is a cross-reference "(see 13.1.1)" after each (forward) reference to "nonoverridable". But 4.3.5(12/5) and D.4(20/5) do not have it. Should this be changed? (Yes.)
(2) 6.1.1(26.10/5) says (essentially) that "A and B is defined above". The verb here should be "are", right? (Yes.)
(3) In 6.1.1(29/5), "described previously" is pretty vague in a large subclause. Should we be more specific? (Yes.)
(4) In 7.3.4(3/5), one can read "a list of names preceded by an optional not" as meaning that there is a single not preceding the list, rather than a not for each name. Should this be clarified? (Yes.)
!response
(1) We typically put a cross-reference next to the first occurrence of any term in a subclause if that term is defined after that subclause. Aggregate is missing that. Max_Entry_Queue_Length is not a forward reference, but it is far enough away from the definition that a cross-reference would be helpful to many readers.
(2) We need a plural verb form to go with two items, of course.
(3) ISO does not allow us to use paragraph numbers in normative text (and our tools don't allow it anywhere), so we have to describe the text in question. That's a bit long-winded, but it's much more specific than "previously", and the intended wording is a long ways away.
(4) The intent is that "not" is allowed in front of each name individually, shown by 7.3.4(13-14/5).
!wording
(1) Modify 4.3.5(12/5):
The Aggregate aspect is nonoverridable {(see 13.1.1)}.
Modify D.4(20/5):
If the Max_Entry_Queue_Length aspect for a type has a nonnegative value, the Max_Entry_Queue_Length aspect for every individual entry of that type shall not be greater than the value of the aspect for the type. The Max_Entry_Queue_Length aspect of a type is nonoverridable {(see 13.1.1)}.
(2) Modify 6.1.1(26.10/5):
The type and nominal subtype of X'Old [is]{are} as implied by the above definitions.
(3) Modify 6.1.1(29/5):
F'Result Within a postcondition expression for F, denotes the return object
of the function call for which the postcondition expression is evaluated. The type of this attribute is that of the result subtype of the function or access-to-function type result except within a Post'Class postcondition expression for a function with a controlling result or with a controlling access result; in those cases the type of the attribute was described [previously]{above as part of the Name Resolution Rules for Post'Class}.
(4) Modify 7.3.4(3/5):
A type property aspect definition is a list of names written in the syntax of a positional_array_aggregate. A subprogram property aspect definition is a list of names{, each optionally} preceded by {reserved word}[an optional] /not/, also written in the syntax of a positional_array_aggregate.
!discussion
None.
!corrigendum 4.3.5(0)
Insert new clause:
See the conflict file for the changes.
!corrigendum 6.1.1(26.10/4)
Replace the paragraph:
The nominal subtype of X'Old is as implied by the above definitions. The expected type of the prefix of an Old attribute is that of the attribute. Similarly, if an Old attribute shall resolve to be of some type, then the prefix of the attribute shall resolve to be of that type.
by:
The type and nominal subtype of X'Old are as implied by the above definitions.
!corrigendum 6.1.1(29/4)
Replace the paragraph:
F'Result
Within a postcondition expression for function F, denotes the result object of the function. The type of this attribute is that of the function result except within a Post'Class postcondition expression for a function with a controlling result or with a controlling access result. For a controlling result, the type of the attribute is T'Class, where T is the function result type. For a controlling access result, the type of the attribute is an anonymous access type whose designated type is T'Class, where T is the designated type of the function result type.
by:
F'Result
Within a postcondition expression for F, denotes the return object of the function call for which the postcondition expression is evaluated. The type of this attribute is that of the result subtype of the function or access-to-function type except within a Post'Class postcondition expression for a function with a controlling result or with a controlling access result; in those cases the type of the attribute was described above as part of the Name Resolution Rules for Post'Class.
!corrigendum 7.3.4(0)
Insert new clause:
See the conflict file for the changes.
!corrigendum D.4(16)
Insert after the paragraph:
The implementation should use names that end with "_Queuing" for implementation-defined queuing policies.
the new paragraphs:
Static Semantics
See the conflict file for the changes.
!ASIS
No ASIS effect.
!ACATS test
No ACATS tests needed for presentation issues.
!appendix

****************************************************************

Questions? Ask the ACAA Technical Agent