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

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

--- ai05s/ai05-0269-1.txt	2012/01/27 23:23:12	1.4
+++ ai05s/ai05-0269-1.txt	2012/01/28 08:19:51	1.5
@@ -1,4 +1,4 @@
-!standard  3.2.4(0)                                 12-01-26    AI05-0269-1/04
+!standard  3.2.4(0)                                 12-01-27    AI05-0269-1/05
 !standard  3.5(56/2)
 !standard  3.10.1(13)
 !standard  4.1.5(0)
@@ -14,6 +14,18 @@
 !standard  13.13.2(26)
 !standard  A.16.1(0)
 !standard  A.17(19/2)
+!standard  A.18.2(147/2)
+!standard  A.18.2(230/2)
+!standard  A.18.3(86/2)
+!standard  A.18.3(144/2)
+!standard  A.18.4(41/2)
+!standard  A.18.5(61/2)
+!standard  A.18.6(94/2)
+!standard  A.18.7(36/2)
+!standard  A.18.7(96/2)
+!standard  A.18.8(85/2)
+!standard  A.18.9(113/2)
+!standard  A.18.10(0)
 !standard  A.18.18(0)
 !standard  A.18.21(0)
 !standard  A.18.22(0)
@@ -104,6 +116,14 @@
 (23) 13.11(21.5/3) says that "The Alignment parameter is at least D'Alignment ...". This
 allows passing 5 if D'Alignment is 4, and is generally weird.
 
+(24) The introductory text for A.18.2(147.13/3) and many others is clunky.
+
+(25) "the" loop parameter should be "a" loop parameter in A.18.2(230.2/3) and many other
+functions. We also should add cross-references to where these things are defined.
+
+(26) The definition of "decendant" and "ancestor" in A.18.10 is inconsistent (and inconsistent
+with the use of these terms elsewhere in the Standard). Some other text is unclear.
+
 !wording
 
 (1) Remove pragma Preelaborate from D.16.1(3/3).
@@ -201,6 +221,76 @@
 if @i<D> is a specific type, and otherwise is {a nonzero integral multiple}[at least] of
 the alignment of the specific type identified by the tag of the object being created. ..."
 
+(24) Modify A.18.2(147.13/3), A.18.2(147.16/3), A.18.3(86.6/3), A.18.3(86.9/3), A.18.4(41.6/3),
+A.18.4(41.9/3), A.18.7(36.5/3), A.18.7(96.10/3), A.18.10(125/3), A.18.10(126/3):
+
+"This function (combined with the <Constant_Indexing|Variable_Indexing> and Implicit_Dereference
+aspects) provides a convenient way to gain <read|read and write> access to {an}[the] individual
+element[s] of a {vector|list|map|set|tree}[container] {given}[starting with]
+<a cursor|an index value|a key value>."
+
+[Note: The <angle-brackets> text is to be the same as in the original paragraph; it is one of
+the enclosed options.]
+
+(25) Modify A.18.2(230.2/3), A.18.2(230.4/3), A.18.3(144.2/3), A.18.3(144.4/3), A.18.5(61.2/3),
+A.18.6(94.2/3), A.18.8(85.2/3), A.18.9(113.2/3), A.18.10(155/3), A.18.10(157/3), A.18.10(217/3):
+
+"...Iterate returns a <reversible|forward> iterator object {(see 5.5.1)} that will
+generate a value for [the] {a} loop parameter {(see 5.5.2)}
+designating each node in Container, ..."
+
+(26)
+
+Modify A.18.10(3/3):
+    ... The root node provides a place to add nodes to an otherwise
+    empty tree and represents the [bottom] {base} of the tree.
+
+Modify A.18.10(4/3):
+    A node that has no children is called a leaf node. The ancestors
+    of a node are the {node itself, its} parent node, the parent of the
+    parent node, and so on until a node with no parent is reached.
+    Similarly, the descendants of a node are the {node itself, its} child
+    nodes, the children of each child node, and so on.
+ 
+Modify A.18.10(5/3):
+    The nodes of a subtree can be visited in several different orders.
+    For a depth-first order, [the last step of] {after} visiting a
+    node{,} [is to visit] the nodes of its child list {are each
+    visited in depth-first order, with each child visited in natural order
+    (first child to last child)}[order, recursively].
+
+Modify A.18.10(140/3):
+    the subtree designated by Position (that is, {all descendants
+    of} the node designated by Position [and all of the descendant nodes
+    of that node] {including the node itself})
+
+Modify A.18.10(174/3):
+    ... Otherwise, Delete_Children removes (from Container) all of
+    the [child nodes of Parent along with their descendant nodes]
+    {descendants of Parent other than Parent itself}.
+
+Modify A.18.10(178/3) and A.18.10(181/3):
+    ... if Position designates an ancestor of Parent [or is equal to
+     Parent] {(including Parent itself)} ...
+
+Modify AARM notes A.18.10(178.a/3, 181.a/3, 187.a/3):
+    Reason: We can't allow moving the subtree of Position to a
+    {proper} descendant node of the subtree, as the descendant node
+    will be part of the subtree being moved. ...
+
+Modify A.18.10(186/3):
+
+   * if Source_Parent is an ancestor of Target_Parent {other than
+     Target_Parent itself}, then Constraint_Error is propagated; else
+
+Modify A.18.10(187/3, 188/3, 190/3):
+   ... the child elements (and [their] {the further} descendants)
+   of Source_Parent ...
+
+Modify A.18.10(190/3):
+   ... If Source_Parent is an ancestor of Target_Parent {other than
+   Target_Parent itself}, then ...
+
 !discussion
 
 For (23), we copy the wording of 13.3(26.3/2).
