<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>"-" <liangchenblue@gmail.com><br><b>To: </b>"valhalla-dev" <valhalla-dev@openjdk.org><br><b>Sent: </b>Saturday, September 23, 2023 4:27:24 AM<br><b>Subject: </b>Regarding the latest JEP 401 update<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;"><div dir="ltr"><div>Hello,</div></div></blockquote><div><br></div><div>Hello,<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><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;"><div dir="ltr"><div><br></div><div>First thanks to the expert group and Dan for an update to JEP 401! The updated version looks very straightforward and actionable.</div><br><div>I have a few comments in mind:</div><div>1. Why are method descriptor's types preloaded? They are not part of the object layout.</div></div></blockquote><div><br></div><div>They are part of the method calling convention. We want to try to avoid boxing when calling methods that take a value type as parameter.<br data-mce-bogus="1"></div><div>For that we need to know if a parameter type/return type is a value type or not.</div><div>This is especailly important for virtual methods (methods that can be called through a vtable) because the vtable/itable are populated early, at least in the case of Hotspot, other VMs may differ.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><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;"><div dir="ltr"><div><br></div><div>2. API support should mention java.lang.reflect.AccessFlag.</div><div>3. More value classes aside from Optional can be migrated: OptionalInt, OptionalDouble, OptionalLong.</div><div><br>Best,</div><div>Chen Liang</div></div></blockquote><div><br></div><div>regards,<br data-mce-bogus="1"></div><div>RĂ©mi<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div></div></div></body></html>