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

Differences between 1.9 and version 1.10
Log of other versions for file ai05s/ai05-0001-1.txt

--- ai05s/ai05-0001-1.txt	2009/07/07 04:30:45	1.9
+++ ai05s/ai05-0001-1.txt	2009/07/11 03:06:22	1.10
@@ -259,7 +259,7 @@
 
 If an operation attempts to modify the vector such that the position
 of the last element would be greater than Index_Type'Last, then the
-operation raises Constraint_Error.
+operation propagates Constraint_Error.
 
 Add the following after A.18.2(93/2):
 
@@ -295,7 +295,7 @@
 elements of Source.  If Capacity is 0, then the vector capacity is the
 length of Source; if Capacity is equal to or greater than
 Source.Length, the vector capacity is at least the specified value.
-Otherwise, the operation raises Capacity_Error.
+Otherwise, the operation propagates Capacity_Error.
 
 A.18.2(148/2) is replaced by the following:
 
@@ -389,7 +389,7 @@
 and elements of Source. If Capacity is 0, then the map capacity is the
 length of Source; if Capacity is equal to or greater than
 Source.Length, the map capacity is at least the specified value.
-Otherwise, the operation raises Capacity_Error.
+Otherwise, the operation propagates Capacity_Error.
 
 A.18.6 Containers.Ordered_Maps
 
@@ -453,7 +453,7 @@
 Source. If Capacity is 0, then the set capacity is the
 length of Source; if Capacity is equal to or greater than
 Source.Length, the set capacity is at least the specified value.
-Otherwise, the operation raises Capacity_Error.
+Otherwise, the operation propogates Capacity_Error.
 
 A.18.9 Containers.Ordered_Sets
 
@@ -526,7 +526,7 @@
     * The description of Reserve_Capacity is replaced by:
 
       If the specified Capacity is larger than the Container.Capacity,
-      then Reserve_Capacity raises Capacity_Error.  Otherwise, the
+      then Reserve_Capacity propagates Capacity_Error.  Otherwise, the
       operation has no effect.
 
 Implementation Advice
@@ -572,7 +572,7 @@
       check fails.
 
     * In procedure Assign, if Source length is greater than Target
-      capacity, then Capacity_Error is raised.
+      capacity, then Capacity_Error is propagated.
 
     * Function Copy is declared as follows:
 
@@ -582,17 +582,17 @@
       If Capacity is 0, then the list capacity is the length of
       Source; if Capacity is equal to or greater than Source.Length,
       the list capacity equals the value of the Capacity parameter;
-      otherwise, the operation raises Capacity_Error.
+      otherwise, the operation propagates Capacity_Error.
 
     * In the three-parameter procedure Splice whose Source has type List,
       if the sum of Target.Length and Source.Length is greater than
