CVS difference for ai12s/ai12-0125-3.txt

Differences between 1.13 and version 1.14
Log of other versions for file ai12s/ai12-0125-3.txt

--- ai12s/ai12-0125-3.txt	2016/10/27 02:50:14	1.13
+++ ai12s/ai12-0125-3.txt	2016/12/21 06:02:42	1.14
@@ -3600,3 +3600,72 @@
 flyspeck operator for screens.
 
 ****************************************************************
+
+From: Tucker Taft
+Sent: Sunday, October 9, 2016  1:41 PM
+
+    This_is_a_very_long_name := @ + @.Increment;
+
+    This_is_a_very_long_name := (if @ > 5 then @ + 2 else @ - 2);
+
+
+    This_is_a_very_long_name := (<>) + (<>).Increment;
+
+    This_is_a_very_long_name := (if (<>) > 5 then (<>) + 2 else (<>) - 2);
+
+****************************************************************
+
+From: Bob Duff
+Sent: Sunday, October 9, 2016  3:24 PM
+
+I still think it should be a word, but if it has to be a symbol with no
+inherent meaning, then shorter is better.
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Sunday, October 9, 2016  3:35 PM
+
+We had some sympathy for that, but generally wanted it to be a word chosen by
+the user.  E.g.:
+
+    This_Is_A_Very_Long_Name is VLN := VLN + 1;
+
+Gary and at least one other person didn't want to have to choose yet another
+name to use this feature.  On the other hand, Steve and I were somewhat
+namored of letting the user specify a name.
+
+There was some thought we could combine this with the "let expressions" AI,
+e.g.:
+
+    VLN renames This_Is_A_Very_Long_Name in VLN := VLN + 1;
+
+****************************************************************
+
+From: Ed Schonberg
+Sent: Sunday, October 9, 2016  4:42 PM
+
+After implementing and trying out various examples of @ I find it comfortable
+and ideally concise!
+
+****************************************************************
+
+From: Bob Duff
+Sent: Sunday, October 9, 2016  8:28 PM
+
+> We had some sympathy for that, but generally wanted it to be a word 
+> chosen by the user.  E.g.:
+> 
+>     This_Is_A_Very_Long_Name is VLN := VLN + 1;
+
+No, PLEASE don't do that.  It has to be a name or a symbol that is universally
+recognized by all Ada programmers as meaning "the left-hand side".  Always.
+Without context.  Letting the programmer choose a different name each time
+completely defeats the purpose of this feature, in my opinion.  Think of the
+reader who has to understand that name, different each time.
+
+Remember why aspects are better than pragmas?  E.g "... with Pack" means "this
+thing is packed", whereas "pragma Pack(Foo);" means the reader has to go look
+up Foo.  Referring to things by name is a cognitive burden.
+
+****************************************************************

Questions? Ask the ACAA Technical Agent