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

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

--- ai05s/ai05-0160-1.txt	2009/07/11 03:06:22	1.2
+++ ai05s/ai05-0160-1.txt	2009/12/18 05:54:17	1.3
@@ -1,4 +1,4 @@
-!standard A.18.2(251/2)                                              09-07-06  AI05-0160-1/01
+!standard A.18.2(251/2)                                              09-12-17  AI05-0160-1/02
 !standard A.18.2(253/2)
 !standard A.18.3(154/2)
 !standard A.18.3(156/2)
@@ -13,6 +13,8 @@
 !standard A.18.21(14/3)
 !standard A.18.22(11/3)
 !class binding interpretation 09-07-06
+!status Amendment 201Z 09-12-17
+!status ARG Approved 9-0-2  09-11-08
 !status work item 09-07-06
 !status received 09-06-27
 !priority Medium
@@ -46,16 +48,16 @@
 
 A similar concern exists for the new Assign procedure (added by AI05-0001-1).
 
-This is the sort of problem that the concept on invalid cursors was invented to handle.
+This is the sort of problem that the concept of invalid cursors was invented to handle.
 But assignments are not in the list of reasons that a cursor becomes invalid; should
 they be added? (Yes.)
 
 (2) Similarly, when a Splice moves a node from one list to another, any cursors pointing
 at that node need to become invalid. That's because cursors include an indication of the
 enclosing container; and clearly that has changed. For the single node Splice, the actual
-cursor passed in is redirected, but any copies of it should be invalid. For the entire list
-Splice, all of the cursors that designate elements of the source list should be invalid.
-Should this be fixed? (Of course.)
+cursor passed in is redirected, but any copies of the original cursor should be invalid.
+For the entire list Splice, all of the cursors that designate elements of the source list
+should be invalid. Should this be fixed? (Of course.)
 
 (3) When a bounded container is assigned while the source is in a state where tampering
 checks are required, that state will be copied to the target object. Unbounded forms can
@@ -88,8 +90,8 @@
     and Merge; and indirectly via calls to Assign and Move.
 
     [Editor's note: With the AI05-0001-1 definition of Move, we don't need the Move bullet
-     anymore. Should we delete it? We also would not need to mention Assign in the previous
-     bullet. Note that we still need the rules for maps and sets, though.]
+     anymore. It has been marked redundant. Note that we still need the rules for maps and sets,
+     though.]
 
 Add the following after A.18.3(154/2):
 
@@ -114,21 +116,20 @@
     Assign, and Move.
 
     [Editor's note: With the AI05-0001-1 definition of Move, we don't need the Move bullet
-     anymore. Should we delete it? We also would not need to mention Assign in the previously
-     added bullet.]
+     anymore. It has been marked Redundant.]
 
 Add the following after A.18.4(77/2):
 
- *  The map that contains the element it designates has been used as the Target of
+ *  The map that contains the node it designates has been used as the Target of
     a call to Assign, or as the target of an assignment_statement;
 
 Modify A.18.4(79/2):
 
- *  The element it designates has been [deleted]{removed} from the map{ that contains
-    the element}.
+ *  The node it designates has been [deleted]{removed} from the map{ that contains
+    the node}.
 
-    [Editor's note: We need to talk about *which* map it was removed from so that
-     in the case of Move the fact that it still is in some map is not important.]
+    [Editor's note: We talk about *which* map it was removed from so that this
+     wording is consistent with that of other containers.]
 
     AARM Ramification: This can happen directly via calls to Clear, Exclude, and Delete.
 
@@ -145,9 +146,8 @@
  *  The element it designates has been [deleted]{removed} from the set{ that contains
     the element}.
 
-    [Editor's note: We need to talk about *which* set it was removed from so that
-     in the case of Move the fact that it still is in some set, just not the original one,
-     does not change the fact that the cursor is invalid.]
+    [Editor's note: We talk about *which* set it was removed from so that this
+     wording is consistent with that of other containers.]
 
     AARM Ramification: Removing can happen directly via calls to Clear, Exclude, Delete, and
     Update_Element_Preserving_Key, and indirectly via calls to procedures Intersection,
@@ -160,54 +160,54 @@
 
 Bounded Errors
 
-It is a bounded error to use a vector if it was the target of an
+It is a bounded error to use a bounded vector if it was the target of an
 assignment_statement whose source was in the middle of an operation
-that disallows tampering with cursors [Redundant: or elements].
+that disallows tampering with elements [Redundant: or cursors].
 Either Program_Error is raised, or the operation proceeds as defined.
 
 Add after A.18.18(13/3) [from AI05-0001-1]
 
 Bounded Errors
 