-      Target.Capacity, then Splice raises Capacity_Error.
+      Target.Capacity, then Splice propagates Capacity_Error.
 
       [Editor's note: This is referring to A.18.3(112/2), but of
       course we can't say that.]
 
     * In the four-parameter procedure Splice, if Target.Length
-      equals Target.Capacity, then Splice raises Capacity_Error.
+      equals Target.Capacity, then Splice propagates Capacity_Error.
 
       [Editor's note: This is referring to A.18.3(114/2).]
 
@@ -638,7 +638,7 @@
       by:
 
       If the specified Capacity is larger than the Container.Capacity,
-      then Reserve_Capacity raises Capacity_Error.  Otherwise, the
+      then Reserve_Capacity propagates Capacity_Error. Otherwise, the
       operation has no effect.
 
     * An additional operation is added immediately following Reserve_Capacity:
@@ -658,7 +658,7 @@
       in Source.  If Capacity is 0, then the map capacity is the
       length of Source; if Capacity is equal to or greater than
       Source.Length, the map capacity is the value of the Capacity
-      parameter; otherwise, the operation raises Capacity_Error.  If
+      parameter; otherwise, the operation propagates Capacity_Error.  If
       the Modulus argument is 0, then the map modulus is the value
       returned by a call to Default_Modulus with the map capacity as
       its argument; otherwise the map modulus is the value of the
@@ -705,7 +705,7 @@
       check fails.
 
     * In procedure Assign, if Source length is greater than Target
-      capacity, then Capacity_Error is raised.
+      capacity, then Capacity_Error is propagated.
 
     * The function Copy is replaced with:
 
@@ -716,7 +716,7 @@
       in Source.  If Capacity is 0, then the map capacity is the
       length of Source; if Capacity is equal to or greater than
       Source.Length, the map capacity is the specified value;
-      otherwise, the operation raises Capacity_Error.
+      otherwise, the operation propagates Capacity_Error.
 
 Implementation Advice
 
@@ -759,7 +759,7 @@
     * The description of Reserve_Capacity is replaced by:
 
       If the specified Capacity is larger than the Container.Capacity,
-      then Reserve_Capacity raises Capacity_Error.  Otherwise, the
+      then Reserve_Capacity propagates Capacity_Error. Otherwise, the
       operation has no effect.
 
     * An additional operation is added immediately following Reserve_Capacity:
@@ -779,7 +779,7 @@
       Source.  If Capacity is 0, then the set capacity is the length
       of Source; if Capacity is equal to or greater than
       Source.Length, the set capacity is the value of the Capacity
-      parameter; otherwise, the operation raises Capacity_Error.  If
+      parameter; otherwise, the operation propagates Capacity_Error.  If
       the Modulus argument is 0, then the set modulus is the value
       returned by a call to Default_Modulus with the set capacity as
       its argument; otherwise the set modulus is the value of the
@@ -826,7 +826,7 @@
       check fails.
 
     * In procedure Assign, if Source length is greater than Target
-      capacity, then Capacity_Error is raised.
+      capacity, then Capacity_Error is propagated.
 
     * The function Copy is replaced with:
 
@@ -837,7 +837,7 @@
       Source.  If Capacity is 0, then the set capacity is the length
       of Source; if Capacity is equal to or greater than
       Source.Length, the set capacity is the specified value;
-      otherwise, the operation raises Capacity_Error.
+      otherwise, the operation propagates Capacity_Error.
 
 Implementation Advice
 
@@ -1105,7 +1105,7 @@
 @dinst
 If an operation attempts to modify the vector such that the position
 of the last element would be greater than Index_Type'Last, then the
-operation raises Constraint_Error.
+operation propagates Constraint_Error.
 
 !corrigendum A.18.2(93/2)
 
@@ -1153,7 +1153,7 @@
 elements of Source. If Capacity is 0, then the vector capacity is the
 length of Source; if Capacity is equal to or greater than
 Source.Length, the vector capacity is at least the specified value.
-Otherwise, the operation raises Capacity_Error.>
+Otherwise, the operation propagates Capacity_Error.>
 
 !corrigendum A.18.2(148/2)
 
@@ -1295,7 +1295,7 @@
 and elements of Source. If Capacity is 0, then the map capacity is the
 length of Source; if Capacity is equal to or greater than
 Source.Length, the map capacity is at least the specified value.
-Otherwise, the operation raises Capacity_Error.>
+Otherwise, the operation propagates Capacity_Error.>
 
 !corrigendum A.18.6(16/2)
 
@@ -1396,7 +1396,7 @@
 Source. If Capacity is 0, then the set capacity is the
 length of Source; if Capacity is equal to or greater than
 Source.Length, the set capacity is at least the specified value.
-Otherwise, the operation raises Capacity_Error.>
+Otherwise, the operation propagates Capacity_Error.>
 
 !corrigendum A.18.9(16/2)
 
@@ -1463,7 +1463,7 @@
 @xbullet<The description of Reserve_Capacity is replaced by:>
 
 @xindent<If the specified Capacity is larger than the Container.Capacity,
-then Reserve_Capacity raises Capacity_Error. Otherwise, the operation has no effect.>
+then Reserve_Capacity propagates Capacity_Error. Otherwise, the operation has no effect.>
 
 @s8<@i<Implementation Advice>>
 
@@ -1504,7 +1504,7 @@
 check fails.>
 
 @xbullet<In procedure Assign, if Source length is greater than Target
-capacity, then Capacity_Error is raised.>
+capacity, then Capacity_Error is propagated.>
 
 @xbullet<Function Copy is declared as follows:>
 
@@ -1514,14 +1514,14 @@
 @xindent<If Capacity is 0, then the list capacity is the length of
 Source; if Capacity is equal to or greater than Source.Length,
 the list capacity equals the value of the Capacity parameter;
-otherwise, the operation raises Capacity_Error.>
+otherwise, the operation propagates Capacity_Error.>
 
 @xbullet<In the three-parameter procedure Splice whose Source has type List,
 if the sum of Target.Length and Source.Length is greater than
-Target.Capacity, then Splice raises Capacity_Error.>
+Target.Capacity, then Splice propagates Capacity_Error.>
 
 @xbullet<In the four-parameter procedure Splice, if Target.Length
-equals Target.Capacity, then Splice raises Capacity_Error.>
+equals Target.Capacity, then Splice propagates Capacity_Error.>
 
 @s8<@i<Implementation Advice>>
 
@@ -1562,7 +1562,7 @@
 @xbullet<The description of Reserve_Capacity is replaced by:>
 
 @xindent<If the specified Capacity is larger than the Container.Capacity,
-then Reserve_Capacity raises Capacity_Error. Otherwise, the operation has no effect.>
+then Reserve_Capacity propagates Capacity_Error. Otherwise, the operation has no effect.>
 
 @xbullet<An additional operation is added immediately following Reserve_Capacity:>
 
@@ -1582,7 +1582,7 @@
 in Source. If Capacity is 0, then the map capacity is the
 length of Source; if Capacity is equal to or greater than
 Source.Length, the map capacity is the value of the Capacity
-parameter; otherwise, the operation raises Capacity_Error.  If
+parameter; otherwise, the operation propagates Capacity_Error.  If
 the Modulus argument is 0, then the map modulus is the value
 returned by a call to Default_Modulus with the map capacity as
 its argument; otherwise the map modulus is the value of the
@@ -1627,7 +1627,7 @@
 check fails.>
 
 @xbullet<In procedure Assign, if Source length is greater than Target
-capacity, then Capacity_Error is raised.>
+capacity, then Capacity_Error is propagated.>
 
 @xbullet<The function Copy is replaced with:>
 
@@ -1638,7 +1638,7 @@
 in Source. If Capacity is 0, then the map capacity is the
 length of Source; if Capacity is equal to or greater than
 Source.Length, the map capacity is the specified value;
-otherwise, the operation raises Capacity_Error.>
+otherwise, the operation propagates Capacity_Error.>
 
 @s8<@i<Implementation Advice>>
 
@@ -1679,7 +1679,7 @@
 @xbullet<The description of Reserve_Capacity is replaced by:>
 
 @xindent<If the specified Capacity is larger than the Container.Capacity,
-then Reserve_Capacity raises Capacity_Error. Otherwise, the operation has no effect.>
+then Reserve_Capacity propagates Capacity_Error. Otherwise, the operation has no effect.>
 
 @xbullet<An additional operation is added immediately following Reserve_Capacity:>
 
@@ -1699,7 +1699,7 @@
 Source. If Capacity is 0, then the set capacity is the length
 of Source; if Capacity is equal to or greater than
 Source.Length, the set capacity is the value of the Capacity
-parameter; otherwise, the operation raises Capacity_Error. If
+parameter; otherwise, the operation propagates Capacity_Error. If
 the Modulus argument is 0, then the set modulus is the value
 returned by a call to Default_Modulus with the set capacity as
 its argument; otherwise the set modulus is the value of the
@@ -1740,11 +1740,11 @@
 Element_Type needs finalization.>
 
 @xbullet<If Insert (or Include) adds an element, a check is made that the
-capacity is not exceeded, and Capacity_Error is raised if this
+capacity is not exceeded, and Capacity_Error is propagated if this
 check fails.>
 
 @xbullet<In procedure Assign, if Source length is greater than Target
-capacity, then Capacity_Error is raised.>
+capacity, then Capacity_Error is propagated.>
 
 @xbullet<The function Copy is replaced with:>
 
@@ -1755,7 +1755,7 @@
 Source. If Capacity is 0, then the set capacity is the length
 of Source; if Capacity is equal to or greater than
 Source.Length, the set capacity is the specified value;
-otherwise, the operation raises Capacity_Error.>
+otherwise, the operation propagates Capacity_Error.>
 
 @s8<@i<Implementation Advice>>
 
@@ -4757,6 +4757,41 @@
 Did I miss any?]
 
 Any comments?
+
+****************************************************************
+
+From: Ed Schonberg
+Sent: Monday, July 6, 2009  11:28 PM
+
+> [I can't find any routines other than Insert or Include that can add an
+> element. Did I miss any?]
+
+Same should apply to Union, and the phrasing has to mention "one element or more".
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, July 6, 2009  11:59 PM
+
+Union doesn't "add" elements, it "inserts" them. One has to presume that means
+calling Insert. As such, this wording is correct as written.
+
+It should be noted that the wording of the entire containers library is completely
+confused as to whether elements are removed or deleted from containers. That probably
+ought to be fixed; I just finished writing a patch-around to deal with that problem
+(cursors designating removed elements are not considered invalid, at least if you read
+the standard strictly, which only makes "deleted elements" invalid). It probably
+would be best to rewrite all of the text that uses the term "deleted" to say "removed"
+instead ("removed" is far more common). We'll have to talk about that at a meeting;
+based on what it took me to create the AI, we're probably talking about 6-8 hours of
+work to do that (creating AI text, Amendment text, and consolidated Standard text);
+I have to wonder if this is good use of my time.
+
+If we do that (Intersection and Difference are among those that would need to be changed),
+I suppose we should also change Union to say that it "adds" elements, and then this
+wording would need to be changed. (It surely would be clearer, because it isn't clear
+what lower case "insert" refers to here, and we really do want all of the rules that
+apply to adding nodes to apply here.)
 
 ****************************************************************
 

Questions? Ask the ACAA Technical Agent