[Up]
[SIGAda]
[ACM]
ASIS ISO Standardization SC22 Ballot - US Comments
Attached please find 22 comments for the ASIS Ballot. They are ordered by
clause. Each comment is marked as a technical and/or editorial issue
together with information on its level of importance.
- 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 couldchange the semantics of an ASIS
implementation. Technical; very important - must be resolved in the final
standard.
- 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.
- 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.
- Clause 3.12.3 (type Unit_Orgins) states "Ada predefined language
environment units defined in Annex A." These units are "listed" in Annex A
(2); several are defined elsewhere. Editorial; nice to have.
- 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.
- 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.
- 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_Subunit,
A_Task_Body_Subunit, and A_Protected_Body_Subunit. Editorial; nice to
have.
- Clauses 13.33 (function Is_Part_of_Implicit), 15.45 (function
Generic_Actual_Part), and 17.22 (function Actual_Parameter) reguire 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. 9. 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 list
should be A_Protected_Type_Declaration and A_Single_Protected_Declaration.
Technical and Editorial; important - should be resolved in the final
standard.
- Clauses 15.26 (function Corresponding_Declaration) and 15.27
(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.
- Clauses 15.26 (Corresponding_Declaration) and 15.27
(Corresponding_Body) need to add generic_renaming_declarations as
appropriate parameters. Technical; important - should be resolved in the
final standard.
- Clause 15.27 (function Corresponding_Body) needs
A_Package_Renaming_Declaration removed from the list of returned
Declaration_Kinds. Editorial; nice to have.
- Clause 15.29 (function Corresponding_Type) should return
Definition_Kinds: A_Type_Definition. Editorial; important - should be
resolved in the final standard.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Appendix B examples should replace use of String with the use of
Wide_String and Program_Text. Technical and Editorial; important - should
be resolved in the final standard.
[Up]
[SIGAda]
[ACM]
Last update 20 March 1998. Questions, comments to
Clyde Roby (CRoby@IDA.Org)