another Mac OS X mlvm build
Attila Szegedi
szegedia at gmail.com
Mon Feb 7 11:55:09 PST 2011
That indeed works - thanks for the hep Rémi!
FWIW, I'm updating my dynamic linker framework library to work with this version of MLVM; I got everything to compile after some nontrivial amount of work (Linkage went away, for one thing :-) ) and was stumped on this for running my test suite. Now that's eliminated, I hope I'll be able to roll out a new version of the library soon.
Attila.
On Feb 7, 2011, at 11:40 AM, Rémi Forax wrote:
> On 02/07/2011 07:00 PM, Attila Szegedi wrote:
>> Hi Stephan (and MLVM folks in general),
>>
>> I have problems with this build. Here's a _very_ minimal testcase:
>>
>> public class X {
>> public static void main(String[] args) {
>> new java.dyn.MutableCallSite(java.dyn.MethodType.methodType(Void.TYPE));
>> }
>> }
>
> I can reproduce it on Linux.
> There is a bug in the initialization order between Lookup and
> MethodHandleImpl.
> Lookup should be initialized first then MethodHandleImpl but in
> MethodHandles (near line 306)
> IMPL_TOKEN.getClass() is called before MethodHandleImpl.initLookup (near
> line 316)
>
> The temporary workaround is to initialize Lookup first:
> public static void main(String[] args) {
> MethodHandles.lookup();
> new
> java.dyn.MutableCallSite(java.dyn.MethodType.methodType(Void.TYPE));
> }
>
>
>> compiling then running it produces this output:
>>
>> $ ~/Downloads/java-1.7.0-internal-mlvm-2011_01_31/bin/javac X.java
>> $ ~/Downloads/java-1.7.0-internal-mlvm-2011_01_31/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic X
>> VM option '+UnlockExperimentalVMOptions'
>> VM option '+EnableInvokeDynamic'
>> Exception in thread "main" java.lang.InternalError
>> at sun.dyn.MethodHandleImpl.<clinit>(MethodHandleImpl.java:141)
>> at java.dyn.MethodHandles.<clinit>(MethodHandles.java:63)
>> at java.dyn.MethodHandles$Lookup.<clinit>(MethodHandles.java:319)
>> at java.dyn.CallSite.<clinit>(CallSite.java:228)
>> at X.main(X.java:5)
>>
>> I tried adding -XX:+EnableMethodHandles too, and that didn't help either.
>>
>> Here's the version:
>> $ ~/Downloads/java-1.7.0-internal-mlvm-2011_01_31/bin/java -version
>> openjdk version "1.7.0-internal-fastdebug"
>> OpenJDK Runtime Environment (build 1.7.0-internal-fastdebug-stephen_2011_01_31_18_20-b00)
>> OpenJDK 64-Bit Server VM (build 20.0-b06-fastdebug, mixed mode)
>>
>> This is on Mac OS X 10.6.6
>>
>> Attila.
>
> Rémi
More information about the mlvm-dev
mailing list