CVS difference for ais/ai-20302.txt
--- ais/ai-20302.txt 2005/01/28 02:10:54 1.15
+++ ais/ai-20302.txt 2005/02/08 07:12:43 1.16
@@ -1,4 +1,4 @@
-!standard A.18 (00) 04-12-30 AI95-00302-03/09
+!standard A.18 (00) 05-02-02 AI95-00302-03/10
!standard A.18.1 (00)
!standard A.18.2 (00)
!standard A.18.3 (00)
@@ -15,6 +15,8 @@
!standard A.18.14 (00)
!standard A.18.15 (00)
!standard A.18.16 (00)
+!standard A.4.7 (1)
+!standard A.4.7 (29)
!standard A.4.9 (00)
!class amendment 04-01-14
!status Amendment 200Y 04-12-31
@@ -165,7 +167,7 @@
!wording
-Add Ada.Strings.Hash and Ada.Strings.Unbounded.Hash to A.4.7(29).
+Add Ada.Strings.Hash and Ada.Strings.Unbounded.Hash to A.4.7(1) and A.4.7(29).
[This gives us Wide_ versions of these functions.]
@@ -1259,8 +1261,8 @@
Returns True if Position designates an element, and returns False otherwise.
AARM Note: To Be Honest: This function may not detect cursors that
-designate deleted elements; such cursors are invalid (see below) and any
-use of them (including in this routine) is erroneous.
+designate deleted elements; such cursors are invalid (see below) and the
+result of Has_Element for an invalid cursor is unspecified (but not erroneous).
procedure Iterate
(Container : in Vector;
@@ -1339,7 +1341,7 @@
the element the
cursor designates with an index value (or a cursor designating an element at
such an index value) less than or equal to the index value of the element
- designated by the cursor;
+ designated by the cursor; or
* The vector that contains the element it designates has been passed to an
instance of Generic_Sort.
@@ -1373,7 +1375,7 @@
created:
* The vector that contains the element it designates has been finalized;
* The vector that contains the element it designates has been used as the
- Source or Target of a call to Move;
+ Source or Target of a call to Move; or
* The element it designates has been deleted.
The result of "=" or Has_Element is unspecified if it is called with an
@@ -1396,9 +1398,9 @@
Containers.Vectors should be implemented similarly to an array. In particular,
if the length of a vector is *N*, then
* the worst-case time complexity of Append with Count=1 and Element should
- be O(log N);
- * the worst-case time complexity of Prepend with Count=1 or Delete_First
- with Count=1 of the vector should be O(N log N).
+ be O(log N); and
+ * the worst-case time complexity of Prepend with Count=1 and Delete_First
+ with Count=1 should be O(N log N).
AARM Note
We do not mean to overly constrain implementation strategies here. However, it
@@ -1428,7 +1430,7 @@
Move should not copy elements, and should minimize copying of internal
data structures.
-AARM Note: Usually that can be accomplishing simply by moving the pointer(s) to
+AARM Note: Usually that can be accomplished simply by moving the pointer(s) to
the internal data structures from the Source vector to the Target vector.
NOTE:
@@ -1995,8 +1997,8 @@
Returns True if Position designates an element, and returns False otherwise.
AARM Note: To Be Honest: This function may not detect cursors that
-designate deleted elements; such cursors are invalid (see below) and any
-use of them (including in this routine) is erroneous.
+designate deleted elements; such cursors are invalid (see below) and the
+result of Has_Element for an invalud cursor is unspecified (but not erroneous).
procedure Iterate
(Container : in List;
@@ -2032,7 +2034,7 @@
created:
* The list that contains the element it designates has been finalized;
* The list that contains the element it designates has been used as the
- Source or Target of a call to Move;
+ Source or Target of a call to Move; or
* The element it designates has been deleted.
The result of "=" or Has_Element is unspecified if it is called with an invalid
@@ -2081,7 +2083,7 @@
Move should not copy elements, and should minimize copying of internal
data structures.
-AARM Note: Usually that can be accomplishing simply by moving the pointer(s) to
+AARM Note: Usually that can be accomplished simply by moving the pointer(s) to
the internal data structures from the Source container to the Target container.
NOTE
@@ -2380,7 +2382,8 @@
Returns True if Position designates a node, and returns False otherwise.
AARM Note: To Be Honest: This function may not detect cursors that designate
-deleted elements; such cursors are invalid (see below).
+deleted elements; such cursors are invalid (see below); the result of
+Has_Element for invalid cursors is unspecified (but not erroneous).
procedure Iterate
(Container : in Map;
@@ -2404,7 +2407,7 @@
created:
* The map that contains the node it designates has been finalized;
* The map that contains the node it designates has been used as the
- Source or Target of a call to Move;
+ Source or Target of a call to Move; or
* The node it designates has been deleted from the map.
The result of "=" or Has_Element is unspecified if these functions are called
@@ -2432,7 +2435,7 @@
Move should not copy elements, and should minimize copying of internal
data structures.
-AARM Note: Usually that can be accomplishing simply by moving the pointer(s) to
+AARM Note: Usually that can be accomplished simply by moving the pointer(s) to
the internal data structures from the Source container to the Target container.
A.18.5 The Package Containers.Hashed_Maps
@@ -3332,7 +3335,8 @@
Returns True if Position designates an element, and returns False otherwise.
AARM Note: To Be Honest: This function may not detect cursors that designate
-deleted elements; such cursors are invalid (see below).
+deleted elements; such cursors are invalid (see below); the result of
+Has_Element for invalid cursors is unspecified (but not erroneous).
procedure Iterate
(Container : in Set;
@@ -3483,7 +3487,7 @@
created:
* The set that contains the element it designates has been finalized;
* The set that contains the element it designates has been used as the
- Source or Target of a call to Move;
+ Source or Target of a call to Move; or
* The element it designates has been deleted from the set.
The result of "=" or Has_Element is unspecified if these functions are called
@@ -3511,7 +3515,7 @@
Move should not copy elements, and should minimize copying of internal
data structures.
-AARM Note: Usually that can be accomplishing simply by moving the pointer(s) to
+AARM Note: Usually that can be accomplished simply by moving the pointer(s) to
the internal data structures from the Source container to the Target container.
A.18.8 The Package Containers.Hashed_Sets
@@ -3784,10 +3788,10 @@
Reserve_Capacity allocates a new hash table such that the length of the
resulting set can become at least the value Capacity without requiring an
additional call to Reserve_Capacity, and is large enough to hold the current
-length of Container. Reserve_Capacity then rehashes the nodes in Container onto
-the new hash table. It replaces the old hash table with the new hash table, and
-then deallocates the old hash table. Any exception raised during allocation is
-propagated and Container is not modified.
+length of Container. Reserve_Capacity then rehashes the elements in Container
+onto the new hash table. It replaces the old hash table with the new hash
+table, and then deallocates the old hash table. Any exception raised during
+allocation is propagated and Container is not modified.
Reserve_Capacity tampers with the cursors of Container.
@@ -6219,6 +6223,37 @@
!comment We assume that AI-344 is included in the Amendment in the wording
!comment below.
+
+!corrigendum A.4.7(1)
+
+@drepl
+Facilities for handling strings of Wide_Character elements are found in the
+packages Strings.Wide_Maps, Strings.Wide_Fixed, Strings.Wide_Bounded,
+Strings.Wide_Unbounded, and Strings.Wide_Maps.Wide_Constants. They provide the
+same string-handling operations as the corresponding packages for strings of
+Character elements.
+@dby
+Facilities for handling strings of Wide_Character elements are found in the
+packages Strings.Wide_Maps, Strings.Wide_Fixed, Strings.Wide_Bounded,
+Strings.Wide_Unbounded, and Strings.Wide_Maps.Wide_Constants, and in the
+functions Strings.Wide_Hash and Strings.Wide_Unbounded.Wide_Hash. They provide
+the same string-handling operations as the corresponding packages and functions
+for strings of Character elements.
+
+
+!corrigendum A.4.7(29)
+
+@drepl
+For each of the packages Strings.Fixed, Strings.Bounded, Strings.Unbounded, and
+Strings.Maps.Constants the corresponding wide string package has the same
+contents except that
+@dby
+For each of the packages Strings.Fixed, Strings.Bounded, Strings.Unbounded, and
+Strings.Maps.Constants, and for functions Strings.Hash and
+Strings.Unbounded.Hash, the
+corresponding wide string package has the same contents except that
+
+
!corrigendum A.4.9
@dinsc
@@ -7090,7 +7125,7 @@
contains the element the
cursor designates with an index value (or a cursor designating an element at
such an index value) less than or equal to the index value of the element
-designated by the cursor;>
+designated by the cursor; or>
@xbullet<The vector that contains the element it designates has been passed
to an instance of Generic_Sort.>
@@ -7111,7 +7146,7 @@
@xbullet<The vector that contains the element it designates has been finalized;>
@xbullet<The vector that contains the element it designates has been used as
-the Source or Target of a call to Move;>
+the Source or Target of a call to Move; or>
@xbullet<The element it designates has been deleted.>
The result of "=" or Has_Element is unspecified if it is called with an
@@ -7129,9 +7164,9 @@
if the length of a vector is @i<N>, then
@xbullet<the worst-case time complexity of Append with Count=1 and Element
-should be O(log @i<N>);>
-@xbullet<the worst-case time complexity of Prepend with Count=1 or Delete_First
-with Count=1 of the vector should be O(@i<N> log @i<N>).>
+should be O(log @i<N>); and>
+@xbullet<the worst-case time complexity of Prepend with Count=1 and Delete_First
+with Count=1 should be O(@i<N> log @i<N>).>
The worst-case time complexity of a call on an instantiation of
Containers.Vectors.Generic_Sort should be O(@i<N>**2), and
@@ -7673,7 +7708,7 @@
created:
@xbullet<The list that contains the element it designates has been finalized;>
@xbullet<The list that contains the element it designates has been used as the
- Source or Target of a call to Move;>
+ Source or Target of a call to Move; or>
@xbullet<The element it designates has been deleted.>
The result of "=" or Has_Element is unspecified if it is called with an invalid
@@ -7969,7 +8004,7 @@
created:
@xbullet<The map that contains the node it designates has been finalized;>
@xbullet<The map that contains the node it designates has been used as the
-Source or Target of a call to Move;>
+Source or Target of a call to Move; or>
@xbullet<The node it designates has been deleted from the map.>
The result of "=" or Has_Element is unspecified if these functions are called
@@ -8517,7 +8552,7 @@
@i<S> if:
@xbullet<it inserts or deletes elements of @i<S>, that is, it calls the Insert,
-Include, Clear, Delete, Exclude, or Replace_Element procedures with S as
+Include, Clear, Delete, Exclude, or Replace_Element procedures with @i<S> as
a parameter; or>
@xbullet<it finalizes @i<S>; or>
@@ -8803,11 +8838,11 @@
@xindent<If Position equals No_Element, then Constraint_Error is propagated. If
Position does not designate an element in Container, then Program_Error is
propagated. Otherwise, Update_Element_Preserving_Key uses Key to save the key
-value K of the element designated by Position. Update_Element_Preserving_Key
+value @i<K> of the element designated by Position. Update_Element_Preserving_Key
then calls Process.@b<all> with that element as the argument. Program_Error is
propagated if Process.@b<all> tampers with the elements of Container. Any
exception raised by Process.@b<all> is propagated. After Process.@b<all>
-returns, Update_Element_Preserving_Key checks if K determines the same
+returns, Update_Element_Preserving_Key checks if @i<K> determines the same
equivalence class as that for the new element; if not, the element is removed
from the set and Program_Error is propagated.>
@@ -8820,7 +8855,7 @@
was created:
@xbullet<The set that contains the element it designates has been finalized;>
@xbullet<The set that contains the element it designates has been used as the
-Source or Target of a call to Move;>
+Source or Target of a call to Move; or>
@xbullet<The element it designates has been deleted from the set.>
The result of "=" or Has_Element is unspecified if these functions are called
@@ -9106,10 +9141,10 @@
@xindent<Reserve_Capacity allocates a new hash table such that the length of the
resulting set can become at least the value Capacity without requiring an
additional call to Reserve_Capacity, and is large enough to hold the current
-length of Container. Reserve_Capacity then rehashes the nodes in Container onto
-the new hash table. It replaces the old hash table with the new hash table, and
-then deallocates the old hash table. Any exception raised during allocation is
-propagated and Container is not modified.>
+length of Container. Reserve_Capacity then rehashes the elements in Container
+onto the new hash table. It replaces the old hash table with the new hash
+table, and then deallocates the old hash table. Any exception raised during
+allocation is propagated and Container is not modified.>
@xindent<Reserve_Capacity tampers with the cursors of Container.>
Questions? Ask the ACAA Technical Agent