CVS difference for ai12s/ai12-0384-1.txt

Differences between 1.2 and version 1.3
Log of other versions for file ai12s/ai12-0384-1.txt

--- ai12s/ai12-0384-1.txt	2020/06/11 04:23:38	1.2
+++ ai12s/ai12-0384-1.txt	2020/09/02 04:06:24	1.3
@@ -670,3 +670,121 @@
 
 ****************************************************************
 
+From: Tucker Taft
+Sent: Tuesday, August 4, 2020  12:26 PM
+
+Below is a link to the "delta" document I agreed to produce to compare two 
+alternatives for the API that supports the writing of Put_Image routines.  
+Bob Duff prototyped one, which he dubbed "Ada.Strings.Text_Output."  The 
+ARG-approved AI12-0340-1 defined one called "Ada.Strings.Text_Buffers", which
+can also be found in the latest Ada 202X RM draft:
+
+  http://www.ada-auth.org/standards/2xaarm/html/AA-A-4-12.html
+
+Text_Buffers was refined a bit after reviewing the prototyping work that Bob 
+did, both on the Put_Image routines, and on the Text_Output API; these 
+refinements were described in the "fix-up" AI AI12-0384-1.
+
+Here is the "delta" document which explains what aspects of the Text_Output 
+API were incorporated into Text_Buffers, and which were not: 
+
+  https://docs.google.com/document/d/1Plr-Ov6q7_TfpgBmnmwXoaJKFYc_6WOhlj2Yyfb1OFU/edit?usp=sharing
+
+Here are the two relevant AIs:
+
+  http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ai12s/ai12-0340-1.txt?rev=1.3
+
+and
+
+  http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ai12s/ai12-0384-1.txt?rev=1.2
+
+The "delta" document is a Google Doc, and permits commenting (just select a 
+word, phrase, or paragraph and select the "add comment" button on the right,
+and you can write a comment).  Alternatively just reply to this e-mail with 
+any comments.  Let me know if anything is unclear, or if I left something out.
+
+****************************************************************
+
+From: Jeff Cousins
+Sent: Sunday, August 9, 2020  8:51 AM
+
+I haven’t seen any other responses to this, but Tuck’s arguments seem mostly 
+good to me (just “Name changes do not seem that important” seems a bit 
+woolly).  The “ARG Ada Design Principles, in the context of Ada 202X” did 
+make a point about consistency.
+
+In particular, I think that allowing CR-LF is necessary.  Where we gave our 
+customers a choice between running on Windows or some form of Unix, they only
+ever chose Windows for 15+ years.
+
+****************************************************************
+
+From: Richard Wai
+Sent: Sunday, August  9, 2020  8:31 PM
+
+I’d echo most of what Jeff says. I strongly agree with Tuck’s rationale. I 
+think there are numerous precedents throughout the RM (as Tuck mentioned) 
+that can and should inform the structure, naming, and even behavior of 
+Text_Buffers. Particularly Text_IO (though not strictly), and Root_Stream_Type 
+et al. I strongly support a New_Line functionality that does not take a side 
+on the CR+LF / LF dichotomy, and follows the Text_IO precedent in sprit. As 
+per the ARG Ada Design Standards, we should be providing “building blocks” 
+with library-designed packages, and so having a language-defined file IO Sink 
+seems like duplication of the existing Ada IO facilities, and would be 
+trivial to implement at the user-level.
+
+As for nomenclature: I do think naming is important. For what it’s worth, 
+I’d rather not see “Utils” in preference to “Utilities”, or “NL” in 
+preference to “New_Line”. 
+
+****************************************************************
+
+From: Jean-Pierre Rosen
+Sent: Monday, August 10, 2020  6:46 AM
+
+> Alternatively just reply to this e-mail with any comments.
+
+As I read the document, I noted some comments, but they were essentially 
+summarized in the last paragraph ("What was not adopted in
+Text_Buffers.* and why").
+
+One nitpick: why do we need wide_get/put and wide_wide_get/put ?
+Couldn't they be called get/put and let overloading do the job?
+(the same cannot be said for the UTF8/UTF16 versions)
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, August 10, 2020  11:09 AM
+
+That's from the original design. The expectation is that a typical 
+user-defined Put_Image body would look something like:
+
+   Put (Buffer, "[");
+   S'Put_Image (Buffer, R.A);
+   Put (Buffer, ", ");
+   T'Put_Image (Buffer, R.B);
+   Put (Buffer, "]");
+
+In particular, there is a lot of Puts of literals. If we overloaded Put, 
+any Put of a literal would be ambiguous, and you'd have to write instead:
+
+   Put (Buffer, String'("["));
+
+That would get annoying really fast, IMHO.
+
+So we gave different names to the Put for each type.
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Monday, August 10, 2020  12:47 PM
+
+> I haven’t seen any other responses to this, but Tuck’s arguments seem 
+> mostly good to me (just “Name changes do not seem that important” seems a 
+> bit woolly).  
+
+I removed the "wooly" part. ;-)
+
+****************************************************************
+

Questions? Ask the ACAA Technical Agent