Lazy Method Handle update
John Rose
john.r.rose at oracle.com
Wed May 9 14:14:41 PDT 2012
On May 9, 2012, at 1:37 PM, Mark Roos wrote:
>
> Quite interesting John. A few curiosity based questions.
>
> we are now representing the argument transformations using
> a simple AST-like IR, called a LambdaForm
>
> would this be something we could inspect, build or manipulate?
Only in privileged code. Like the sun.misc.Unsafe API, LFs and the associated non-public MH APIs are designed to be partially type-unsafe, and usable only from trusted code.
There may be a type-safe way to use them beyond implementing JSR 292, but that would require further research. (Which this community enjoys!)
For an approximately current sketch of lambda forms, see this file:
http://hg.openjdk.java.net/mlvm/mlvm/hotspot/file/tip/meth-lazy.txt
Especially the section "## form". A key feature of LFs is that their grammar is regular but not recursive (I can't resist: sub-Chomskian).
> This form can be easily rendered down to bytecodes
>
> Are these jvm bytecodes or internal to hotspot? Again would this be a space one
> could play in?
Vanilla JVM bytecodes. Some of the magic comes from the methods they are able to call, like MethodHandle.invokeBasic. These work (in a sense) like extended bytecodes.
> thanks for the update
My pleasure.
— John
More information about the mlvm-dev
mailing list