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