CVS difference for arm/source/pre_con2.mss

Differences between 1.6 and version 1.7
Log of other versions for file arm/source/pre_con2.mss

--- arm/source/pre_con2.mss	2011/02/05 09:14:58	1.6
+++ arm/source/pre_con2.mss	2011/04/07 06:18:37	1.7
@@ -1,6 +1,6 @@
 @Part(precontainers-2, Root="ada.mss")
 @comment{ $Source: e:\\cvsroot/ARM/Source/pre_con2.mss,v $ }
-@comment{ $Revision: 1.6 $ $Date: 2011/02/05 09:14:58 $ $Author: randy $ }
+@comment{ $Revision: 1.7 $ $Date: 2011/04/07 06:18:37 $ $Author: randy $ }
 
 @LabeledAddedSubclause{Version=[2],Name=[The Generic Package Containers.Indefinite_Vectors]}
 
@@ -468,9 +468,9 @@
   (Container : @key[in] Holder;
    Process   : @key[not null access procedure] (Element : @key[in] Element_Type));]}
 
-@ChgRef{Version=[3],Kind=[AddedNormal]}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0069-1],ARef=[AI05-0248-1]}
 @ChgAdded{Version=[3],Text=[   @key[procedure] @AdaSubDefn{Update_Element}
-  (Container : @key[in] Holder;
+  (Container : @key[in out] Holder;
    Process   : @key[not null access procedure] (Element : @key[in out] Element_Type));]}
 
 @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0001-1]}
@@ -654,9 +654,9 @@
 @end{ImplNote}
 
 @begin{Example}
-@ChgRef{Version=[3],Kind=[AddedNormal]}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0069-1],ARef=[AI05-0248-1]}
 @ChgAdded{Version=[3],KeepNext=[T],Text=[@key[procedure] Update_Element
-  (Container : @key[in] Holder;
+  (Container : @key[in out] Holder;
    Process   : @key[not null access procedure] (Element : @key[in out] Element_Type));]}
 @end{Example}
 
@@ -703,11 +703,11 @@
 @ChgAdded{Version=[3],KeepNext=[T],Text=[@key[procedure] Move (Target : @key[in out] Holder; Source : @key[in out] Holder);]}
 @end{Example}
 
-@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0069-1]}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0069-1],ARef=[AI05-0248-1]}
 @ChgAdded{Version=[3],Type=[Trailing],Text=[If Target denotes the same object
-as Source, then Move has no effect. Otherwise, the element contained by Source
-(if any) is removed from Source and inserted into Target, replacing any
-preexisting content. Source is empty after a successful call to Move.]}
+as Source, then the operation has no effect. Otherwise, the element contained
+by Source (if any) is removed from Source and inserted into Target, replacing
+any preexisting content. Source is empty after a successful call to Move.]}
 
 @end{DescribeCode}
 
@@ -715,11 +715,11 @@
 
 @begin{Bounded}
 
-@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0022-1],ARef=[AI05-0069-1]}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0022-1],ARef=[AI05-0069-1],ARef=[AI05-0248-1]}
 @ChgAdded{Version=[3],Text=[@PDefn2{Term=(bounded error),Sec=(cause)}
 It is a bounded error for the actual function associated with a
 generic formal subprogram, when called as part of an operation of
-this package, to tamper with elements of any Holder parameter to the
+this package, to tamper with elements of any Holder parameter ofto the
 operation. Either Program_Error is raised, or the operation works as
 defined on the value of the Holder either prior to, or subsequent to,
 some or all of the modifications to the Holder.]}
@@ -872,18 +872,17 @@
 or Vector'Read of the other instance, respectively:]}
 
 @begin{Itemize}
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[the Element_Type parameters of the two instances
-    are statically matching subtypes of the same type (note that distinct
-    elaborations of a type declaration result in distinct types); and]}
+    are statically matching subtypes of the same type; and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the output generated by Element_Type'Output or
     Element_Type'Write is readable by Element_Type'Input or Element_Type'Read,
     respectively (where Element_Type denotes the type of the two actual
     Element_Type parameters); and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the preceding two conditions also hold for the
     Index_Type parameters of the instances.]}
 @end{Itemize}
@@ -975,7 +974,7 @@
   @ChgAdded{Version=[3],Noprefix=[T],Text=[If Capacity is 0, then the list capacity is the length of
     Source; if Capacity is equal to or greater than the length of Source,
     the list capacity equals the value of the Capacity parameter;
-    otherwise, the operation propagated Capacity_Error.]}
+    otherwise, the operation propagates Capacity_Error.]}
 @end{Indent}
 
   @ChgRef{Version=[3],Kind=[AddedNormal]}
