CVS difference for ais/ai-00406.txt

Differences between 1.2 and version 1.3
Log of other versions for file ais/ai-00406.txt

--- ais/ai-00406.txt	2005/03/09 00:47:47	1.2
+++ ais/ai-00406.txt	2006/05/12 20:28:37	1.3
@@ -99,4 +99,94 @@
 
 !appendix
 
+From: Pascal Leroy
+Sent: Tuesday, April 25, 2006  7:21 AM
+
+AI 406 introduced "aliased" for anonymous access types out of
+orthogonality concerns.  I am implementing this AI, but I can't find a way
+to build an access value that would designate an object of an anonymous
+access type.  The AI has an example like the following:
+
+    type Tt is null record;
+
+    type Att is access all Tt;
+    type Aatt is access all Att;
+
+    X : aliased access Tt;
+
+    Ax : Aatt := X'Access;
+
+But the attribute Access is illegal because the designated subtype of Aatt
+doesn't statically match the subtype of X.
+
+Am I missing something, or do we have a completely useless piece of syntax
+here?
+
 *************************************************************
+
+From: Tucker Taft
+Sent: Tuesday, April 25, 2006  9:38 AM
+
+I think you are right.  However, it is recommended that
+you use "aliased" in conjunction with 'Address, so that
+could be one legitimate reason to do it.
+
+*************************************************************
+
+From: John Barnes
+Sent: Tuesday, April 25, 2006  1:49 PM
+
+Probably not.
+
+I think I wrote it. I found an old email in which I complained that I
+couldn't find an example and had to contrive one - which seems to have been
+wrong. I don't know why I wrote the AI. Probably I got an action and didn't
+duck at the right moment.
+
+Anonymous acccess types are not the panacea one would have hoped.
+
+*************************************************************
+
+From: Robert Dewar
+Sent: Wednesday, April 26, 2006  7:57 AM
+
+Not clear the medicine is not worse than the disease in this case if
+you ask me, but in any case I don't understand this comment. What
+problem was 406 trying to solve. The example is clearly wrong, and
+was as you say contrived in any case? This AI seems completely
+useless to me, but it is also pretty harmless.
+
+*************************************************************
+
+From: Randy Brukardt
+Sent: Wednesday, April 26, 2006  8:18 PM
+
+Well, to put this one to rest, I went back and looked in my notes. The AI
+came out of the review comments on chapter 3 of the draft AARM. Everyone who
+looked at the syntax thought it looked bizarre:
+
+object_declaration ::=
+    defining_identifier_list : [aliased] [constant] subtype_indication [:=
+expression];
+  | defining_identifier_list : [constant] access_definition [:= expression];
+  | defining_identifier_list : [aliased] [constant] array_type_definition
+[:= expression];
+  | single_task_declaration
+  | single_protected_declaration
+
+It seems like something is missing in the second line.
+
+John got the short stick to write an AI on it, which he did.
+
+We looked at it in Paris, everyone agreed it looked better, and it passed
+with a 9-0-0 vote.
+
+Even knowing that it is useless (other than for 'Address, as the Ada 95
+recommended level of support for 'Address only applies to aliased or
+by-reference objects), I still think it is a good idea. Otherwise, we'd have
+to explain perpetually why it wasn't there - it would look like a mistake.
+The implementation seems to be trivial (especially since you can't test it
+:-)
+
+*************************************************************
+

Questions? Ask the ACAA Technical Agent