CVS difference for ai12s/ai12-0422-1.txt

Differences between 1.3 and version 1.4
Log of other versions for file ai12s/ai12-0422-1.txt

--- ai12s/ai12-0422-1.txt	2021/01/19 07:03:07	1.3
+++ ai12s/ai12-0422-1.txt	2021/01/23 05:57:34	1.4
@@ -1,7 +1,9 @@
-!standard 3.3(13/3)                                  21-01-15  AI12-0422-1/02
+!standard 3.3(13/3)                                  21-01-21  AI12-0422-1/03
 !standard 6.1.1(22.1/5)
 !standard 6.1.2(10/5)
 !class Amendment 21-01-14
+!status Amendment 1-2012 21-01-21
+!status ARG Approved 16-0-0  21-01-20
 !status work item 21-01-14
 !status received 21-01-14
 !priority Low
@@ -24,9 +26,9 @@
 Second, even if that was correct, it seems to require breaking privacy to
 check this rule. If a component has a private type, and the full type has
 a controlled component, then certainly a variable view of a part of the 
-object exists. That is what we're trying to fix. But this definition is 
-eventually used in a Legality Rule, so breaking privacy should be a last
-resort.
+object exists. That is what we're trying to avoid depending on. But this
+definition is eventually used in a Legality Rule, so breaking privacy 
+should be a last resort.
 
 !proposal
 
@@ -48,7 +50,7 @@
 
    AARM Reason: This definition can be used in Legality Rules as it respects
    privacy. It is an assume-the-worst rule, as all private types and
-   private extensions are assumed to have a controlled component.
+   private extensions might have a controlled component.
 
 Modify 6.1.1(22.1/5):
 
@@ -59,7 +61,7 @@
 Modify 6.1.2(10/5):
 
 The Global aspect identifies the set of variables (which, for the purposes 
-of this clause includes all constants {except those which are known to have
+of this clause{,} includes all constants {except those which are known to have
 no variable views (see 3.3)}[with some part being immutably limited, or of a 
 controlled type, private type, or private extension]) that are global to a
 callable entity or task body, and that are read or updated as part of the 
@@ -83,42 +85,6 @@
 object. Repeating that list in each rule just makes it more likely to make
 a mistake, and it will simplify writing any similar rules in the future.
 
-
-** Temporary discussion **
-
-This issue was raised in Steve Baird's AARM review. We ran out of time to
-resolve it before the agenda deadline.
-
-Steve had noted that 6.1.2(10/5) includes a list of items rather than depending
-upon 3.3(13/3). Specifically:
-
-  "...includes all constants with some part being immutably limited, or of a 
-  controlled type, private type, or private extension ..."
-
-He wondered why the difference. Randy explained that the reason is that this 
-list avoids breaking privacy for a Legality Rule by looking into private 
-types.
-
-But the 6.1.1(22.1/5) definition ultimately is used in a Legality Rule. So it
-appears these should be the same.
-
-Randy suggested just giving an AARM Ramification to help read 3.3(13/3):
-
-   AARM Ramification: If some part has a variable view, then the object as a
-   whole has a variable view, and not all views of the object are constant.
-   That's true even if only a subcomponent has a variable view.
-
-But this does not address the privacy problem, and probably 3.3(13/3) would be
-better reworded in any case.
-
-Tucker suggested using "all parts are known to have all views constant". Randy
-thinks that needs some definition or a lengthy explanatory note. And it seems
-backwards for the privacy issue.
-
-Randy then created this AI from his fertile imagination. He has no illusions
-that anyone else agrees with it. He's expecting someone to complain about the
-double negative (which he has carefully hidden in the wording).
-
 !ASIS
 
 No ASIS Effect.
@@ -126,9 +92,10 @@
 !ACATS test
 
 No separate ACATS tests ought to be needed. One could imagine a B-Test that
-uses a constant array with a component of a private type as the prefix of
-'Old and checks that a dynamic index is not allowed. But this seems rather
-low value as it is rather unlikely.
+uses an indexing of a constant array object with a component of a private type
+as the prefix of 'Old. The test would check that a dynamic index of the array
+is not allowed when the reference is conditionally evaluated. But this seems 
+of low value as it is rather unlikely.
 
 !appendix
 

Questions? Ask the ACAA Technical Agent