<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@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:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:102918214;
        mso-list-template-ids:1020055982;}
@list l0:level1
        {mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level3
        {mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level4
        {mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level5
        {mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level6
        {mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level7
        {mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level8
        {mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level9
        {mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1
        {mso-list-id:305160096;
        mso-list-template-ids:-2109318598;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style>
</head>
<body lang="en-CZ" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">Brian Goetz <brian.goetz@oracle.com><br>
<b>Date: </b>Wednesday, 1 March 2023 16:56<br>
<b>To: </b>Adam Sotona <adam.sotona@oracle.com>, classfile-api-dev@openjdk.org <classfile-api-dev@openjdk.org><br>
<b>Subject: </b>Re: Classfile API jdktypes package rename and Signatures move proposal</span><span style="font-size:12.0pt;color:black;mso-fareast-language:EN-GB"><o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span style="font-size:13.5pt;font-family:"Courier New"">Regarding #1, I actually would have thought we'd have integrated the "jdk types" into the JDK as RFEs already and they'd be removed by the time we integrated the bytecode API, so hadn't given a lot of
 thought to package naming.  If this won't be the case, then we should probably let the package name reflect the final resting place, so something like jdk.i.c.java.lang.constant? 
<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US">Yes, we should integrate “jdk types” before opening Classfile API as preview, because any further package change will affect much larger audience. However JDK-internal Classfile API implementation
 use and follow-up integrations work should not be blocked by waiting on these. <o:p>
</o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US">Isn’t </span>
<span style="font-size:13.5pt;font-family:"Courier New"">jdk.internal.classfile.java.lang.constant</span>
<span lang="EN-US">a little bit too long? <o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span style="font-size:13.5pt;font-family:"Courier New""><br>
<br>
Assuming that the package will go after upstreaming {Module,Package}Desc, I think what you're suggesting is that we will eventually put the Signature stuff somewhere outside the bytecode library as well?  I think this is a bigger question, which is: for types
 related to quantities in classfiles that are not tied to the bytecode library, where should they live?  These include things like descriptor parsing and validation (which are duplicated in a dozen places in the JDK), signature parsing, conversion between internal
 and external names, etc.  <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:13.5pt;font-family:"Courier New""><br>
</span><span lang="EN-US">Yes, one of the optional plans include putting signatures outside the Classfile library, or maybe to merge it and extend functionality of ClassDesc and MethodTypeDesc.
<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US">However we are not there yet, so I take it as “don’t move signatures yet”.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US">Adam<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:13.5pt;font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:13.5pt;font-family:"Courier New""><br>
<br>
</span><o:p></o:p></p>
<div>
<p class="MsoNormal">On 3/1/2023 4:24 AM, Adam Sotona wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span lang="EN-US">Hi,</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Based on PR feedback I would like to propose two possible API changes:</span><o:p></o:p></p>
<ol style="margin-top:0cm" start="1" type="1">
<li class="MsoListParagraph" style="margin-left:0cm;mso-list:l0 level1 lfo3"><span lang="EN-US">Rename
</span><span lang="EN-US" style="font-family:Consolas">jdk.internal.classfile.jdktypes</span><span lang="EN-US"> package to
</span><span lang="EN-US" style="font-family:Consolas">jdk.internal.classfile.constant</span><span lang="EN-US"> to reflect the fact that
</span><span lang="EN-US" style="font-family:Consolas">PackageDesc</span><span lang="EN-US"> and
</span><span lang="EN-US" style="font-family:Consolas">ModuleDesc</span><span lang="EN-US"> are complementing
</span><span lang="EN-US" style="font-family:Consolas">java.lang.constant</span><span lang="EN-US"> package content.</span><o:p></o:p></li><li class="MsoListParagraph" style="margin-left:0cm;mso-list:l0 level1 lfo3"><span lang="EN-US">Move
</span><span lang="EN-US" style="font-family:Consolas">Signature</span><span lang="EN-US">,
</span><span lang="EN-US" style="font-family:Consolas">MethodSignature</span><span lang="EN-US"> and
</span><span lang="EN-US" style="font-family:Consolas">ClassSignature</span><span lang="EN-US"> from
</span><span lang="EN-US" style="font-family:Consolas">jdk.internal.classfile</span><span lang="EN-US"> package to the same package as #1, as the signature models are similar to descriptor models and serve the same purpose.</span><o:p></o:p></li></ol>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Please let me know if you agree or disagree individually with #1 and #2.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Thank you,</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Adam</span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span style="mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
</div>
</body>
</html>