CVS difference for ais/ai-00130.txt
--- ais/ai-00130.txt 1999/03/22 22:33:21 1.2
+++ ais/ai-00130.txt 1999/04/15 16:54:14 1.3
@@ -1,12 +1,13 @@
-!standard H.4 (08) 99-03-21 AI95-00130/03
+!standard H.4 (08) 99-04-15 AI95-00130/04
!class binding interpretation 96-04-13
+!status ARG approved (with editiorial changes) 8-0-1 99-03-25
!status work item 96-04-17
!status received 96-04-13
!subject Enforcing Restrictions might violate the generic contract model.
The enforcement of restrictions might violate the contract model
of generics, as well as violate the "privateness" of code in a private part
@@ -16,13 +17,14 @@
restrictions, the No_Local_Allocators restriction should not preclude nested
generic instantiations. No_Nested_Finalization is broadened to cover
finalization associated with protected and task objects. For the purposes
-of these checks, a generic template is logically expanded at the point
-of each instantiation, the type definition for a record or protected
-type is logically expanded at the point of any default-initialized object
-creation, and default parameter expressions are inserted where used.
+of these (post-compilation) rules, a generic template is logically
+expanded at the point of each instantiation, and all of the expressions of
+the type definition for a record or protected type logically appear
+at the point of any default-initialized object creation, and default parameter
+expressions logically appear where used.
@@ -40,7 +42,7 @@
An implementation supporting the No_Task_Hierarchy, No_Nested_Finalization, or
No_Local_Allocators restrictions must enforce the intent of these restrictions
-with compile-time and/or post-compilation checks.
+with checks prior to run-time.
For the purposes of these checks:
@@ -48,9 +50,9 @@
- If an object of a type is declared or allocated and not explicitly
initialized, then all expressions appearing in the definition for
- the type and any of its ancestors are presumed to be evaluated.
+ the type and any of its ancestors are presumed to be used.
- - Default formal parameters are presumed to be evaluated only if the
+ - Default formal parameters are presumed to be used only if the
corresponding actual parameter is not provided in a given call or
@@ -73,7 +75,7 @@
logically expanded at the point of instantiation for the purposes
of this check.
Paragraph H.4(8) should be revised to say simply:
@@ -89,14 +91,14 @@
Objects with controlled, protected, or task parts, and access types
that designate such objects, shall be declared only at library level.
-Paragraph 13.12(8) should be augmented to include rules for how the
+Paragraph 13.12(8) should be amended to include rules for how the
enforcement of restrictions relates to the expansion of generic
instantiations, default initializations, and default parameters.
Precluding nested generic instances for the No_Local_Allocators restriction
-in H.4(8) in an attempt to preserve a generic control model for restrictions
+in H.4(8) in an attempt to preserve a generic contract model for restrictions
is inconsistent with the rules for No_Task_Hierarchy given in D.7(3) and
for No_Nested_Finalization given in D.7(4). In general, enforcing
pragma Restrictions across a partition will necessarily violate the
@@ -158,7 +160,7 @@
is required of all implementations as part of implementing the
Restrictions pragma, so this is not felt to be unduly burdensome.
[Note: The original comment inadvertently referred to G.4(08)
rather than H.4(08). We have changed those references to H.4 here.]
Questions? Ask the ACAA Technical Agent