<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<font size="4"><font face="monospace">This is a good improvement. I
have a few additional suggestions and questions:<br>
<br>
- The ClassRemapper spec talks about what it _doesn't_ map,
rather than what it does. We should characterize what it does
do (e.g., for every ClassEntry referenced by an instruction,
attribute, or metadata, map it to a new ClassEntry as per the
contents of the map...) It should also give a plain explanation
of when you would use it (e.g., package renaming.) <br>
- You might want to give some example code for how to remap
_all_ classes in package com.foo to com.bar -- this involves
writing a Function that looks at prefixes. <br>
- Does CodeLocalsShifter::addLocal work in concert with the
local-allocation feature of BlockBuilder? <br>
- Should explain why fork() exists<br>
<br>
There is some question about what package these should go in. I
think the current package "transforms" is probably not optimal.
<br>
<br>
- We could put these in the jdk.classfile package. There's
only a handful of them, I think this would be OK.<br>
- We could put these in some package that suggests these are
reusable components that are not part of the classfile API. But
if so, "transform" is probably a little too specific, since one
can imagine reusable components for other things (e.g., a
pedantic verifying builder wrapper, an AttributeBuilder for
foreign but common attributes, if such a thing existed, etc.)
"Util" is a little general (plus it has the feeling of a
"dumping ground") but might be OK. ASM also has "commons",
which has the suggestion of "stuff contributed from the
community", but that's also not a great name. <br>
<br>
The ASM "util" package contains: Trace/CheckClassAdapter and
friends, ClassPrinter, etc. This feels in roughly the same
category -- stuff you may want to use, but which are
"components" rather than framework.<br>
<br>
</font></font><br>
<div class="moz-cite-prefix">On 9/12/2022 1:06 PM, Adam Sotona
wrote:<br>
</div>
<blockquote type="cite" cite="mid:CY4PR1001MB21509FD9746E32E5754A814A8C449@CY4PR1001MB2150.namprd10.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;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}div.WordSection1
{page:WordSection1;}</style>
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I’ve performed some
cleanup, renaming and API unification in
jdk.classfile.transforms package.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Plus added Javadoc with
code snippets.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Please let me know your
comments:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="https://github.com/openjdk/jdk-sandbox/pull/36" moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/openjdk/jdk-sandbox/pull/36</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Adam<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</blockquote>
<br>
</body>
</html>