@@ -1013,12 +1012,11 @@
 or List'Read of the other instance, respectively:]}
 
 @begin{Itemize}
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[the Element_Type parameters of the two instances
-    are statically matching subtypes of the same type (note that distinct
-    elaborations of a type declaration result in distinct types); and]}
+    are statically matching subtypes of the same type; and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the output generated by Element_Type'Output or
     Element_Type'Write is readable by Element_Type'Input or Element_Type'Read,
     respectively (where Element_Type denotes the type of the two actual
@@ -1159,18 +1157,17 @@
 or Map'Read of the other instance, respectively:]}
 
 @begin{Itemize}
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[the Element_Type parameters of the two instances
-    are statically matching subtypes of the same type (note that distinct
-    elaborations of a type declaration result in distinct types); and]}
+    are statically matching subtypes of the same type; and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the output generated by Element_Type'Output or
     Element_Type'Write is readable by Element_Type'Input or Element_Type'Read,
     respectively (where Element_Type denotes the type of the two actual
     Element_Type parameters); and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the preceding two conditions also hold for the
     Key_Type parameters of the instances.]}
 @end{Itemize}
@@ -1289,18 +1286,17 @@
 or Map'Read of the other instance, respectively:]}
 
 @begin{Itemize}
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[the Element_Type parameters of the two instances
-    are statically matching subtypes of the same type (note that distinct
-    elaborations of a type declaration result in distinct types); and]}
+    are statically matching subtypes of the same type; and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the output generated by Element_Type'Output or
     Element_Type'Write is readable by Element_Type'Input or Element_Type'Read,
     respectively (where Element_Type denotes the type of the two actual
     Element_Type parameters); and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the preceding two conditions also hold for the
     Key_Type parameters of the instances.]}
 @end{Itemize}
@@ -1434,12 +1430,11 @@
 or Set'Read of the other instance, respectively:]}
 
 @begin{Itemize}
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[the Element_Type parameters of the two instances
-    are statically matching subtypes of the same type (note that distinct
-    elaborations of a type declaration result in distinct types); and]}
+    are statically matching subtypes of the same type; and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the output generated by Element_Type'Output or
     Element_Type'Write is readable by Element_Type'Input or Element_Type'Read,
     respectively (where Element_Type denotes the type of the two actual
@@ -1560,12 +1555,11 @@
 or Set'Read of the other instance, respectively:]}
 
 @begin{Itemize}
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[the Element_Type parameters of the two instances
-    are statically matching subtypes of the same type (note that distinct
-    elaborations of a type declaration result in distinct types); and]}
+    are statically matching subtypes of the same type; and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the output generated by Element_Type'Output or
     Element_Type'Write is readable by Element_Type'Input or Element_Type'Read,
     respectively (where Element_Type denotes the type of the two actual
@@ -1660,17 +1654,17 @@
     Source.Count, the tree capacity equals the value of the Capacity parameter;
     otherwise, the operation propagates Capacity_Error.]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0136-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[In the five-parameter procedure Splice_Subtree, if
     Source is not the same object as Target, and if the sum of Target.Count and
-    Subtree_Count (Position) is greater than Target.Capacity, then
+    Subtree_Node_Count (Position) is greater than Target.Capacity, then
     Splice_Subtree propagates Capacity_Error.]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0136-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[In the five-parameter procedure Splice_Children,
     if Source is not the same object as Target, and if the sum of Target.Count
-    and Subtree_Count (Source_Parent)-1 is greater than Target.Capacity, then
-    Splice_Children propagates Capacity_Error.]}
+    and Subtree_Node_Count (Source_Parent)-1 is greater than Target.Capacity,
+    then Splice_Children propagates Capacity_Error.]}
 @end{Itemize}
 @end{StaticSem}
 
@@ -1694,12 +1688,11 @@
 or Tree'Read of the other instance, respectively:]}
 
 @begin{Itemize}
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[the Element_Type parameters of the two instances
-    are statically matching subtypes of the same type (note that distinct
-    elaborations of a type declaration result in distinct types); and]}
+    are statically matching subtypes of the same type; and]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0184-1]}
   @ChgAdded{Version=[3],Text=[the output generated by Element_Type'Output or
     Element_Type'Write is readable by Element_Type'Input or Element_Type'Read,
     respectively (where Element_Type denotes the type of the two actual
@@ -1850,10 +1843,11 @@
 @end{Example}
 
 @begin{DescribeCode}
-@ChgRef{Version=[3],Kind=[Added]}
+@ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0001-1],ARef=[AI05-0248-1]}
 @ChgAdded{Version=[3],Text=[Reorders the elements of an indexable structure,
 over the range First .. Last, such that the elements are sorted in the ordering
-determined by the generic formal function Before. The generic formal Before
+determined by the generic formal function Before; Before should return True if
+Left is to be sorted before Right. The generic formal Before
 compares the elements having the given indices, and the generic formal Swap
 exchanges the values of the indicated elements. Any exception raised during
 evaluation of Before or Swap is propagated.]}
@@ -1878,8 +1872,9 @@
 @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00302-03]}
 @ChgAdded{Version=[2],Text=[
 The worst-case time complexity of a call on an instance of
-Containers.Generic_Array_Sort or Containers.Generic_Constrained_Array_Sort
-should be @i{O}(@i<N>**2) or better, and the average time complexity should be better
+Containers.Generic_Array_Sort or
+Containers.Generic_Constrained_Array_Sort should be @i{O}(@i<N>**2) or better,
+and the average time complexity should be better
 than @i{O}(@i<N>**2), where @i<N> is the length of the Container parameter.]}
 @ChgImplAdvice{Version=[2],Kind=[AddedNormal],Text=[@ChgAdded{Version=[2],
 Text=[Containers.Generic_Array_Sort and Containers.Generic_Constrained_Array_Sort
@@ -1909,6 +1904,24 @@
   copy items unnecessarily. Bubble sort would not meet this advice, for
   instance.]}
 @end{Honest}
+
+@ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0248-1]}
+@ChgAdded{Version=[3],Text=[
+The worst-case time complexity of a call on an instance of
+Containers.Generic_Sort should be @i{O}(@i<N>**2) or better,
+and the average time complexity should be better
+than @i{O}(@i<N>**2), where @i<N> is the difference between the Last and First
+parameters plus 1.]}
+@ChgImplAdvice{Version=[3],Kind=[Added],Text=[@ChgAdded{Version=[3],
+Text=[Containers.Generic_Sort
+should have an average time complexity better than @i{O}(@i{N}**2) and worst case no
+worse than @i{O}(@i{N}**2).]}]}
+
+@ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0248-1]}
+@ChgAdded{Version=[3],Text=[Containers.Generic_Sort
+should minimize should minimize to the generic formal Swap.]}
+@ChgImplAdvice{Version=[3],Kind=[Added],Text=[@ChgAdded{Version=[3],
+Text=[Containers.Generic_Sort should minimize to the generic formal Swap.]}]}
 @end{ImplAdvice}
 
 @begin{Extend95}
@@ -1919,7 +1932,7 @@
 @end{Extend95}
 
 @begin{Extend2005}
-  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0001-1]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0001-1],ARef=[AI05-0248-1]}
   @ChgAdded{Version=[3],Text=[@Defn{extensions to Ada 2005} The generic
   procedure Containers.Generic_Sort is new.]}
 @end{Extend2005}
@@ -2251,8 +2264,7 @@
 
 @ChgRef{Version=[3],Kind=[AddedNormal]}
 @ChgAdded{Version=[3],Text=[   @key[protected type] @AdaTypeDefn{Queue}
-        (Capacity : Count_Type := Default_Capacity;
-         Ceiling: System.Any_Priority := Default_Ceiling)
+        (Ceiling: System.Any_Priority := Default_Ceiling)
            @key[with] Priority => Ceiling @key[is]
         @key[new] Queue_Interfaces.Queue @key[with]]}
 
@@ -2302,9 +2314,18 @@
 Before(Get_Priority(@i<E1>), Get_Priority(@i<E2>)) and
 Before(Get_Priority(@i<E2>), Get_Priority(@i<E1>)) both return False.]}
 
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0159-1],ARef=[AI05-0248-1]}
+@ChgAdded{Version=[3],Text=[The actual functions for Get_Priority and Before are
+expected to return the same value each time they are called with the same
+actuals, and should not modify their actuals. Before should define a strict weak
+ordering relationship (see @RefSecNum{Containers}). If the actual
+functions behave in some other manner, the behavior of Unbounded_Priority_Queues
+is unspecified.]}
+
 @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0159-1]}
 @ChgAdded{Version=[3],Text=[Enqueue inserts an item according to the order
-specified by the Before function on the result of Get_Priority on the elements.
+specified by the Before function on the result of Get_Priority on the elements;
+Before should return True if Left is to be inserted before Right.
 If the queue already contains elements equivalent to New_Item, then it is
 inserted after the existing equivalent elements.]}
 
@@ -2319,14 +2340,6 @@
 @ChgAdded{Version=[3],Text=[Dequeue_Only_High_Priority is the same as Dequeue,
 except that it blocks until the element @i<E> at the head of the queue satisfies
 Before(Get_Priority(@i<E>), Low_Priority).]}
-
-@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0159-1]}
-@ChgAdded{Version=[3],Text=[The actual functions for Get_Priority and Before are
-expected to return the same value each time they are called with the same
-actuals, and should not modify their actuals. Before should define a strict weak
-ordering relationship (see @RefSecNum{The Package Containers}). If the actual
-functions behave in some other manner, the behavior of Unbounded_Priority_Queues
-is unspecified.]}
 
 @end{StaticSem}
 

Questions? Ask the ACAA Technical Agent