@@ -355,13 +445,13 @@
 !corrigendum 13.13.2(26)
 
 @drepl
-@xbullet<If T is an array type, S'Output first writes the bounds, and S'Input first
-reads the bounds. If T has discriminants without defaults, S'Output first writes the
+@xbullet<If @i<T> is an array type, S'Output first writes the bounds, and S'Input first
+reads the bounds. If @i<T> has discriminants without defaults, S'Output first writes the
 discriminants (using S'Write for each), and S'Input first reads the discriminants
 (using S'Read for each).>
 @dby
-@xbullet<If T is an array type, S'Output first writes the bounds, and S'Input first
-reads the bounds. If T has discriminants without defaults, S'Output first writes the
+@xbullet<If @i<T> is an array type, S'Output first writes the bounds, and S'Input first
+reads the bounds. If @i<T> has discriminants without defaults, S'Output first writes the
 discriminants (using the Write attribute of the discriminant type for each), and
 S'Input first reads the discriminants (using the Read attribute of the discriminant
 type for each).>
@@ -383,6 +473,87 @@
 If the external execution environment supports environment variables, then Clear deletes
 all existing environment variables with the given name. Otherwise, Program_Error
 is propagated.
+
+!corrigendum A.18.2(147/2)
+
+@dinsa
+Force a conflict; the real text is found in the conflict file.
+@dinst
+Nothing.
+
+!corrigendum A.18.2(230/2)
+
+@dinsa
+Force a conflict; the real text is found in the conflict file.
+@dinst
+Nothing.
+
+!corrigendum A.18.3(86/2)
+
+@dinsa
+Force a conflict; the real text is found in the conflict file.
+@dinst
+Nothing.
+
+!corrigendum A.18.3(144/2)
+
+@dinsa
+Force a conflict; the real text is found in the conflict file.
+@dinst
+Nothing.
+
+!corrigendum A.18.4(41/2)
+
+@dinsa
+Force a conflict; the real text is found in the conflict file.
+@dinst
+Nothing.
+
+!corrigendum A.18.5(61/2)
+@drepl
+Force a conflict; the real text is found in the conflict file.
+@dby
+Nothing.
+
+!corrigendum A.18.6(94/2)
+@drepl
+Force a conflict; the real text is found in the conflict file.
+@dby
+Nothing.
+
+!corrigendum A.18.7(36/2)
+
+@dinsa
+Force a conflict; the real text is found in the conflict file.
+@dinst
+Nothing.
+
+!corrigendum A.18.7(96/2)
+
+@dinsa
+Force a conflict; the real text is found in the conflict file.
+@dinst
+Nothing.
+
+!corrigendum A.18.8(85/2)
+
+@drepl
+Force a conflict; the real text is found in the conflict file.
+@dby
+Nothing.
+
+!corrigendum A.18.9(113/2)
+
+@drepl
+Force a conflict; the real text is found in the conflict file.
+@dby
+Nothing.
+
+!corrigendum A.18.10(0)
+
+@dinsc
+[A placeholder to cause a conflict; the real wording is found in the conflict
+file.]
 
 !corrigendum A.18.18(0)
 

Questions? Ask the ACAA Technical Agent