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

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

--- ai05s/ai05-0092-1.txt	2008/05/29 04:36:46	1.3
+++ ai05s/ai05-0092-1.txt	2008/07/12 03:58:22	1.4
@@ -1,7 +1,11 @@
-!standard  3.3.1(20.4/2)                                08-05-28  AI05-0092-1/02
+!standard  3.3.1(20.4/2)                                08-07-11  AI05-0092-1/03
+!standard 3.9(25.1/2)
 !standard  6.3.1(21.1/2)
+!standard 13.3(75/1)
 !standard 13.13.2(55/2)
 !standard 13.13.2(56/2)
+!standard A.11(4/2)
+!standard A.11(5/2)
 !standard G.2.2(11)
 !class presentation 08-03-05
 !status work item 06-03-05
@@ -25,6 +29,13 @@
 
 5) Replace "Safe_last" by "Safe_Last" in G.2.2(11).
 
+6) Drop the "3.9.2" reference from 13.3(75/1).
+
+7) In A.11(4-5/2), replace "Wide_Bounded_String" with "Bounded_Wide_String" and
+"Wide_Wide_Bounded_String" with "Bounded_Wide_Wide_String".
+
+8) Replace "Interface_Ancestor_Tag" with "Interface_Ancestor_Tags" in 3.9(25.1/2).
+
 !question
 
 1) Generally, "must" shall not be used in normative rules of the standard. However,
@@ -38,6 +49,15 @@
 
 5) "Safe_last" should be written as "Safe_Last" in G.2.2(11). Fix it? (Yes.)
 
+6) 13.3(75/1) says "See 3.9.2 and 13.13.2". There doesn't appear to be anything
+relevant in 3.9.2. What is the intent? (Delete it.)
+
+7) A.11(4-5/2) use the wrong names for the Wide and Wide_Wide versions of
+bounded strings. Fix these? (Yes.)
+
+8) 3.9(25.1/2) mentions "Interface_Ancestor_Tag", but there is no such thing.
+Change to "Interface_Ancestor_Tags"? (Yes.)
+
 [Other questions here.]
 
 !recommendation
@@ -56,6 +76,13 @@
 
 5) Replace "Safe_last" by "Safe_Last" in G.2.2(11).
 
+6) Remove "3.9.2 and" from 13.3(75/1).
+
+7) In A.11(4-5/2), replace "Wide_Bounded_String" with "Bounded_Wide_String" and
+"Wide_Wide_Bounded_String" with "Bounded_Wide_Wide_String".
+
+8) Replace "Interface_Ancestor_Tag" with "Interface_Ancestor_Tags" in 3.9(25.1/2).
+
 !discussion
 
 1) 3.3.1(20.4/2) uses "must precede", while 3.3.1(20.1-3/2) use "is preceded by".
@@ -73,6 +100,14 @@
 5) All other references to Safe_Last use a capital 'L', this one should, too.
 Note that this error dates all the way back to the original Ada 95 Standard.
 
+6) It's possible the author meant 3.9, but that wouldn't be useful, as 3.9(11)
+just references 13.3. We surely don't want a circular definition, so we just
+drop the reference.
+
+7) The names of the types ought be consistent between A.4.7, A.4.8, and A.11.
+
+8) An obvious missing 's'.
+
 !corrigendum 3.3.1(20.4/2)
 
 @drepl
@@ -90,6 +125,17 @@
 earlier in the order of the component declarations precede the initial
 value evaluations of the component occurring later.>
 
+!corrigendum 3.9(25.1/2)
+
+@drepl
+Tag_Error is raised by a call of Descendant_Tag, Expanded_Name, External_Tag,
+Interface_Ancestor_Tag, Is_Descendant_At_Same_Level, or Parent_Tag if any tag
+passed is No_Tag.
+@dby
+Tag_Error is raised by a call of Descendant_Tag, Expanded_Name, External_Tag,
+Interface_Ancestor_Tags, Is_Descendant_At_Same_Level, or Parent_Tag if any tag
+passed is No_Tag.
+
 !corrigendum 6.3.1(21.1/2)
 
 @drepl
@@ -116,6 +162,25 @@
 the word. Machine scalars are used to interpret component_clauses when the
 nondefault bit ordering applies.
 
+!corrigendum 13.3(75/1)
+
+@drepl
+@xindent<S'External_Tag denotes an external string representation for S'Tag;
+it is of the predefined type String. External_Tag may be specified for a
+specific tagged type via an @fa<attribute_definition_clause>; the expression
+of such a clause shall be static. The default external tag representation
+is implementation defined. See 3.9.2 and 13.13.2. The value of External_Tag
+is never inherited; the default value is always used unless a new value
+is directly specified for a type.>
+@dby
+@xindent<S'External_Tag denotes an external string representation for S'Tag;
+it is of the predefined type String. External_Tag may be specified for a
+specific tagged type via an @fa<attribute_definition_clause>; the expression
+of such a clause shall be static. The default external tag representation
+is implementation defined. See 13.13.2. The value of External_Tag
+is never inherited; the default value is always used unless a new value
+is directly specified for a type.>
+
 !corrigendum 13.13.2(55/2)
 
 @drepl
@@ -148,6 +213,46 @@
 An explicit invocation is one appearing explicitly in the program text,
 possibly through a generic instantiation (see 12.3).
 
