<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>See the "throws" section of the javadoc:</p>
    <dl class="notes">
      <dd><code><a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code>
        - if <code>charset</code> is not a <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/charset/StandardCharsets.html" title="class in java.nio.charset">standard charset</a></dd>
    </dl>
    <p></p>
    <div class="moz-cite-prefix">We only support common fixed-size
      charsets, as being fixed-size allows us to determine string length
      and also how many terminator bytes to add.<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Maurizio<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 11/06/2024 14:05, Jonathan Rosenne
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:DB3PR10MB678659B08ACF45117F385EFC84C72@DB3PR10MB6786.EURPRD10.PROD.OUTLOOK.COM">
      
      <meta name="Generator" content="Microsoft Word 15 (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:Aptos;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#467886;
        text-decoration:underline;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;}span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Arial",sans-serif;
        color:#1F497D;
        font-weight:normal;
        font-style:normal;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0in;}ul
        {margin-bottom:0in;}</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="font-size:14.0pt;font-family:"Arial",sans-serif;color:#1F497D">Hi,
            <o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:14.0pt;font-family:"Arial",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:14.0pt;font-family:"Arial",sans-serif;color:#1F497D">regarding
            (3), the link just says Charset, not StandardCharset. Please
            clarify.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:14.0pt;font-family:"Arial",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:14.0pt;font-family:"Arial",sans-serif;color:#1F497D">Jonathan<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:14.0pt;font-family:"Arial",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-ligatures:none">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-ligatures:none">
                panama-dev <a class="moz-txt-link-rfc2396E" href="mailto:panama-dev-retn@openjdk.org"><panama-dev-retn@openjdk.org></a>
                <b>On Behalf Of </b>Maurizio Cimadamore<br>
                <b>Sent:</b> Monday, June 10, 2024 12:46 PM<br>
                <b>To:</b> Cheng Jin <a class="moz-txt-link-rfc2396E" href="mailto:jincheng@ca.ibm.com"><jincheng@ca.ibm.com></a>;
                <a class="moz-txt-link-abbreviated" href="mailto:panama-dev@openjdk.org">panama-dev@openjdk.org</a><br>
                <b>Subject:</b> Re: As for the refinements mentioned in
                JEP454<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p>Hi, some answers below:<span style="font-size:11.0pt;mso-ligatures:none"><o:p></o:p></span></p>
        <p>(1) refers to the ability to query what primitive layouts are
          like, using Linker::canonicalLayouts.<br>
          See: <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/foreign/Linker.html#canonicalLayouts()" moz-do-not-send="true" class="moz-txt-link-freetext">
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/foreign/Linker.html#canonicalLayouts()</a><o:p></o:p></p>
        <p>(2) refers to the new methods in MemoryLayout, namely
          MemoryLayout::scale/scaleHandle, together with the fact that
          now all var handles generated by this API take a start offset
          (so they are easier to combine).<br>
          see: <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/foreign/Linker.html#canonicalLayouts()" moz-do-not-send="true" class="moz-txt-link-freetext">
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/foreign/Linker.html#canonicalLayouts()</a><br>
          <br>
          (3) refers to the fact that you can now read and write strings
          with more charsets than just UTF8. You can now use any charset
          in StandardCharsets (to which we have added UTF32, for good
          measure).<br>
          see: <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/foreign/MemorySegment.html#getString(long,java.nio.charset.Charset)" moz-do-not-send="true" class="moz-txt-link-freetext">
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/foreign/MemorySegment.html#getString(long,java.nio.charset.Charset)</a><o:p></o:p></p>
        <div>
          <p class="MsoNormal">Maurizio<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">On 07/06/2024 23:30, Cheng Jin wrote:<o:p></o:p></p>
        </div>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <p class="MsoNormal"><span style="font-size:11.0pt">Hi there,
            </span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt">I’ve got a
              question about JEP454 at  <a href="https://openjdk.org/jeps/454" moz-do-not-send="true" class="moz-txt-link-freetext">https://openjdk.org/jeps/454</a>
              in which some of refinements confused me as follows:</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
          <ol style="margin-top:0in" type="1" start="1">
            <li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo3"><i><span style="font-size:11.0pt">Enabled clients to build
                  C-language function descriptors programmatically,
                  avoiding platform-specific constants;</span></i><o:p></o:p></li>
            <li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo3"><i><span style="font-size:11.0pt">Improved support for
                  variable-length arrays in native memory;</span></i><o:p></o:p></li>
            <li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo3"><i><span style="font-size:11.0pt">Added support for arbitrary
                  charsets for native strings.</span></i><o:p></o:p></li>
          </ol>
          <p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt">I didn’t
              find any description in the JEP to clarify how they work
              and what they mean to users.</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt">Could
              anybody explain these refinements in more details? Many
              thanks.</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt">Best
              Regards</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt">Cheng</span><o:p></o:p></p>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>