CVS difference for ai05s/ai05-0184-1.txt

Differences between 1.2 and version 1.3
Log of other versions for file ai05s/ai05-0184-1.txt

--- ai05s/ai05-0184-1.txt	2009/11/04 06:26:38	1.2
+++ ai05s/ai05-0184-1.txt	2010/02/25 03:40:30	1.3
@@ -1,4 +1,4 @@
-!standard A.18.17 (0)                                09-11-02  AI05-0184-1/02
+!standard A.18.17 (0)                                10-02-24  AI05-0184-1/03
 !standard A.18.18 (0)
 !standard A.18.19 (0)
 !standard A.18.20 (0)
@@ -37,22 +37,23 @@
    with the difference that the maximum storage is bounded.
 
 Similar text exists for Bounded_Doubly_Linked_Lists, Bounded_Hashed_Maps,
-Bounded_Ordered_Maps, Containers.Bounded_Hashed_Sets, and Bounded_Ordered_Sets.
+Bounded_Ordered_Maps, Bounded_Hashed_Sets, and Bounded_Ordered_Sets.
 
 Add an "Implementation Requirements" section at each of these 6 points which
 follows the following template:
 
-    For every pair of instances I1 and I2 of either of the two
-    generics Containers.Vectors and Containers.Bounded_Vectors
-    (I1 and I2 need not be instances of the same generic),
-    if the two instances meet the following conditions
-    then the output generated by I1.Vector'Output or I1.Vector'Write
-    shall be readable by I2'Vector'Input or I2'Vector'Read, respectively:
+     For each instance of Containers.Vectors and each
+     instance of Containers.Bounded_Vectors,
+     if the two instances meet the following conditions
+     then the output generated by either instance's
+     Vector'Output or Vector'Write subprograms
+     shall be readable by the other instance's Vector'Input
+     or Vector'Read, respectively:
         - 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
-        - the output generated Element_Type'Output or Element_Type'Write
+        - 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
           of the two actual Element_Type parameters); and
@@ -351,20 +352,93 @@
 Sent: Monday, November 2, 2009  8:00 PM
 
 >>     if the the two instances meet the the following conditions
-> 
+>
 > Stuttering here?? A strange fetish for the word "the"? ;-)
-> 
+>
 > I've fixed this in the posted AI.
-> 
+>
 
 Conservation of three-letter words.
 Delete a "the" and insert a "for" into
    "preceding two conditions also hold the Index_Type"
 
 Randy Brukardt wrote:
-> Would you not need to have similar wording for the Key_Type parameter 
+> Would you not need to have similar wording for the Key_Type parameter
 > of maps?
 
 Right. Thanks for catching that.
+
+****************************************************************
+
+From: Steve Baird
+Sent: Thursday, February 4, 2010  5:54 PM
+
+It was requested that I revise the proposed wording so that "it doesn't read
+like a math book".
+
+Perhaps it should read like a children's story?
+
+   So when the users got to the stream, they found three
+   instantiations - a baby bounded instance,
+   a regular instance, and a *great big* indefinite instance.
+   First, they read data from the stream with
+   Baby_Instance.Container'Read. Next, they read
+   data from the stream with Regular_Instance.Container'Read.
+   Finally, they huffed and they puffed and they invoked
+   Indefinite_Instance.Container'Read. They got the same
+   results in all three cases and they all lived happily
+   ever after.
+
+Maybe not.
+
+So let's try replacing the beginning of the currently proposed wording
+
+     For every pair of instances I1 and I2 of either of the two
+     generics Containers.Vectors and Containers.Bounded_Vectors
+     (I1 and I2 need not be instances of the same generic),
+
+with
+
+     For each instance I1 of Containers.Vectors and each
+     instance I2 of Containers.Bounded_Vectors,
+
+Tuck pointed out that there is no need to explicitly require container-streaming
+compatibility between two instances of the same generic - this follows
+implicitly from the new seemingly-weaker requirement and transitivity. If I1_A
+and I1_B are each compatible with I2, then they must be compatible with each
+other.
+
+Other nits noticed along the way:
+
+   Bounded_Hash_Sets alone is qualified in:
+
+     Similar text exists for Bounded_Doubly_Linked_Lists,
+     Bounded_Hashed_Maps, Bounded_Ordered_Maps,
+     Containers.Bounded_Hashed_Sets, and Bounded_Ordered_Sets.
+
+   Missing "by" in
+     the output generated [by] Element_Type'Output
+
+****************************************************************
+
+From: Steve Baird
+Sent: Thursday, February 4, 2010  6:31 PM
+
+With this change, do we also need to add an "(and vice versa)" in the immediately following text:
+
+   if the two instances meet the following conditions
+   then the output generated by I1.Vector'Output or I1.Vector'Write
+   shall be readable by I2'Vector'Input or I2'Vector'Read,
+   respectively {(and vice versa)}:
+?
+
+Or is it back to the drawing board with something like
+     For each instance of Containers.Vectors and each
+     instance of Containers.Bounded_Vectors,
+     if the two instances meet the following conditions
+     then the output generated by either instance's
+     Vector'Output or Vector'Write subprograms
+     shall be readable by the other instance's Vector'Input
+     or I2'Vector'Read, respectively
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent