CVS difference for ai05s/ai05-0066-1.txt

Differences between 1.4 and version 1.5
Log of other versions for file ai05s/ai05-0066-1.txt

--- ai05s/ai05-0066-1.txt	2008/03/07 06:15:19	1.4
+++ ai05s/ai05-0066-1.txt	2008/05/10 05:14:33	1.5
@@ -1,4 +1,4 @@
-!standard 3.10.2(14.4/2)                                      08-02-22    AI05-0066-1/04
+!standard 3.10.2(14.4/2)                                      08-05-09    AI05-0066-1/05
 !standard 7.6.1(13/2)
 !standard 7.6.1(13.1/2)
 !class binding interpretation 07-10-22
@@ -22,7 +22,7 @@
 
 !question
 
-Consider the following three items (assume that F and G are function returning
+Consider the following three items (assume that F and G are functions returning
 objects with controlled parts, and that no build-in-place permissions are used for
 these objects):
 
@@ -45,7 +45,7 @@
 of the assignment statement.
 
 For (2), the function_call (which is a name) is a master (by 7.6.1(3/2)) as it is not
-nested in any of the things that would prevent from being a master. The
+nested in any of the things that would prevent it from being a master. The
 special case doesn't apply either (a renames isn't an initialization), but
 the function_call F is a master. Thus anon_G is finalized as soon as F completes its
 evaluation and call. OTOH, since we'll believe the AARM note (even though the actual
@@ -56,7 +56,7 @@
 the rename. That's what we want.
 
 For (3), the function_call (which is an expression) is a master (by 7.6.1(3/2)) as
-it is not nested in any of the things that would prevent from being a master. In this
+it is not nested in any of the things that would prevent it from being a master. In this
 case, the special case (of initialization in its entirety) does apply, so the accessibility
 of anon_F is that of Obj. The effect is that both the special case and
 the normal case give the same result: anon_F has the accessibility of Obj. So again,
@@ -161,7 +161,7 @@
 7.6(21/2) gives a permission to eliminate the anonymous object completely. But there is
 no permission to finalize the object early.
 
-Two possible solutions to this problem have been proposed:
+Two alternative solutions to this problem were proposed:
 
 (1) 
 
@@ -191,7 +191,7 @@
 Give an Implementation Permission to allow early finalization of objects with controlled parts
 if they are not accessible by any path other than the finalization mechanism.
 
-This would allow implementations to finalize the temporories as soon as they are copied.
+This would allow implementations to finalize the temporaries as soon as they are copied.
 
 This has the advantage of also solving the garbage collection problem (Ada does not
 allow garbage collection of controlled objects, because there is no permission to
@@ -219,6 +219,10 @@
 (The part in square brackets is repeated from 7.6(11/2), and thus follows; we would need
 to explicitly say something else if we don't want that.)
 
+Neither of these solutions was very satisfying, so ultimately we chose to give the
+function call or aggregate a different (sometimes more nested) master than normally
+is applied.
+
 !corrigendum 3.10.2(14.4/2)
 
 @drepl
@@ -269,7 +273,7 @@
 
 !ACATS Test
 
-** TBD **
+An ACATS C-test needs to check that any temporary object is finalized immediately.
 
 !appendix
 

Questions? Ask the ACAA Technical Agent