Can't get lambda forest to work

Jonathan Gibbons jonathan.gibbons at oracle.com
Mon Jun 14 09:12:34 PDT 2010


On 06/14/2010 09:00 AM, Andrew Haley wrote:
> On 06/14/2010 04:53 PM, Maurizio Cimadamore wrote:
>    
>> 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
>>      
> Thanks.  As I said in my previous reply, that doesn't help:
>
> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java  -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -cp . Closures
> Invalid layout of java.dyn.CallSite at target
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  Internal Error (javaClasses.cpp:48), pid=10544, tid=14015271442
>
>    
>> 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.
>>      
> Thanks, but I can't find those at all.  I can find
>
> /local/lambda/langtools/src/share/bin/java.sh-template
>
> which I guess must be what you mean, but no output file.
>
> Andrew.
>
>    

The langtools dist/bin/* files are only created in langtools "developer 
build" mode, and not in "full JDK build" mode, which you have done.  If 
you wanted to build those files, you'd have to go to langtools and drive 
"make" or Ant directly, using an Ant target like build-all-tools. But, 
nothing there will help with the fatal runtime error you have uncovered. 
Sorry.

-- Jon


More information about the lambda-dev mailing list