hg: mlvm/mlvm/jdk: added tests and CoroutineLocals

Rémi Forax forax at univ-mlv.fr
Mon Jun 7 14:03:43 PDT 2010


Le 07/06/2010 20:23, Charles Oliver Nutter a écrit :
> Exciting :) Once you get it in, perhaps you can release the changes
> you made to JRuby. I have no problem shipping a reflectively-loaded
> version of Fiber that uses JVM coroutines! (and I'd like to do the
> same for 1.8 mode Enumerator, which also requires coroutine support)
>    

It remember something.
I wonder if we can try to release a binary version of the DaVinci VM,
let say 2 weeks before the JVM Summit.

The idea is to coordinate our schedules to produce a set of patches
applicable on the same VM version. If we got that I will be able
(and I think I won't be the only one) to produce a runtime that
use the corresponding features on non trivial examples.

I've done that for the FOSDEM last February but
I was not able to have all patches working for c1 and c2 on Linux.

My idea is to do a binary release with at least indy, coroutine, tail calls
on Mac, Linux, Solaris and Windows.

What do you think ?

Rémi

> On Mon, Jun 7, 2010 at 5:17 PM, Lukas Stadler<lukas.stadler at jku.at>  wrote:
>    
>> Well, I finally got my hands on a Mac machine, I'll investigate as soon
>> as I've finished installing.
>>
>> - Lukas
>>
>> On 03.06.2010 03:55, Stephen Bannasch wrote:
>>      
>>> At 1:06 PM -0400 6/2/10, Stephen Bannasch wrote:
>>>
>>>        
>>>> Hi Lukas,
>>>>
>>>> It's great to see coro land.
>>>>
>>>> I'm now getting these errors trying to build coroutine.cpp on MacOS X 10.5.8:
>>>>
>>>> ./hotspot/src/share/vm/runtime/coroutine.cpp: In static member function 'static Coroutine*
>>>> Coroutine::create_coroutine(JavaThread*, CoroutineStack*, oopDesc*)':
>>>> ./hotspot/src/share/vm/runtime/coroutine.cpp:282: error: 'coroutine_start' was not declared in thisscope
>>>>
>>>>          
>>> Taking a closer look the problem is obvious -- the method coroutine_start is only defined in two #ifdef blocks, one for WINDOWSand one for LINUX.
>>>
>>> I tried duplicating the Linux implementation wrapping it in #ifdef __APPLE__
>>>
>>> but I got he following errors compiling hotspot/src/share/vm/runtime/signature.cpp:
>>>
>>> ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp: In function 'void create_switchTo_contents(MacroAssembler*, int, OopMapSet*, int&, int, BasicType*, VMRegPair*, BasicType, bool)':
>>> ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp:3446: error: call of overloaded 'movptr(Address, NULL)' is ambiguous
>>> ./hotspot/src/cpu/x86/vm/assembler_x86.hpp:2196: note: candidates are: void MacroAssembler::movptr(Address, intptr_t)
>>> ./hotspot/src/cpu/x86/vm/assembler_x86.hpp:2198: note:                 void MacroAssembler::movptr(Address, RegisterImpl*)
>>> ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp:3449: error: call of overloaded 'movptr(Address, NULL)' is ambiguous
>>> ./hotspot/src/cpu/x86/vm/assembler_x86.hpp:2196: note: candidates are: void MacroAssembler::movptr(Address, intptr_t)
>>> ./hotspot/src/cpu/x86/vm/assembler_x86.hpp:2198: note:                 void MacroAssembler::movptr(Address, RegisterImpl*)
>>> ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp:3491: error: call of overloaded 'movptr(Address, NULL)' is ambiguous
>>> ./hotspot/src/cpu/x86/vm/assembler_x86.hpp:2196: note: candidates are: void MacroAssembler::movptr(Address, intptr_t)
>>> ./hotspot/src/cpu/x86/vm/assembler_x86.hpp:2198: note:                 void MacroAssembler::movptr(Address, RegisterImpl*)
>>> ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp:3492: error: call of overloaded 'movptr(RegisterImpl* const&, int)' is ambiguous
>>> ./hotspot/src/cpu/x86/vm/assembler_x86.hpp:2194: note: candidates are: void MacroAssembler::movptr(RegisterImpl*, intptr_t)
>>> ./hotspot/src/cpu/x86/vm/assembler_x86.hpp:2195: note:                 void MacroAssembler::movptr(RegisterImpl*, RegisterImpl*)
>>> ./hotspot/src/cpu/x86/vm/assembler_x86.hpp:2200: note:                 void MacroAssembler::movptr(RegisterImpl*, RegisterOrConstant)
>>> make[6]: *** [sharedRuntime_x86_32.o] Error 1
>>> _______________________________________________
>>> mlvm-dev mailing list
>>> mlvm-dev at openjdk.java.net
>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>>
>>>        
>> _______________________________________________
>> mlvm-dev mailing list
>> mlvm-dev at openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>
>>      
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>    



More information about the mlvm-dev mailing list