+!corrigendum A.11(4/2)
+
+@drepl
+The specification of package Wide_Text_IO.Wide_Bounded_IO is the same as that
+for Text_IO.Bounded_IO, except that any occurrence of Bounded_String is
+replaced by Wide_Bounded_String, and any occurrence of package Bounded is
+replaced by Wide_Bounded. The specification of package
+Wide_Wide_Text_IO.Wide_Bounded_IO is the same as that for
+Text_IO.Bounded_IO, except that any occurrence of Bounded_String is
+replaced by Wide_Wide_Bounded_String, and any occurrence of package Bounded
+is replaced by Wide_Wide_Bounded.
+@dby
+The specification of package Wide_Text_IO.Wide_Bounded_IO is the same as that
+for Text_IO.Bounded_IO, except that any occurrence of Bounded_String is
+replaced by Bounded_Wide_String, and any occurrence of package Bounded is
+replaced by Wide_Bounded. The specification of package
+Wide_Wide_Text_IO.Wide_Wide_Bounded_IO is the same as that for
+Text_IO.Bounded_IO, except that any occurrence of Bounded_String is
+replaced by Bounded_Wide_Wide_String, and any occurrence of package Bounded
+is replaced by Wide_Wide_Bounded.
+
+!corrigendum A.11(5/2)
+The specification of package Wide_Text_IO.Wide_Unbounded_IO is the same as that
+for Text_IO.Unbounded_IO, except that any occurrence of Unbounded_String is
+replaced by Wide_Unbounded_String, and any occurrence of package Unbounded is
+replaced by Wide_Unbounded. The specification of package
+Wide_Wide_Text_IO.Wide_Wide_Unbounded_IO is the same as that for
+Text_IO.Unbounded_IO, except that any occurrence of Unbounded_String is
+replaced by Wide_Wide_Unbounded_String, and any occurrence of package Unbounded
+is replaced by Wide_Wide_Unbounded.
+@dby
+The specification of package Wide_Text_IO.Wide_Unbounded_IO is the same as that
+for Text_IO.Unbounded_IO, except that any occurrence of Unbounded_String is
+replaced by Unbounded_Wide_String, and any occurrence of package Unbounded is
+replaced by Wide_Unbounded. The specification of package
+Wide_Wide_Text_IO.Wide_Wide_Unbounded_IO is the same as that for
+Text_IO.Unbounded_IO, except that any occurrence of Unbounded_String is
+replaced by Unbounded_Wide_Wide_String, and any occurrence of package Unbounded
+is replaced by Wide_Wide_Unbounded.
+
 !corrigendum G.2.2(11)
 
 @drepl
@@ -419,5 +524,61 @@
 !topic S'Safe_[l]{L}ast
 !reference Ada 2005 RM G.2.2(11)
 !author Grein 2008.04.23
+
+****************************************************************
+
+!topic Strange reference in 13.3(75)
+!reference 13.3(75), 3.9.2
+!from Adam Beneschan 08-05-19
+!discussion
+
+Presentation nitpick:
+
+13.3(75) reads:
+
+    S'External_Tag denotes an external string representation for
+    S'Tag; it is of the predefined type String. External_Tag may be
+    specified for a specific tagged type via an
+    attribute_definition_clause; the expression of such a clause shall
+    be static. The default external tag representation is
+    implementation defined. See 3.9.2 and 13.13.2. The value of
+    External_Tag is never inherited; the default value is always used
+    unless a new value is directly specified for a type.
+
+Assuming someone reads this and then decides to follow the cross-references,
+it's reasonable to think they might try 3.9.2 first since it's listed first;
+but the effect is likely to be, "Huh?  Why did it refer me here?" since 3.9.2
+says nothing about external tags or anything related to them---at least, I
+don't see any connection. If the intent was that 13.13.2(29-34) is the
+section that discusses T'Class'Input and 'Output (which use the external tags),
+and those sections involve subprogram dispatching, perhaps it would be better
+to remove the 3.9.2 reference from 13.3(75) and put them in 13.13.2(29-34).
+Or, alternatively, was this 3.9.2 reference a typo (intended to be 3.9,
+which would make sense)?
+
+****************************************************************
+
+!topic Wrong names in Wide_(Un)Bounded_IO package definitions
+!reference A.11(4-5), A.4.7, A.4.8
+!from Adam Beneschan 08-06-11
+!discussion
+
+A.11(4) says:
+
+    The specification of package Wide_Text_IO.Wide_Bounded_IO is the same
+    as that for Text_IO.Bounded_IO, except that any occurrence of
+    Bounded_String is replaced by Wide_Bounded_String, and any occurrence
+                                  ^^^^^^^^^^^^^^^^^^^
+    of package Bounded is replaced by Wide_Bounded. The specification of
+    package Wide_Wide_Text_IO.Wide_Wide_Bounded_IO is the same as that for
+    Text_IO.Bounded_IO, except that any occurrence of Bounded_String is
+    replaced by Wide_Wide_Bounded_String, and any occurrence of package
+                ^^^^^^^^^^^^^^^^^^^^^^^^
+    Bounded is replaced by Wide_Wide_Bounded.
+
+The names noted are incorrect: they should be Bounded_Wide_String and
+Bounded_Wide_Wide_String. 
+
+There are similar errors in A.11(5).
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent