CVS difference for ai12s/ai12-0280-2.txt

Differences between 1.5 and version 1.6
Log of other versions for file ai12s/ai12-0280-2.txt

--- ai12s/ai12-0280-2.txt	2019/07/26 04:54:36	1.5
+++ ai12s/ai12-0280-2.txt	2019/07/26 05:51:09	1.6
@@ -1,5 +1,12 @@
-!standard 6.1.1(24/3)                                  19-07-09  AI12-0280-2/04
-!standard 6.1.1(26.4/4)
+!standard 6.1.1(20/3)                                  19-07-25  AI12-0280-2/05
+!standard 6.1.1(21/3)
+!standard 6.1.1(22/3)
+!standard 6.1.1(22.1/4)
+!standard 6.1.1(22.2/5)
+!standard 6.1.1(23/3)
+!standard 6.1.1(24/3)
+!standard 6.1.1(26/4)
+!standard 6.1.1(27/5)
 !standard 6.1.1(39/5)
 !class Amendment 18-05-15
 !status work item 18-05-15
@@ -31,11 +38,15 @@
 without side-effects that would be determined when evaluated as part of the
 postcondition expression.
 
-We then use that to define the term "determined to be unevaluated" to be used
-on subexpressions in a postcondition that are not going to evaluated given
-the value of the known-on-entry subexpression. (Note: which subexpressions
-are determined to be unevaluated is calculated at runtime; this term is
-referring to a Dynamic Semantics property.)
+We replace the Ada 2012 term "potentially unevaluated" by the new terms
+"conditionally evaluated", "unconditionally evaluated", and "repeatedly
+evaluated".
+
+We then use those terms to define the term "determined to be unevaluated"
+to be used on subexpressions in a postcondition that are not going to
+evaluated given the value of the known-on-entry subexpression. (Note: which
+subexpressions are determined to be unevaluated is calculated at runtime;
+this term is referring to a Dynamic Semantics property.)
 
 Finally, we use the above terms to define when parts of the postcondition
 are evaluated and when the prefix of Old attribute references is not evaluated.
@@ -50,7 +61,7 @@
   * a static subexpression (see 4.9);
 
   * a literal whose type does not have any Integer_Literal, Real_Literal, or
-    String_Literal aspect specified, or, the function specified by such an
+    String_Literal aspect specified, or the function specified by such an
     attribute has aspect Global specified to be null;
 
   AARM Reason: We mention literals explicitly in case they are not static (as
@@ -76,7 +87,7 @@
     type;
 
       AARM Ramification: All such parameters are by-copy, so the value
-      won't change during the execution of the expression.
+      won't change during the execution of the subprogram.
 
   * an Old attribute_reference;
 
@@ -343,5 +354,29 @@
 I got rid of the notwithstandings as requested, it actually isn't too bad. I
 also added the new form of case statement. And fixed the literal case.
 [This is version /03 of the AI - Editor.]
+
+****************************************************************
+
+From: Jeff Cousins
+Sent: Thursday, July 25, 2019  1:10 PM
+
+The wording includes:
+
+  * a name statically denoting a non-aliased /in/ parameter of an elementary
+    type;
+
+    AARM Ramification: All such parameters are by-copy, so the value won't
+    change during the execution of the expression.
+
+Do we really mean expression, or should it be subprogram?  I thought we were
+concerned about it changing between subprogram entry and the postcondition,
+rather than it changing in the midst of evaluating the postcondition expression.
+
+****************************************************************
+
+From: Steve Baird
+Sent: Thursday, July 25, 2019  1:19 PM
+
+Good point.
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent