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