Subject: SC22 N2780 - Disposition of Comments Report for FCD 15291

From: "william c. rinehuls" <[email-masked]>
Date: Fri, 31 Jul 1998 19:09:05 -0400 (EDT)

___________________ beginning of title page ___________________________
ISO/IEC JTC 1/SC22
Programming languages, their environments and system software interfaces
Secretariat:  U.S.A.  (ANSI)

ISO/IEC JTC 1/SC22
N2780

TITLE:
Disposition of Comments Report on Concurrent CD Registration and FCD
Approval for FCD 15291 - Information technology - Programming languages -
Ada Semantic Interface Specification

DATE ASSIGNED:
1998-07-31

SOURCE:
Secretariat, ISO/IEC JTC 1/SC22

BACKWARD POINTER:
N/A

DOCUMENT TYPE:
Disposition of Comments Report

PROJECT NUMBER:
JTC 1.22.15291

STATUS:
The FDIS has been forwarded for ISO/IEC JTC 1 approval ballot.

ACTION IDENTIFIER
FYI

DUE DATE:
N/A

DISTRIBUTION:
Text

CROSS REFERENCE:
SC22 N2676

DISTRIBUTION FORM:
Def

Address reply to:
ISO/IEC JTC 1/SC22 Secretariat
William C. Rinehuls
8457 Rushing Creek Court
Springfield, VA 22153 USA
Telephone:  +1 (703) 912-9680
Fax:  +1 (703) 912-2973
email:  [email-masked]

________________ end of title page; beginning of report ____________

                  Disposition of Comments Report
      From Final Committee Draft (FCD) Ballot of ISO/IEC 152  
             Ada Semantic Interface Specification (ASIS)

During the balloting process for the Final Committee Draft (FCD) of
ISO/IEC 15291, fourteen nations voted for approval. These nations
included: Belgium, Canada, Czech Republic, Egypt, Finland, France,
Ireland, Japan, Netherlands, Norway, Russian Federation, UK, Ukraine, and
USA. Four nations abstained and five nations did not vote.  There were no
ballots voting for disapproval. Japan and the United States were the only
nations to formally submit comments.  In addition, there were several
formatting comments provided by ISO.  During the incorporation of
these comments, several minor inconsistencies were identified and
corrected.  This document addresses the disposition of comments made to
the Final Committee Draft of ISO/IEC 15291, Information technology —
Programming languages — Ada Semantic Interface Specification (ASIS).

The disposition of formally submitted comments are provided by section
number. Comment #4 was submitted by Japan; others by the United States.
Comments with their disposition are:

1.  Clause 1.1.3.1 (Implementation conformance requirements) needs to
address the issue of categorization pragmas. ASIS needs a sensible policy
in the use of pragmas which could change the semantics of an ASIS
implementation. Technical; very important - must be resolved in the final
standard.

Resolution: Changed clause 1.1.3.1(b) to read: "Adding "with" clauses,
representation specifications, comments, and allowable pragmas.  Allowable
pragmas are those which do not change the semantics of the interface
(e.g., List, Optimize, Page)."

2.  Clause 2.2 (ASIS queries) should have additional descriptions for
context and operations on elements. The following additional figures and
descriptive text should be provided: relationship between the Ada
environment and the ASIS context, compilation unit from a black box
perspective, compilation unit from a white box perspective, and a figure
depicting the operations on an element.  Technical and Editorial; nice to
have.

Resolution: Additional descriptions and text were added to clause 2.2.1
(Structural queries) to explain a compilation unit from both a black box
and a white box perspective. Additional figures were provided in clause 2:
Figure 2, ASIS as interface to Ada compilation environment; Figure 3,
Application interface to ASIS Context; and Figure 5, Operations on
elements.  A new clause 2.4.3 "Notional ASIS Application" was added to
support this comment.

3.  Clause 2.2.3.5 (Semantic references) Figure 3 incorrectly demonstrates
the use of Corresponding_Type_Declaration as the reference is to a
predefined type. Either a user-defined type should be provided for the
example or the example should use Corresponding_Name_Definition.
Technical and Editorial; important - must be resolved in the final
standard.

Resolution: Correction made.  A new figure and corrected text is provided.
A user-defined type is provided, requiring a change to Figure 2 and its
text as well. Due to Comment #2 above, Figures 2 and 3 are now Figures 4
and 6 respectively.

