CVS difference for ais/ai-00279.txt

Differences between 1.9 and version 1.10
Log of other versions for file ais/ai-00279.txt

--- ais/ai-00279.txt	2004/10/05 22:49:09	1.9
+++ ais/ai-00279.txt	2004/11/14 06:37:04	1.10
@@ -1,4 +1,4 @@
-!standard  13.13.02 (34)                              04-09-24  AI95-00279/06
+!standard  13.13.02 (34)                              04-11-08  AI95-00279/07
 !standard  3.09 (12)
 !standard  3.09 (26)
 !standard  13.13.02 (36/1)
@@ -13,6 +13,7 @@
 !priority Medium
 !difficulty Medium
 !subject Tag read by T'Class'Input
+
 !summary
 
 If Ada.Tags.Internal_Tag or Ada.Tags.Descendant_Tag is given a string
@@ -33,7 +34,8 @@
 T'Class'Input reads in a string, maps it to a tag by calling
 Tags.Descendant_Tag, and dispatches accordingly.
 
-What happens if the call to Tags.Descendant_Tag yields either
+What happens if the call to Tags.Descendant_Tag (from AI-344,
+or Tags.Internal_Tag without it) yields either
    a) the tag of some type not covered by T'Class
 or
    b) the tag of an abstract type
@@ -88,15 +90,15 @@
 
 Dynamic Semantics
 
-The tag of a tagged type T is created at the point where T is frozen.
+The tag (see 3.9) of a tagged type T is created at the point where T is frozen.
 
 !discussion
 
-The exact wording of 13.13.2(34/2) is "...dispatches to the subprogram denoted
+The exact wording of 13.13.2(34/1) is "...dispatches to the subprogram denoted
 by the Input attribute of the specific type identified by the internal tag;
 returns that result.". Reading this strictly, we would expect the appropriate
 'Input to be called (by dispatching), followed by a conversion to the return
-type. That is, somewhere this is code like:
+type. That is, somewhere there is code like:
 
     return T'Class(Dispatching_Constructor (Tags.Descendant_Tag(...),
              'Input(Stream));
@@ -109,7 +111,7 @@
 would raise Constraint_Error. Therefore, we simply confirm the existing
 language by saying that Constraint_Error is raised in this case. However,
 there is no benefit in insisting that the call to the 'Input routine
-is actually made, so we just clarify this to just say that Constraint_Error is
+is actually made, so we just clarify this to say that Constraint_Error is
 raised.
 
 If the tag dispatched on is an abstract type, then the appropriate 'Input is
@@ -148,7 +150,7 @@
 tasks at the same time. In this case, a single Boolean does not work.
 
 AI-344 allows type extensions that are more nested than the original type.
-The AI also defines that the tag is sufficient to distiguish the descendant
+This AI also defines that the tag is sufficient to distinguish the descendant
 from all other descendants of the same type (even if they are from different
 elaborations of the same type declaration). This implies that Descendant_Tag
 will have at least some dynamic characteristics; a fully static implementation
@@ -162,7 +164,7 @@
 a static scheme, where making the check is impossible due to race conditions
 and multiple elaborations. Finally, AI-344 does not require Descendant_Tag to
 be able to tell between instances of the same type. Thus, it still would be
-possible to read the tag and it confuse with some other instance of the type
+possible to read the tag and confuse it with some other instance of the type
 (if the prefix type to T'Class'Input is more nested than some ancestor).
 
 The primary purpose of the Tag_Error rule for Ada.Tags is to insure that a
@@ -182,9 +184,9 @@
 rule allows a single Boolean value to be used in a static implementation, and
 does not have any race conditions.
 
-The Internal_Tag function also has this rule, as it eliminate erroneousness
+The Internal_Tag function also has this rule, since it eliminates erroneousness
 from user-written routines (including instances of
-Generic_Dispatching_Constructor, see AI-260-2) and as there is no additional
+Generic_Dispatching_Constructor, see AI-260-2) and there is no additional
 implementation burden.
 
 The wording for erroneous execution includes "does not exist" so that a type
@@ -206,7 +208,7 @@
 simplify the wording. But it also would mean that any use of T'Class'Input
 during elaboration time would raise Tag_Error (whether or not a problem is
 possible). That would mean that T'Class'Input could not be used to read
-configuration files and the like. That seems like too strong of a restriction.
+configuration files and the like. That seems like too strong a restriction.
 
 
 !corrigendum 3.09(12)

Questions? Ask the ACAA Technical Agent