CVS difference for ais/ai-20302.txt
--- ais/ai-20302.txt 2005/04/13 05:37:28 1.18
+++ ais/ai-20302.txt 2005/04/15 04:31:23 1.19
@@ -1,4 +1,4 @@
-!standard A.18 (00) 05-02-25 AI95-00302-03/11
+!standard A.18 (00) 05-04-14 AI95-00302-03/12
!standard A.18.1 (00)
!standard A.18.2 (00)
!standard A.18.3 (00)
@@ -417,8 +417,10 @@
subtype Index_Subtype is Index_Type;
type Vector is tagged private;
+ pragma preelaborable_initialization(Vector);
type Cursor is private;
+ pragma preelaborable_initialization(Cursor);
Empty_Vector : constant Vector;
@@ -949,7 +951,7 @@
New_Item : in Vector);
Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Container. Otherwise, if Length(New_Item) is 0, then
+designates an element in Container. Otherwise, if Length(New_Item) is 0, then
Insert does nothing.
If Before is No_Element, then the call is equivalent to Insert (Container,
Last_Index (Container) + 1), New_Item); otherwise the call is
@@ -968,7 +970,7 @@
Position : out Cursor);
Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Container.
+designates an element in Container.
If Before equals No_Element, then
let T be Last_Index (Container) + 1; otherwise, let T be To_Index (Before).
Insert (Container, T, New_Item) is called, and then Position is set to
@@ -1045,7 +1047,7 @@
Count : in Count_Type := 1);
Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Container.
+designates an element in Container.
If Before equals No_Element, then let T be Last_Index (Container) + 1;
otherwise, let T be To_Index (Before). Insert_Space (Container, T, Count) is
called, and then Position is set to To_Cursor (Container, T).
@@ -1476,8 +1478,10 @@
pragma Preelaborate (Doubly_Linked_Lists);
type List is tagged private;
+ pragma preelaborable_initialization(List);
type Cursor is private;
+ pragma preelaborable_initialization(Cursor);
Empty_List : constant List;
@@ -1748,7 +1752,7 @@
Count : in Count_Type := 1);
Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Container.
+designates an element in Container.
Otherwise, Insert inserts Count copies of
New_Item prior to the element designated by Before. If Before equals
No_Element, the new elements are inserted after the last node (if any). Any
@@ -1769,7 +1773,7 @@
Count : in Count_Type := 1);
Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Container.
+designates an element in Container.
Otherwise, Insert allocates Count copies of
New_Item, and inserts them prior to the element designated by Before. If Before
equals No_Element, the new elements are inserted after the last element (if
@@ -1783,7 +1787,7 @@
Count : in Count_Type := 1);
Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Container.
+designates an element in Container.
Otherwise, Insert inserts Count new elements
prior to the element designated by Before. If Before equals No_Element, the new
elements are inserted after the last node (if any). The new elements are
@@ -1799,8 +1803,8 @@
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 Delete removes (from Container) Count elements starting at the
-element designated by Position (or all of the elements if there are less than
-Count elements starting at Position).
+element designated by Position (or all of the elements starting at Position if
+there are fewer than Count elements starting at Position).
procedure Delete_First (Container : in out List;
Count : in Count_Type := 1);
@@ -1888,7 +1892,7 @@
Source : in out List);
Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Target. Otherwise, if Source denotes the
+designates an element in Target. Otherwise, if Source denotes the
same object as Target, the
operation has no effect. Otherwise, Splice reorders elements such that they are
removed from Source and moved to Target, immediately prior to Before. If Before
@@ -2457,8 +2461,10 @@
pragma Preelaborate (Hashed_Maps);
type Map is tagged private;
+ pragma preelaborable_initialization(Map);
type Cursor is private;
+ pragma preelaborable_initialization(Cursor);
Empty_Map : constant Map;
@@ -2807,8 +2813,10 @@
pragma Preelaborate (Ordered_Maps);
type Map is tagged private;
+ pragma preelaborable_initialization(Map);
type Cursor is private;
+ pragma preelaborable_initialization(Cursor);
Empty_Map : constant Map;
@@ -3535,8 +3543,10 @@
pragma Preelaborate (Hashed_Sets);
type Set is tagged private;
+ pragma preelaborable_initialization(Set);
type Cursor is private;
+ pragma preelaborable_initialization(Cursor);
Empty_Set : constant Set;
@@ -3850,8 +3860,10 @@
pragma Preelaborate (Ordered_Sets);
type Set is tagged private;
+ pragma preelaborable_initialization(Set);
type Cursor is private;
+ pragma preelaborable_initialization(Cursor);
Empty_Set : constant Set;
@@ -4542,7 +4554,7 @@
formerly active simply now become inactive. In particular, the internal
array is not altered, and no "finalization" of the active elements
occurs. (Of course, the elements are finalized when the master of the
-vector object is left.) If this is required, then then user must effect
+vector object is left.) If this is required, then the user must effect
this himself prior to clearing the vector. Here is one way to do that:
procedure Finalize (Element : in out My_Element_Type) is ...;
@@ -4594,9 +4606,9 @@
procedure Free is -- Convention Intrinsic.
new Ada.Unchecked_Deallocation (T, T_Access);
- procedure Process (V : in out Vector) is -- Convention Ada.
+ procedure Process (E : in out T_Access) is -- Convention Ada.
begin
- Free (V);
+ Free (E);
end Process;
begin
@@ -4691,9 +4703,9 @@
Update_Element (Last (L), Move_V'Access);
end;
-A new, default-initialized vector element is appended to L by
-Insert, and then immediately replaced by moving the internal array
-of vector V into that new, empty element, without any copying.
+A new, default-initialized vector element is appended to L, and then
+immediately replaced by moving the internal array of vector V into
+that new, empty element, without any copying.
If ordinary assignment of elements is acceptable, then Replace_Element
allows array-like modification of vector elements:
@@ -4962,7 +4974,7 @@
type Session_Type is limited record
Socket : Socket_Type;
...;
- end Session_Type;
+ end record;
end Sessions;
@@ -5063,7 +5075,7 @@
Scan_Line:
loop
- Find_Token (Line (Line_First .. Line_Last), ...);
+ Find_Token (Line (Line_First .. Line_Last), ..., Word_First, Word_Last);
exit when Word_Last = 0;
@@ -6349,8 +6361,10 @@
@b<subtype> Index_Subtype @b<is> Index_Type;
@b<type> Vector @b<is tagged private>;
+ @b<pragma> preelaborable_initialization(Vector);
@b<type> Cursor @b<is private>;
+ @b<pragma> preelaborable_initialization(Cursor);
Empty_Vector : @b<constant> Vector;
@@ -6809,7 +6823,7 @@
New_Item : @b<in> Vector);>
@xindent<Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Target. Otherwise, if Length(New_Item) is 0,
+designates an element in Target. Otherwise, if Length(New_Item) is 0,
then Insert does nothing.
If Before is No_Element, then the call is equivalent to Insert (Container,
Last_Index (Container) + 1), New_Item); otherwise the call is
@@ -6821,7 +6835,7 @@
Position : @b<out> Cursor);>
@xindent<Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Target.
+designates an element in Target.
If Before equals No_Element, then
let @i<T> be Last_Index (Container) + 1; otherwise, let @i<T> be
To_Index (Before). Insert (Container, @i<T>, New_Item) is called, and then
@@ -6894,7 +6908,7 @@
Count : @b<in> Count_Type := 1);>
@xindent<Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Target.
+designates an element in Target.
If Before equals No_Element, then let @i<T> be Last_Index (Container) + 1;
otherwise, let @i<T> be To_Index (Before). Insert_Space (Container, @i<T>, Count) is
called, and then Position is set to To_Cursor (Container, @i<T>).>
@@ -7190,8 +7204,10 @@
@b<pragma> Preelaborate (Doubly_Linked_Lists);
@b<type> List @b<is tagged private>;
+ @b<pragma> preelaborable_initialization(List);
@b<type> Cursor @b<is private>;
+ @b<pragma> preelaborable_initialization(Cursor);
Empty_List : @b<constant> List;
@@ -7447,7 +7463,7 @@
Count : @b<in> Count_Type := 1);>
@xindent<Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Container.
+designates an element in Container.
Otherwise, Insert inserts Count copies of
New_Item prior to the element designated by Before. If Before equals
No_Element, the new elements are inserted after the last node (if any). Any
@@ -7461,7 +7477,7 @@
Count : @b<in> Count_Type := 1);>
@xindent<Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Container.
+designates an element in Container.
Otherwise, Insert allocates Count copies of
New_Item, and inserts them prior to the element designated by Before. If Before
equals No_Element, the new elements are inserted after the last element (if
@@ -7475,7 +7491,7 @@
Count : @b<in> Count_Type := 1);>
@xindent<Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Container.
+designates an element in Container.
Otherwise, Insert inserts Count new elements
prior to the element designated by Before. If Before equals No_Element, the new
elements are inserted after the last node (if any). The new elements are
@@ -7491,8 +7507,8 @@
@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 Delete removes (from Container) Count elements starting at the
-element designated by Position (or all of the elements if there are less than
-Count elements starting at Position).>
+element designated by Position (or all of the elements starting at Position
+if there are fewer than Count elements starting at Position).>
@xcode<@b<procedure> Delete_First (Container : @b<in out> List;
Count : @b<in> Count_Type := 1);>
@@ -7550,7 +7566,7 @@
Source : @b<in out> List);>
@xindent<Program_Error is propagated unless Before is equal to No_Element or
-designated an element in Target. Otherwise, if Source denotes the
+designates an element in Target. Otherwise, if Source denotes the
same object as Target, the
operation has no effect. Otherwise, Splice reorders elements such that they are
removed from Source and moved to Target, immediately prior to Before. If Before
@@ -8016,8 +8032,10 @@
@b<pragma> Preelaborate (Hashed_Maps);
@b<type> Map @b<is tagged private>;
+ @b<pragma> preelaborable_initialization(Map);
@b<type> Cursor @b<is private>;
+ @b<pragma> preelaborable_initialization(Cursor);
Empty_Map : @b<constant> Map;
@@ -8231,8 +8249,10 @@
@b<pragma> Preelaborate (Ordered_Maps);
@b<type> Map @b<is tagged private>;
+ @b<pragma> preelaborable_initialization(Map);
@b<type> Cursor @b<is private>;
+ @b<pragma> preelaborable_initialization(Cursor);
Empty_Map : @b<constant> Map;
@@ -8865,8 +8885,10 @@
@b<pragma> Preelaborate (Hashed_Sets);
@b<type> Set @b<is tagged private>;
+ @b<pragma> preelaborable_initialization(Set);
@b<type> Cursor @b<is private>;
+ @b<pragma> preelaborable_initialization(Cursor);
Empty_Set : @b<constant> Set;
@@ -9169,8 +9191,10 @@
@b<pragma> Preelaborate (Ordered_Sets);
@b<type> Set @b<is tagged private>;
+ @b<pragma> preelaborable_initialization(Set);
@b<type> Cursor @b<is private>;
+ @b<pragma> preelaborable_initialization(Cursor);
Empty_Set : @b<constant> Set;
Questions? Ask the ACAA Technical Agent