4.  Clause 2.4.3 (Erroneous applications) A typographic error: 2.4.3
(third bullet) "these are the only ones that shall be used before closing
a context" should read "... shall be used after closing ..."

Resolution: Correction made. Clause 2.4.3 has been renumbered to clause
2.4.4 due to the resolution of the previous comment to clause 2.2 (comment
#2 above).

5.  Clause 3.12.3 (type Unit_Origins) states "Add predefined language
environment units defined in Annex A." These units are "listed" in Annex A
(2); several are defined elsewhere.  Editorial; nice to have.

Resolution: Correction made. "Defined" changed to "listed."

6.  Clause 10.11 (function Corresponding_Children)
A_Package_Instantiation appears as part of the Appropriate Unit_Kinds.
This should be A_Package_Instance instead.  A_Package_Instantiation is a
declaration kind, not a unit kind.  Editorial; important - must be
resolved in the final standard.

Resolution: Correction made.

7.  Clause 10.17 (function Is_Equal) and Clause 10.18 (function
Is_Identical) should not discriminate based on compilation time stamp.
Instead, they should discriminate based on compilation unit name, program
text, and features allowed by ISO/IEC 8652:1995 (Ada 95). Technical;
important - should be resolved in the final standard.

Resolution: Resolved by changing the parenthetical phrase on both 10.17
(Is_Equal) and 10.18 (Is_Identical) to: "The same physical compilation
unit" have the same version, as defined by Reference Manual E.3(5) and the
same program text."

8.  Clause 10.32 (function Subunits) should include the following
appropriate Unit_Kinds: A_Procedure_Body, A_Function_Body, A_Package_Body,
A_Procedure_Body_Subunit, A_Function_Body_Subunit, A_Package_Body_S
ubunit, A_Task_Body_Subunit, and A_Protected_Body_Subunit.
Editorial; nice to have.

Resolution: Additions made.

9.  Clauses 13.33 (function Is_Part_Of_Implicit), 15.45
(function Generic_Actual_Part), and 17.22 (function Actual_Parameter)
require changes in the commentary concerning normalized generic
associations. The commentary needs to address the semantics in the case
for implicit predefined operations.  Technical; important - should be
resolved in the final standard.

Resolution: Resolved. Necessary commentary was added to clause 13.33
(Asis.Elements.Is_Part_Of_Implicit), clause 15.45
(Asis.Declarations.Generic_Actual_Part), and clause 17.22
(Asis.Expressions.Actual_Parameter).

10.  Clause 15.26 (function Corresponding_Declaration) has the last two
items wrong on each of the three lists. The last two items on the first
list should be A_Protected_Body_Declaration and A_Protected_Body_Stub. The
last two items on the second and third lists should be  
A_Protected_Type_Declaration and A_Single_Protected_Declaration. Technical
and Editorial; important - should be resolved in the final standard.

Resolution: Corrections made.

11.  Clauses 15.26 (function Corresponding_Declaration) and 15.27
(function Corresponding_Body) should also return 
A_Formal_Package_Declaration and A_Formal_Package_Declaration_With_Box.
Technical; important - should be resolved in the final standard.

Resolution: Corrections made A_Formal_Package_Declaration and
A_Formal_Package_Declaration_With_Box were added to clause 15.26 (function
Asis.Declaration.Corresponding_Declaration) and clause 15.27 (function
Asis.Declaration.Corresponding_Body).

12.  Clauses 15.26 (function Corresponding_Declaration) and 15.27
(function Corresponding_Body) need to add generic_renaming_declarations
as appropriate parameters. Technical; important - should be resolved in
the final standard.

Resolution: Generic_renaming_declarations were added to clause 15.26
(function Asis.Declaration.Corresponding_Declaration) and to clause
15.27, (function Asis.Declaration.Corresponding_Body.

13.  Clause 15.27 (function Corresponding_Body) needs
A_Package_Renaming_Declaration removed from the list of returned
Declaration_Kinds.  Editorial; nice to have.

Resolution: Deletion made.

14.  Cause 15.29 (function Corresponding_Type) should return
Definition_Kinds:  A_Type_Definition.  Editorial; important - should be
resolved in the final standard.

Resolution: Correction made.

15.  Clause 16.4 (function Implicit_Inherited_Declarations) should
identify the returned Declaration_Kinds as:
An_Enumeration_Literal_Specification,
A_Discriminant_Specification, A_Component_Declaration,
A_Procedure_Declaration, A_Function_Declaration, and
An_Entry_Declaration.  Editorial; nice to have.

Resolution: Additions made.

16.  Clause 17 (package Asis.Expressions) should have interfaces for
Is_Dispatching_Operation and Corresponding_Called_Function_Unwound. The
procedure counterparts in Clause 18 (package Asis.Statements) should
have interfaces for Is_Dispatching_Call and 
Corresponding_Called_Entity_Unwound. These are necessary to support OOP
queries.  Technical; important - should be resolved in the final standard.

Resolution: Functions Corresponding_Called_Function_Unwound And
Corresponding_Called_Entity_Unwound have nothing to do with OOP; they are
best implemented as secondary queries.  The following three interfaces
were added to support OOP:

17.40 function Is_Dispatching_Operation
18.42 function Is_Dispatching_Call
18.43 function Is_Call_On_Dispatching_Operation

17.  Clause 17.1 (function Corresponding_Expression_Type) requires
clarification concerning the return of elements for task objects.
Currently either a Nil_Element or A_Task_Type_Declaration are possible.
Editorial; nice to have.

Resolution: Clarification made. Note closely related to Comment#19.

18.  Clause 17.1 (function Corresponding_Expression_Type) requires
clarification concerning the unwinding of subtypes and derived types.
Technical; important - should be resolved in the final standard.

Resolution: To be more precise, clause 17.1,
Corresponding_Expression_Type has been clarified with an example showing
when unwinding should not occur.

19.  Clause17.1 (function Corresponding_Expression_Type) should identify
general rules for the return of Nil_Element for the cases when an
Expression actually does not represent an Ada expression having an Ada
type such as an enumeration_aggregate which is part of an
enumeration_representation_clause.  Technical; important - should be
resolved in the final standard.

Resolution: Clarification on when Nil_Element is returned has been added
to clause 17.1 (Corresponding_Expression_Type). Note closely related to
Comment#17.

20.  Clause 17.21 (function Formal_Parameter) needs to include the return
of An_Operator_Symbol Element. Editorial; important - should be resolved
in the final standard.

Resolution: Addition of An_Operator_Symbol was made to clause 17.21,
Formal_Parameter.

21.  Clause 17.26 (function Is_Defaulted_Association) should have the
An_Array_Component_Association removed from the expected
Association_Kinds list. An_Array_Component_Association can never be in
the normalized form, and it can never have any default expression passed
for an array component.  Also A_Discriminant_Association and
A_Record_Component_Association should be removed from the list of expected
Association_Kinds because they also can never have default expressions
(even though they can be normalized). Also the note should be flagged with
a sentinel and moved to the end of the clause. Technical and  Editorial;
important - should be resolved in the final standard.

Resolution: In clause17.26,
Asis.Expression.Is_Defaulted_Association,
A_Discriminant_Association, An_Array_Component_Association, and
A_Record_Component_Association are deleted from the list of Expected
Association_Kinds. The note is flagged and moved to the end of the clause.

22. Clause 18.20 (function Corresponding_Loop_Exited) should include
Element_Kinds returned as: A_Loop_Statement, A_While_Loop_Statement, and
A_For_Loop_Statement.  Editorial; nice to have.

Resolution: Additions made.

23. Clause 20.1 (type Line) and 20.13 (function Is_Nil) require
clarification on the difference between an empty line and a Nil_Line.
Technical and Editorial; important - should be resolved in the final
standard.

Resolution: Clarification has been added to clause 20.1 (function Is_Nil)
and clause 20.13 (function Is_Nil) as requested. The change also required
changes to clause 20.18 (function Length), clause 20.24 (function
Line_Image), clause 20.25 (function Non_Comment_Image), and clause 20.26
(function Comment_Image).

24. Appendix B examples should replace use of String with the use of
Wide_String and Program_Text. Editorial; nice to have.

Resolution: Corrections to both example B.1 and B.2 were made. The
examples were tested to ensure they compiled and executed correctly.

_____________________ end of SC22 N2780 ____________________________