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

Differences between 1.1 and version 1.2
Log of other versions for file ai05s/ai05-0219-1.txt

--- ai05s/ai05-0219-1.txt	2010/06/13 06:59:12	1.1
+++ ai05s/ai05-0219-1.txt	2010/08/12 22:33:50	1.2
@@ -1,15 +1,17 @@
-!standard  10.2.1(18/2)                             10-06-13    AI05-0219-1/01
+!standard  10.2.1(18/2)                             10-08-12    AI05-0219-1/02
 !class binding interpretation 10-06-13
+!status Amendment 2012 10-08-12
+!status ARG Approved 8-0-1  10-06-19
 !status work item 10-06-13
 !status received 10-05-06
 !priority Low
 !difficulty Easy
-!qualifier Omission
+!qualifier Clarification
 !subject Pure permissions and limited parameters
 !summary
 
 The permission to eliminate calls on pure subprograms cannot be used if
-any parameter has a part whose full type is limited.
+any parameter has a part whose full type is immutably limited.
 
 !question
 
@@ -35,20 +37,47 @@
 type}, and the addresses and values of all by-reference actual parameters, the
 values of all by-copy-in actual parameters, and the values of all objects
 accessible via access values from the parameters, are the same as they were at
-the earlier call. [This permission applies even if the subprogram produces other
-side effects when called.]
+the earlier call. This permission applies even if the subprogram produces other
+side effects when called.
 
 
-
 !discussion
 
 "Immutably limited" isn't strong enough, as it doesn't include all types with
-limited parts. "Limited type" here is vague, we are really talking about
+limited parts. However, "limited type" here is vague, we are really talking about
 types whose full type is limited.
 
 To be consistent, we use the same wording as for build-in-place: "full type of
 any part of the object is immutably limited".
 
+!corrigendum 10.2.1(18/2)
+
+@drepl
+If a library unit is declared pure, then the implementation is permitted to
+omit a call on a library-level subprogram of the library unit if the results
+are not needed after the call. In addition, the implementation may omit a call
+on such a subprogram and simply reuse the results produced by an earlier call
+on the same subprogram, provided that none of the parameters nor any object
+accessible via access values from the parameters are of a limited type, and the
+addresses and values of all by-reference actual parameters, the values of all
+by-copy-in actual parameters, and the values of all objects accessible via
+access values from the parameters, are the same as they were at the earlier
+call. This permission applies even if the subprogram produces other side
+effects when called.
+@dby
+If a library unit is declared pure, then the implementation is permitted to
+omit a call on a library-level subprogram of the library unit if the results
+are not needed after the call. In addition, the implementation may omit a call
+on such a subprogram and simply reuse the results produced by an earlier call
+on the same subprogram, provided that none of the parameters nor any object
+accessible via access values from the parameters have any part that is of a
+type whose full type is an immutably limited type, and the
+addresses and values of all by-reference actual parameters, the values of all
+by-copy-in actual parameters, and the values of all objects accessible via
+access values from the parameters, are the same as they were at the earlier
+call. This permission applies even if the subprogram produces other side
+effects when called.
+
 !ACATS Test
 
 This is just a permission, it is hard to test usefully. (We could try to
@@ -421,7 +450,7 @@
 
 ****************************************************************
 
-From: Robert Dewar
+From: Gary Dismukes
 Sent: Friday, May  7, 2010  12:26 PM
 
 > I agree something like "inherently limited"

Questions? Ask the ACAA Technical Agent