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