-It is a bounded error to use a list if it was the target of an
+It is a bounded error to use a bounded list if it was the target of an
 assignment_statement whose source was in the middle of an operation
-that disallows tampering with cursors [Redundant: or elements].
+that disallows tampering with elements [Redundant: or cursors].
 Either Program_Error is raised, or the operation proceeds as defined.
 
 Add after A.18.19(14/3) [from AI05-0001-1]
 
 Bounded Errors
 
-It is a bounded error to use a map if it was the target of an
+It is a bounded error to use a bounded map if it was the target of an
 assignment_statement whose source was in the middle of an operation
-that disallows tampering with cursors [Redundant: or elements].
+that disallows tampering with elements [Redundant: or cursors].
 Either Program_Error is raised, or the operation proceeds as defined.
 
 Add after A.18.20(10/3) [from AI05-0001-1]
 
 Bounded Errors
 
-It is a bounded error to use a map if it was the target of an
+It is a bounded error to use a bounded map if it was the target of an
 assignment_statement whose source was in the middle of an operation
-that disallows tampering with cursors [Redundant: or elements].
+that disallows tampering with elements [Redundant: or cursors].
 Either Program_Error is raised, or the operation proceeds as defined.
 
 Add after A.18.21(14/3) [from AI05-0001-1]
 
 Bounded Errors
 
-It is a bounded error to use a set if it was the target of an
+It is a bounded error to use a bounded set if it was the target of an
 assignment_statement whose source was in the middle of an operation
-that disallows tampering with cursors [Redundant: or elements].
+that disallows tampering with elements [Redundant: or cursors].
 Either Program_Error is raised, or the operation proceeds as defined.
 
 Add after A.18.22(11/3) [from AI05-0001-1]
 
 Bounded Errors
 
-It is a bounded error to use a set if it was the target of an
+It is a bounded error to use a bounded set if it was the target of an
 assignment_statement whose source was in the middle of an operation
-that disallows tampering with cursors [Redundant: or elements].
+that disallows tampering with elements [Redundant: or cursors].
 Either Program_Error is raised, or the operation proceeds as defined.
 
 !discussion
@@ -216,13 +216,13 @@
 lists talk about "removing elements" from lists, while A.18.3(156/2) talks about
 "deleting elements". So we just need to change A.18.3(156/2) to talk about
 "removing elements" and then Clear, Splice, and Merge are clearly covered. So
-is Assign and Move (with its AI05-0001-1 definition, not the original one) - as
-they both reference Clear, but not an assignment_statment (so we still need new
+are Assign and Move (with its AI05-0001-1 definition, not the original one) - as
+they both reference Clear, but not an assignment_statement (so we still need new
 wording for that case).
 
-Note that vectors has a similar problem, as Clear, Set_Length, and Merge are
+Note that vectors have a similar problem, as Clear, Set_Length, and Merge are
 defined in terms of "removing" elements, rather than deleting them. The different
-terminology is distrubing. Similar comments apply to maps and sets, too.
+terminology is disturbing. Similar comments apply to maps and sets, too.
 
 !corrigendum A.18.2(251/2)
 
@@ -259,17 +259,17 @@
 !corrigendum A.18.4(77/2)
 
 @dinsa
-@xbullet<The map that contains the element it designates has been finalized;>
+@xbullet<The map that contains the node it designates has been finalized;>
 @dinst
-@xbullet<The map that contains the element it designates has been used as the Target of
+@xbullet<The map that contains the node it designates has been used as the Target of
 a call to Assign, or as the target of an @fa<assignment_statement>;>
 
 !corrigendum A.18.4(79/2)
 
 @drepl
-@xbullet<The element it designates has been deleted from the map.>
+@xbullet<The node it designates has been deleted from the map.>
 @dby
-@xbullet<The element it designates has been removed from the map that contains
+@xbullet<The node it designates has been removed from the map that contains
 the element.>
 
 !corrigendum A.18.7(98/2)
@@ -423,7 +423,7 @@
 
   * It is a bounded error to use a list L if it was the target of an
     assignment_statement whose source was in the middle of an operation
-    that disallows tampering with cursors [Redundant: or elements].
+    that disallows tampering with elements [Redundant: or cursors].
     Either Program_Error is raised, or the operation proceeds as defined.
 
 Note that saying "disallows tampering with cursors" is adequate, since tampering

Questions? Ask the ACAA Technical Agent