Can't get lambda forest to work

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Mon Jun 14 08:53:23 PDT 2010


On 14/06/10 16:25, Andrew Haley wrote:
> This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda
>
> It doesn't seem to work.  I compile
>
> public class Closures
> {
>    public static void main(String[] args)
>    {
>      #int() fortyTwo = #()(42);
>
>      System.out.println("Hello, World!" + fortyTwo.());
>    }
> }
>
> but it doesn't run:
>
> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac -XDallowFunctionTypes -source 7 Closures.java
> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java  -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles  -cp . Closures
> OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in this JVM.  Use -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic to enable.
> Exception in thread "main" java.dyn.NoAccessException: cannot access: *.java.dyn.MethodHandle.invoke()int
>          at sun.dyn.MemberName.newNoAccessException(MemberName.java:421)
>          at sun.dyn.MemberName.newNoAccessException(MemberName.java:412)
>          at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517)
>          at java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268)
>          at sun.dyn.Invokers.exactInvoker(Invokers.java:66)
>          at sun.dyn.Invokers.genericInvoker(Invokers.java:74)
>          at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354)
>          at Closures.main(Closures.java:7)
> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version
> openjdk version "1.7.0-internal"
> OpenJDK Runtime Environment (build 1.7.0-internal-aph_2010_06_10_17_35-b00)
> OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode)
>
> Any ideas what might be going wrong, please?
>    

You'll need the following VM options:

-XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles 
-XX:+EnableInvokeDynamic

alternatively, you could use the handy scripts for invoking java/javac 
that should appear in the langtools/dist/bin directory. Those scripts 
automatically sets things up for you.

Maurizio
> Thanks,
> Andrew.
>
>
>    



More information about the lambda-dev mailing list