<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
Hi Markus,<br>
<br>
I see. I didn't know there was a feature which automatically sends
emails about submitted enhancements. It's the first time I see such
an email.<br>
<br>
You changed the component from client-libs to core-libs in
JDK-8309726, which is correct, but the email had already been sent.<br>
<br>
-- <br>
Regards,<br>
Alexey<br>
<br>
<div class="moz-cite-prefix">On 08/10/2023 14:14, Markus Karg wrote:<br>
</div>
<blockquote type="cite" cite="mid:002801d9f9e9$5664e7d0$032eb770$@eu">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style>@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}span.E-MailFormatvorlage17
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}span.E-MailFormatvorlage18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}div.WordSection1
{page:WordSection1;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Aleksei,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">thank you for
reposting to the "right" mailing list, and everybody thank
you for contribution to this discussion, but please note
that it was *not me* who posted to the "wrong" list: In
fact, I just opened this issue <a href="https://bugs.openjdk.org/browse/JDK-8309726" moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8309726</a>,
and it was *the OpenJDK infrastructure* which in turn posted
to the "wrong" list. I am not aware who is in charge to fix
this, but *I* cannot change this behvior. Maybe the one in
charge is reading this and can fix it?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">-Markus<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose" moz-do-not-send="true"><span style="color:#1F497D"><o:p> </o:p></span></a></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Von:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">
Aleksei Ivanov [<a class="moz-txt-link-freetext" href="mailto:alexey.ivanov@oracle.com">mailto:alexey.ivanov@oracle.com</a>] <br>
<b>Gesendet:</b> Donnerstag, 5. Oktober 2023 14:16<br>
<b>An:</b> Markus Karg; core-libs<br>
<b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:client-libs-dev@openjdk.org">client-libs-dev@openjdk.org</a><br>
<b>Betreff:</b> Re: RFC: 8309726: Reader::readString<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hi Markus,<br>
<br>
You posted it to the wrong list, it belongs on core-libs-dev.<br>
<br>
-- <br>
Regards,<br>
Alexey<o:p></o:p></p>
<div>
<p class="MsoNormal">On 10/06/2023 12:35, Markus Karg wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#172B4D;background:white">By analyzing
several existing applications I noticed that many of them
need to read a String from an input source (be it an input
stream or a reader), and there are a lot of solutions
applied which all are more or less suboptimal:</span><span style="color:#172B4D"><br>
<br>
<span style="background:white">* Files.readString(Path) -
Fast, convenient, uses JLA.newStringNoRepl, only works
with files (not with sockets or other sources).</span><br>
<span style="background:white">* new
String(inputStream.readAllBytes()) - Fast, complex,
enforces dealing with an array in user code, cannot use
JLA.newStringNoRepl.</span><br>
<span style="background:white">*
bufferedReader.lines().collect(StringBuilder::new,
StringBuilder::append,
StringBuilder::append).toString(); - Complex, enforces
dealing with a stream in user code, doesn't use
JLA.newStringNoRepl.</span><br>
<span style="background:white">*
reader.transferTo(stringWriter);
stringWriter.toString(); - Medium convient, medium
performance, synchronized as it relies on StringBuffer
instead of StringBuilder.</span><br>
<span style="background:white">* Custom loop using char[]
of various default sizes (some 8k, some 16k, some
configurable) - Slow, complex, doesn't use
JLA.newStringNoRepl.</span><br>
<span style="background:white">* etc.</span><br>
<br>
<span style="background:white">Checking back with the
particular authors of these applications I noticed that
what they all miss is (a) guidance which solution is
"best" (mostly thinking in speed, but also in reduced GC
stress and memory consumption), (b) something convenient
like Files.readString() but working with any reader
implementation, not just with files.</span><br>
<br>
<span style="background:white">I think we can do better,
hence I'd like to propose the introduction of a new
Reader::readString method. The benefits are:</span><br>
<span style="background:white">* Guidance. The
introduction of this method is a clear signal to all
application programmers to use *this* one by default.</span><br>
<span style="background:white">* Convenience. It couldn't
be any easier for the caller.</span><br>
<span style="background:white">* Performance. OpenJDK
committers can optimize it for both, convenience, speed,
reduced GC stress, and memory consumption, at the very
same time.</span><br>
<span style="background:white">* Optimizable. Each Reader
implementation can choose an algorithm fitting best its
own needs, while java.io.Reader itself provides a
convenient default implementation based on a loop over
this.read().</span></span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman","serif""><o:p> </o:p></span></p>
</div>
</blockquote>
<br>
</body>
</html>