CVS difference for ais/ai-00313.txt

Differences between 1.6 and version 1.7
Log of other versions for file ais/ai-00313.txt

--- ais/ai-00313.txt	2004/11/02 01:50:26	1.6
+++ ais/ai-00313.txt	2004/11/17 00:52:53	1.7
@@ -169,7 +169,7 @@
 ****************************************************************
 
 From: Dan Eilers
-Sent: Tuesday, October 26, 2002  8:07 AM
+Sent: Tuesday, October 26, 2004  8:07 AM
 
 The ARG minutes for AI-382 say:
 
@@ -184,5 +184,60 @@
 Now that allowing this has been approved for AI-382, I think AI-313
 should be revisited, and the corresponding restriction lifted for
 named access types, since the restriction serves no purpose.
+
+****************************************************************
+
+From: Dan Eilers
+Sent: Monday, November 15, 2004  3:21 PM
+
+Pascal wrote:
+
+> Other than a superficial similarity, these AIs have very little to do with
+> each other.  313 was given due consideration by the ARG, and was voted No
+> Action.  No new technical information has surfaced that could cause the
+> ARG to change its decision.  The reason for introducing 382 is that it
+> fixes a problem that would have been ubiquitous, and would have made
+> anonymous access types unusable in practice.  313 is on the other hand a
+> pathological cornercase, and doesn't deserve more discussion.
+
+
+I may have misunderstood the ARG minutes.
+My understanding was that we would have:
+
+ type T1 is
+    record
+        data: access procedure (Next_Proc : T1); -- legal by AI-382??
+    end record;
+
+ type T2 is access procedure (Next_Proc : T2);  -- illegal by AI-313
+
+which is what seemed inconsistent.
+But the AI as written makes T1 illegal, so with that interpretation
+there is no inconsistency.
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Monday, November 15, 2004  8:30 PM
+
+I'm not sure whether we ultimately agreed to allow
+the example you gave, but even if we did, I don't
+see the inconsistency.  We don't generally allow
+a name to be referenced in its own declaration.
+We make a few exceptions, in particular for packages
+and for record types, but we don't allow, for example:
+
+     type T2 is access T2;
+
+or
+
+     type T1 is range T1'First .. T1'Last;
+
+As an implementor, I have enough trouble with:
+
+     type Q is access procedure(X : incomplete_type);
+
+Supporting "type Q is access procedure(X : Q);" seems
+gratuitously difficult with little benefit.
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent