RFR 8233920: MethodHandles::tryFinally generates illegal bytecode for long/double return types
John Rose
john.r.rose at oracle.com
Wed Nov 13 20:04:54 UTC 2019
On Nov 13, 2019, at 11:24 AM, Claes Redestad <claes.redestad at oracle.com> wrote:
>
>> Thanks for suggesting that Vladimir. That indeed is how the existing code is organized.
>
> Yes, not very startup friendly... ;-)
No, but it’s maintainer friendly. We can walk and chew gum at the same time.
Is it time to think about a jlink plugin which inlines simple method calls?
Perhaps we need to wait until we understand (semi-)closed-world packaging.
Long, long ago, a very early version of javac did inlining of simple method calls.
That functionality was removed when we realized that this was placing “getfield”
instructions in classes which didn’t have access to the referenced private fields,
causing code to break. It also messed up the binary compatibility story required
to make sense of independently recompiled class files. How innocent we were
back then. We won’t make those same mistakes again, but we could try the
same trick again, more carefully, in jlink or some other static packaging workflow.
— John
More information about the core-libs-dev
mailing list