Intrinsify j.l.i.ConstantBootstraps?
Johannes Kuhn
info at j-kuhn.de
Sat Sep 21 23:16:33 UTC 2019
Hi,
just watched Brian Goetz' talk "Java Language Futures: 2019 Edition"
where he said the best kind of feedback is telling you things you didn't
know. I think this might be worth a shot.
I recently discovered that instead of using Lookup.findVarHandle(...) in
a static block; surrounded with try-catch, I could write
private static final VarHandle FOO = ConstantBootstraps.fieldVarHandle(
MethodHandles.lookup(), "foo", VarHandle.class, Test.class, int.class);
The downside is the mention of VarHandle.class in the arguments, but
this downside is more than acceptable because it removes a static block
with a try-catch.
I now wonder if it might be a good idea to intrinsify the methods in
java.lang.invoke.ConstantBootstraps?
I did a search on GitHub and found only one such use: in the JDK itself[1].
I hope to maybe start an interesting discussion about this.
For example, MethodHandles.lookup() is not a constant, but I like the
idea to pass it as explicit argument to an intrinsified ldc() method
from JEP 303.
[1]: http://hg.openjdk.java.net/jdk/jdk/rev/c5c827f3bf72#l2.17
More information about the amber-spec-observers
mailing list