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

Differences between 1.8 and version 1.9
Log of other versions for file ai05s/ai05-0113-1.txt

--- ai05s/ai05-0113-1.txt	2010/04/08 02:00:07	1.8
+++ ai05s/ai05-0113-1.txt	2010/06/07 05:58:43	1.9
@@ -1,4 +1,4 @@
-!standard 3.9(12.1/2)                                         10-04-02  AI05-0113-1/05
+!standard 3.9(12.1/2)                                         10-06-07  AI05-0113-1/06
 !standard 3.9(26.1/2)
 !standard 13.3(76)
 !class binding interpretation 08-10-06
@@ -105,10 +105,14 @@
 
 !discussion
 
-The runtime check will require some sort of runtime table to check
-External_Tag names; the table will need exclusion in case multiple tasks are
-creating tagged types at the same time. The mechanism used to implement
-Internal_Tag should be sufficient.
+For (1), we choose to (almost) eliminate the cause of the problem by not allowing
+explicitly defined external tag values to match any other external tag value in
+the partition. This is done with a runtime check.
+
+The runtime check for conflicting external tag values will require some sort of
+runtime table to check External_Tag names; the table will need exclusion in case
+multiple tasks are creating tagged types at the same time. The mechanism used to
+implement Internal_Tag should be sufficient.
 
 A post-compilation check is not possible in general, as tagged types can
 be created in subprograms and tasks, and it is possible that the two types
@@ -121,7 +125,7 @@
 that case, as well. Internal_Tag does not need a rule, as it is defined to
 return "*a* tag" (that was intended to cover recursion, but it works here,
 too).  But we do need a rule for Dependent_Tag. We made it raise Tag_Error
-in that case to use the same exception as it does other problems.
+in that case to use the same exception as it does for other problems.
 
 One ramification of these rules is that if an external tag is specified
 for a type declared within a generic unit, the generic can only be successfully
@@ -136,7 +140,7 @@
 mean that the return of library-level tags would not be advised, which
 seems wrong). We could try to say that a tag whose master is the innermost
 one surrounding the call that has an applicable type is returned, but that
-is hard to word (or explain) and seems like overspecification, as it not
+is hard to word (or explain) and seems like overspecification, as it is not
 likely that there are multiple applicable tagged types in different masters
 surrounding the call. It is enough to say that the tag should belong to some
 master of the call, especially as the primary goal is to prevent returning

Questions? Ask the ACAA Technical Agent