Hi!

Am 2012-04-02 23:40, schrieb Mark Roos:
A question I have on your coro implementation is just how sensitive it
is to changes in HotSpot.  I am planning to give it a go and am wondering
if I need to be a Hotspot expert as well ( in case it breaks ).
It is independent of most subsystems, for example there are no changes relating to the compilers, gc, classloading, ... What it does touch is the stack walking code. There were some changes for the jsr292 stuff (ricochet frames), but I don't expect that to happen again any time soon. I think a lot of the work will center around the interface that is presented to the Java programmer. Changes to the interface should only require minor tweaks in the C++ code, if at all.

On the same topic I recall that you build a small object code piece to give access to the stack. I believe this in done during launch. If true is there
an explanation of what this code does somewhere?
Yes, there is a small piece of code that is created on startup using the macro assembler. The reason that this isn't written in Java or C++ is that it needs to be fast, has to set registers (rsp, rbp, ...) directly and cannot contain any safepoints. Figure 4.4 in my master's thesis (see below) gives an overview of what this code does.
p.s. I see you made it to Amazon
Serializable Coroutines for Java Virtual Machines: An efficient implementation based on the HotSpot(TM) Java Virtual Machine
Yes, but don't bother buying it, it's pretty much the same as my Master's thesis :-)
http://ssw.jku.at/Research/Papers/Stadler11Master/

- Lukas
_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to