CVS difference for 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