CVS difference for ais/ai-20302.txt

Differences between 1.15 and version 1.16
Log of other versions for file 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