Can't get lambda forest to work

Rémi Forax forax at univ-mlv.fr
Mon Jun 14 10:52:09 PDT 2010


Le 14/06/2010 18:58, Andrew Haley a écrit :
> On 06/14/2010 05:39 PM, Andrew Haley wrote:
>    
>> On 06/14/2010 05:28 PM, Maurizio Cimadamore wrote:
>>      
>>> I tried launching the 'java' launcher from a recently built lambda repo;
>>> I added the options:
>>>
>>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles
>>> -XX:+EnableInvokeDynamic
>>>
>>>
>>> and that seemed to work, at least it did for me. I noticed you are using
>>> a 64-bit setting, while I'm on 32-bit, could that be the issue?
>>>        
>> Maybe.  I'm just going to step through the VM in a debugger and have a look.
>> I'll let you know what I find.  :-)
>>      
> OK, I found.  The VM is looking for java_dyn_CallSite.target
> in java_dyn_CallSite::compute_offsets()
>
> in the Lambda forest, this field is commented out:
>
>      /*
>
>      // Fields used only by the JVM.  Do not use or change.
>      private Object vmmethod;
>      int callerMID, callerBCI;  // supplied by the JVM
>
>      private MethodHandle target;
>
>      final Object caller;  // usually a class
>      final String name;
>      final MethodType type;
>      */
>
> but this code was commented out in this change:
>
> user:        jrose
> date:        Thu Jan 07 16:16:45 2010 -0800
> summary:     6914665: update jdk code for JSR 292 (post 6858164)
>
> Cc'ing hotspot-dev in the hope of enlightenment...
>
> Andrew.
>    

This is a known bug :)
Since b95, John Rose commits support for lightweight callsite (among 
other things)
but forget to commit the JDK runtime part.

see http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-May/001728.html
for a workaround.

Rémi



More information about the lambda-dev mailing list