<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div><br></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>From: </b>"Brian Goetz" <brian.goetz@oracle.com><br><b>To: </b>"Dan Heidinga" <heidinga@redhat.com><br><b>Cc: </b>"leyden-dev" <leyden-dev@openjdk.java.net><br><b>Sent: </b>Thursday, August 4, 2022 6:36:27 PM<br><b>Subject: </b>Re: Bytecode transformation investigation<br></blockquote></div><div data-marker="__QUOTED_TEXT__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><font size="4"><font face="monospace">Yes, sorry for the delay, I've
        been trying to organize my thoughts on this.  <br><br>
        Overall I am very happy to see this investigation.  It is
        obviously relevant to a number of points across the Leyden
        spectrum.  I had done a related thought experiment at one point
        about behavioral differences, and came up with a similar list
        with respect to LambdaMetafactory:<br></font></font><br>
    <font size="4"><font face="monospace"><font size="4"><font face="monospace"> - proxy class goes from hidden to
            non-hidden;<br>
             - perturbs the set of nestmates of both the proxy class and
            capturing class;<br>
             - potentially perturbs the timing of loading the proxy
            class (though this can be controlled);<br>
             - freezing of bootstrap behavior -- if the bootstrap
            behavior were to change between build time and runtime
            (e.g., different JDK), any changes wouldn't be reflected in
            the execution. <br><br>
            Your "stack traces" observation wasn't on my list, so that's
            a good catch. </font></font></font></font></blockquote><div><br></div><div>also, you can not change the fields of the classes by reflection and the field access are constant folded, the last one is vicious because it means that the performance are not the same.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>RĂ©mi<br data-mce-bogus="1"></div><div><br></div></div></div></body></html>