<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>There will be a corresponding set of JVM changes out for review soon.</div><div><br></div><div>A draft of them is already pushed to the patch repo:</div><div>&nbsp;&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/hotspot/file/tip/meth-impl-6839872.patch">http://hg.openjdk.java.net/mlvm/mlvm/hotspot/file/tip/meth-impl-6839872.patch</a></div><div><br></div><div>-- John</div><div><br class="Apple-interchange-newline"><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>From: </b></span><span style="font-family:'Helvetica'; font-size:medium;">John Rose &lt;<a href="mailto:john.r.rose@oracle.com">john.r.rose@oracle.com</a>&gt;<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>Date: </b></span><span style="font-family:'Helvetica'; font-size:medium;">February 27, 2011 2:18:46 AM PST<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>To: </b></span><span style="font-family:'Helvetica'; font-size:medium;">Da Vinci Machine Project &lt;<a href="mailto:mlvm-dev@openjdk.java.net">mlvm-dev@openjdk.java.net</a>&gt;<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>Subject: </b></span><span style="font-family:'Helvetica'; font-size:medium;"><b>review request (XL): 6839872: remove implementation inheritance from JSR 292 APIs</b><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><b><br></b></div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div class=""><a href="http://cr.openjdk.java.net/~jrose/6839872/jdk-webrev.00/">http://cr.openjdk.java.net/~jrose/6839872/jdk-webrev.00/</a></div><div class=""><br class=""></div><div class=""><div class="">Summary: move everything into a single package; remove all multi-package machinery</div><div class=""><br class=""></div></div><div class="">This is a complex change which consolidates the code into a single package, to prepare for a clean rename from java.dyn to java.lang.invoke. &nbsp;</div><div class=""><br></div><div class="">This also fixes some defects in the API which arise from dependencies between multiple packages. &nbsp;That was the original motivation of bug&nbsp;6839872.</div><div class=""><br></div><div class="">For ease of review, this change may be reviewed in seven parts:</div><div class=""><div class="">&nbsp;- meth-impl-6839872.1-rename.patch moves files between packages</div><div class="">&nbsp;- meth-impl-6839872.2-super.patch merges sun.dyn superclasses into java.dyn subclasses</div><div class="">&nbsp;- meth-impl-6839872.3-moves.patch moves some method code around in java.dyn classes</div><div class="">&nbsp;- meth-impl-6839872.4-vconv.patch addresses a dependency from ValueConversions</div><div class="">&nbsp;- meth-impl-6839872.5-mtform.patch removes a cross-package wormhole from MethodType &amp; MethodTypeForm</div><div class="">&nbsp;- meth-impl-6839872.6-access.patch removes cross-package access checking</div><div class="">&nbsp;- meth-impl-6839872.7-misc.patch is a few more miscellaneous changes</div><div class=""><br class=""></div><div class="">These individual patches may be found in the mlvm repository:</div><div class="">&nbsp;&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/">http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/</a></div><div class=""><br class=""></div><div class=""><span style="font-family: sans-serif; font-size: 12px; " class="Apple-style-span"><table cellspacing="0" style="padding-top: 8px; padding-right: 4px; padding-bottom: 8px; padding-left: 4px; position: static; z-index: auto; " class=""><tbody class=""><tr style="background-color: rgb(246, 246, 240); " class="parity1"><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">-rw-r--r--</td><td align="right" style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">36661</td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; " class="list"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.1-rename.patch" style="color: rgb(0, 0, 0); text-decoration: none; " class="list">meth-impl-6839872.1-rename.patch</a></td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 10px; vertical-align: top; font-family: sans-serif; " class="link"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.1-rename.patch" style="color: rgb(0, 0, 204); " class="">file</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/log/ae2641d94773/meth-impl-6839872.1-rename.patch" style="color: rgb(0, 0, 204); " class="">revisions</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/annotate/ae2641d94773/meth-impl-6839872.1-rename.patch" style="color: rgb(0, 0, 204); " class="">annotate</a></td></tr><tr class="parity0"><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">-rw-r--r--</td><td align="right" style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">24772</td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; " class="list"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.2-super.patch" style="color: rgb(0, 0, 0); text-decoration: none; " class="list">meth-impl-6839872.2-super.patch</a></td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 10px; vertical-align: top; font-family: sans-serif; " class="link"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.2-super.patch" style="color: rgb(0, 0, 204); " class="">file</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/log/ae2641d94773/meth-impl-6839872.2-super.patch" style="color: rgb(0, 0, 204); " class="">revisions</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/annotate/ae2641d94773/meth-impl-6839872.2-super.patch" style="color: rgb(0, 0, 204); " class="">annotate</a></td></tr><tr style="background-color: rgb(246, 246, 240); " class="parity1"><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">-rw-r--r--</td><td align="right" style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">45216</td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; " class="list"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.3-moves.patch" style="color: rgb(0, 0, 0); text-decoration: none; " class="list">meth-impl-6839872.3-moves.patch</a></td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 10px; vertical-align: top; font-family: sans-serif; " class="link"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.3-moves.patch" style="color: rgb(0, 0, 204); " class="">file</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/log/ae2641d94773/meth-impl-6839872.3-moves.patch" style="color: rgb(0, 0, 204); " class="">revisions</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/annotate/ae2641d94773/meth-impl-6839872.3-moves.patch" style="color: rgb(0, 0, 204); " class="">annotate</a></td></tr><tr class="parity0"><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">-rw-r--r--</td><td align="right" style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">6895</td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; " class="list"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.4-vconv.patch" style="color: rgb(0, 0, 0); text-decoration: none; " class="list">meth-impl-6839872.4-vconv.patch</a></td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 10px; vertical-align: top; font-family: sans-serif; " class="link"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.4-vconv.patch" style="color: rgb(0, 0, 204); " class="">file</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/log/ae2641d94773/meth-impl-6839872.4-vconv.patch" style="color: rgb(0, 0, 204); " class="">revisions</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/annotate/ae2641d94773/meth-impl-6839872.4-vconv.patch" style="color: rgb(0, 0, 204); " class="">annotate</a></td></tr><tr style="background-color: rgb(246, 246, 240); " class="parity1"><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">-rw-r--r--</td><td align="right" style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">23819</td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; " class="list"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.5-mtform.patch" style="color: rgb(0, 0, 0); text-decoration: none; " class="list">meth-impl-6839872.5-mtform.patch</a></td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 10px; vertical-align: top; font-family: sans-serif; " class="link"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.5-mtform.patch" style="color: rgb(0, 0, 204); " class="">file</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/log/ae2641d94773/meth-impl-6839872.5-mtform.patch" style="color: rgb(0, 0, 204); " class="">revisions</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/annotate/ae2641d94773/meth-impl-6839872.5-mtform.patch" style="color: rgb(0, 0, 204); " class="">annotate</a></td></tr><tr class="parity0"><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">-rw-r--r--</td><td align="right" style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">89039</td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; " class="list"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.6-access.patch" style="color: rgb(0, 0, 0); text-decoration: none; " class="list">meth-impl-6839872.6-access.patch</a></td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 10px; vertical-align: top; font-family: sans-serif; " class="link"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.6-access.patch" style="color: rgb(0, 0, 204); " class="">file</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/log/ae2641d94773/meth-impl-6839872.6-access.patch" style="color: rgb(0, 0, 204); " class="">revisions</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/annotate/ae2641d94773/meth-impl-6839872.6-access.patch" style="color: rgb(0, 0, 204); " class="">annotate</a></td></tr><tr style="background-color: rgb(246, 246, 240); " class="parity1"><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">-rw-r--r--</td><td align="right" style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class="">19404</td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; " class="list"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.7-misc.patch" style="color: rgb(0, 0, 0); text-decoration: none; " class="list">meth-impl-6839872.7-misc.patch</a></td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 10px; vertical-align: top; font-family: sans-serif; " class="link"><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/ae2641d94773/meth-impl-6839872.7-misc.patch" style="color: rgb(0, 0, 204); " class="">file</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/log/ae2641d94773/meth-impl-6839872.7-misc.patch" style="color: rgb(0, 0, 204); " class="">revisions</a>&nbsp;|&nbsp;<a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/annotate/ae2641d94773/meth-impl-6839872.7-misc.patch" style="color: rgb(0, 0, 204); " class="">annotate</a></td></tr><tr class="parity0"><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class=""></td><td align="right" style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; font-family: monospace; " class=""><br class=""></td><td style="padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; font-size: 12px; vertical-align: top; " class="list"><font face="Helvetica" class="Apple-style-span"><span style="font-size: medium;" class="Apple-style-span"><font face="sans-serif" size="3" class="Apple-style-span"><span style="font-size: 12px;" class="Apple-style-span"><br class=""></span></font></span></font></td></tr></tbody></table></span></div><div class=""><br class=""></div><div class="">____________________________________________________________</div><div class=""><br class=""></div><div class=""><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.1-rename.patch">http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.1-rename.patch</a></div><div class=""><br class=""></div><div class="">rev 3506 : factored part of meth-impl-6839872.patch</div><div class=""><br class=""></div><div class="">Move almost all files from sun.dyn.* to java.dyn.</div><div class=""><br class=""></div><div class="">Exceptions:</div><div class="">&nbsp;- WrapperInstance needs to be a public interface, but is not part of API, so must be in sun.dyn.</div><div class="">&nbsp;- sun.dyn.Access is going away in a subsequent part of this change set</div><div class="">&nbsp;- package-info.java stays</div><div class=""><br class=""></div><div class="">Other changes:</div><div class="">&nbsp;- change occurrences of Access.TOKEN to IMPL_TOKEN</div><div class="">&nbsp;- added java.dyn.MethodHandleStatics to hold IMPL_TOKEN, temporarily</div><div class="">&nbsp;- asked NetBeans to fix imports in all files</div><div class="">&nbsp;- remove MemberName-based test</div><div class="">&nbsp;- remove MethodTypeForm (*)</div><div class=""><br class=""></div><div class="">The removal of MethodTypeForm is a breaking change.</div><div class="">Apart from this change, the software continues to build correctly after this patch.</div><div class=""><br class=""></div><div class="">____________________________________________________________</div><div class=""><br class=""></div><div class=""><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.2-super.patch">http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.2-super.patch</a></div><div class=""><br class=""></div><div class="">rev 3507 : factored part of meth-impl-6839872.patch</div><div class=""><br class=""></div><div class="">&nbsp;- After move from sun.dyn.* to java.dyn, merge sun.dyn superclasses into java.dyn subclasses.</div><div class="">&nbsp;- Move fields and constructor for MethodHandleImpl into MethodHandle. &nbsp;Keep factory methods.</div><div class="">&nbsp;- Rename MethodTypeImpl to MethodTypeForm, thereby moving fields and constructor.</div><div class=""><br class=""></div><div class="">After this change, this JDK software builds and passes basic unit tests with the corresponding JVM.</div><div class=""><br class=""></div><div class="">____________________________________________________________</div><div class=""><br class=""></div><div class=""><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.3-moves.patch">http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.3-moves.patch</a></div><div class=""><br class=""></div><div class="">rev 3508 : factored part of meth-impl-6839872.patch</div><div class=""><br class=""></div><div class="">Move some misplaced methods and constants between classes.</div><div class=""><br class=""></div><div class="">Also:</div><div class="">&nbsp;- Move some functions verbatim into MethodHandleStatics.</div><div class="">&nbsp;- Move raiseException and checkSpreadArgument into MethodHandleNatives, for the JVM.</div><div class="">&nbsp;- Move all of CallSiteImpl into CallSite.</div><div class="">&nbsp;- Move some exception creation functions from MemberName into MethodHandleStatics, with light refactoring.</div><div class="">&nbsp;- Change newNoAccessException to a virtual function MemberName.makeAccessException.</div><div class="">&nbsp;- Remove an extra copy of IMPL_LOOKUP; import it regularly from MethodHandles.Lookup.</div><div class="">&nbsp;- Remove an inconvenient dependency from MethodHandles.&lt;clinit&gt; to IMPL_LOOKUP.</div><div class=""><br class=""></div><div class="">After this change, this JDK software builds and passes basic unit tests with the corresponding JVM.</div><div class=""><br class=""></div><div class="">____________________________________________________________</div><div class=""><br class=""></div><div class=""><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.4-vconv.patch">http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.4-vconv.patch</a></div><div class=""><br class=""></div><div class="">rev 3509 : factored part of meth-impl-6839872.patch</div><div class=""><br class=""></div><div class="">Deal with an external dependency from sun.dyn.util.ValueConversions to privileged MH access.</div><div class="">Remove "raw retype" capabilities from ValueConversions, moving them into the trusted package.</div><div class=""><br class=""></div><div class="">After this change, this JDK software builds and passes basic unit tests with the corresponding JVM.</div><div class=""><br class=""></div><div class="">____________________________________________________________</div><div class=""><br class=""></div><div class=""><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.5-mtform.patch">http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.5-mtform.patch</a></div><div class=""><div class=""><br class=""></div></div><div class="">rev 3510 : Remove MethodTypeFriend, a "wormhole" for privileged communication between a MethodType and its Form.</div><div class=""><br class=""></div><div class="">Use trusted package-private methods on MethodType for such communication instead.</div><div class=""><br class=""></div><div class="">Also, put the internal Invokers struct from a virtual method on MethodType.</div><div class=""><br class=""></div><div class="">After this change, this JDK software builds and passes basic unit tests with the corresponding JVM.</div><div class=""><br class=""></div><div class="">____________________________________________________________</div><div class=""><br class=""></div><div class=""><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.6-access.patch">http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.6-access.patch</a></div><div class=""><div class=""><br class=""></div></div><div class="">rev 3511 : factored part of meth-impl-6839872.patch</div><div class=""><br class=""></div><div class="">&nbsp;- Remove the Access class and all uses.</div><div class="">&nbsp;- Remove most public access modifiers on non-public class members.</div><div class=""><br class=""></div><div class="">This is a large volume of simple change.</div><div class=""><br class=""></div><div class="">All privileged methods become non-public, and lose their first "Access token" arguments.</div><div class=""><br class=""></div><div class="">After this change, this JDK software builds and passes basic unit tests with the corresponding JVM.</div><div class=""><br class=""></div><div class="">____________________________________________________________</div><div class=""><br class=""></div><div class=""><a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.7-misc.patch">http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-impl-6839872.7-misc.patch</a></div><div class=""><div class=""><br class=""></div></div><div class="">rev 3512 : Miscellaneous changes.</div><div class=""><br class=""></div><div class="">After this change, this JDK software builds and passes basic unit tests with the corresponding JVM.</div><div class=""><br class=""></div></div></div>_______________________________________________<br>mlvm-dev mailing list<br><a href="mailto:mlvm-dev@openjdk.java.net">mlvm-dev@openjdk.java.net</a><br>http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev<br></div></div><br></body></html>