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

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

--- ai12s/ai12-0061-1.txt	2014/06/19 04:53:17	1.3
+++ ai12s/ai12-0061-1.txt	2015/07/14 02:29:41	1.4
@@ -1,9 +1,18 @@
-!standard 4.3.3(5/2)                                14-05-19    AI12-0061-1/03
-!standard 4.3.3(23)
+!standard 4.3.3(5/2)                                15-07-13    AI12-0061-1/04
+!standard 4.3.3(6)
+!standard 4.3.3(17/3)
+!standard 4.3.3(20)
+!standard 4.3.3(23.1/4)
+!standard 4.3.3(32/3)
+!standard 4.3.3(43)
 !standard 3.1(6/3)
+!standard 3.3(6)
+!standard 3.3(18.1/3)
 !standard 3.3.1(23/3)
+!standard 5.5(6)
 !standard 8.6(4.1/3)
 !class Amendment 13-01-31
+!status ARG Approved 10-0-0  15-06-27
 !status work item 13-01-31
 !status received 13-01-24
 !priority Medium
@@ -20,7 +29,7 @@
 component.
 
 For instance, to call a function to initialize each element based on
-the index value, you would have use a for loop after the declaration
+the index value, you would have used a for loop after the declaration
 of the array object. But this isn't possible if the type is limited.
 
    (for I in 1 .. Count => Function_Returning_Lim (I))
@@ -34,19 +43,19 @@
 !proposal
 
 Add a for-loop-like syntax to array aggregates. This syntax is for named
-array aggregates (it cannot be used in positional aggregates).
+array aggregates only (it cannot be used in positional aggregates).
 
 !wording
 
 Append to the end of the long semicolon-separated list of 3.1(6/3):
 
-    ; a parameterized_array_component_association.
+    ; an iterated_component_association.
 
 Add after 3.3(6) (as a bulleted list item):
-    - The index parameter of a parameterized_array_component_association.
+    - The index parameter of an iterated_component_association.
 
 Add after 3.3(18.1/3) (as a bulleted list item):
-    - The index parameter of a parameterized_array_component_association.
+    - The index parameter of an iterated_component_association.
 
 Add ", iterated_component_association"
 in the comment-separated list of 3.3.1(23/3), immediately
@@ -67,6 +76,11 @@
   declares an index_parameter, an object of the corresponding index
   type.
 
+Modify 4.3.3(17/3):
+   The discrete_choice_list of an array_component_association (including
+   an iterated_component_association) is allowed to have a discrete_choice
+   that is a nonstatic choice_expression ...
+
 Append after 4.3.3(20) (at the end of the static semantics section)
 
   The subtype (and nominal subtype) of an index_parameter is the
@@ -75,32 +89,32 @@
 [We could define a more precise subtype, but the consensus at
 the Pittsburgh meeting was to keep this definition simple.]
 
-Add after 4.3.3(31) (at the end of the dynamic semantics section)
-[Editor's note: I think this is the wrong place, as it is after checks and bounds text;
-I think it belongs immediately after 4.3.3(23), in particular 4.3.3(23.1/4) needs to
-apply to evaluating these component expressions or <>s as it does to other kinds.]
+Add after 4.3.3(23.1/4):
 
   During an evaluation of the expression an iterated_component_association,
   the value of the corresponding index parameter is that of the
   corresponding index of the corresponding array component.
 
-AARM Note:
+AARM Ramification:
   Taken together with the preceding rule that "The array component
   expressions of the aggregate are evaluated in an arbitrary order",
   this implies that an index parameter can take on its values in an
   arbitrary order. This is different than, for example,
   a loop_parameter.
 
-Add after 4.3.3(32/3): [Editor's note: I moved this, Steve had it in the wrong
-place.]
+Add after 4.3.3(32/3):
 
    Note:
      An index_parameter is a constant object (see 3.3).
 
 [The note is intended to be similar to the note 5.5(10).]
+
+Add after 4.3.3(43):
+   G : constant Matrix :=
+          (for I in 1 .. 4 => 
+             (for J in 1 .. 4 => 
+                (if I=J then 1.0 else 0.0))); -- Identity matrix
 
-[Editor's note: Should we add an example after 4.3.3(45) for this new construct?
-It seems likely to be used.]
 
 In 5.5(6), replace "whose subtype" with "whose subtype (and nominal subtype)".
 [Because the nominal subtype for a loop_parameter was never defined.]
@@ -112,11 +126,8 @@
    iterated_component_association -- NO
 
 !discussion
-
-We don't need to change 4.3.3(17), since the wording for applies to
-all forms of array_component_associations, including these new ones.
 
-Similarly, 4.3.3(18) and 4.3.3(27) still work as the new syntax includes	
+4.3.3(18) and 4.3.3(27) still work as the new syntax includes	
 discrete_choice_list.
 
 Note that this proposal allows iterating on a discrete_choice_list, so
@@ -149,7 +160,7 @@
 
     task type Worker (Index : Worker_Indexes := 1) is ...
 
-    type Task_Array (Worker_Indexes) of Worker;
+    type Task_Array is array (Worker_Indexes) of Worker;
 
     function Creator (Index : Worker_Indexes) return Worker is
     begin

Questions? Ask the ACAA Technical Agent