It’s been a little while since I last blogged, and things have moved on quite a bit with the SoC project. Last week, I finally got a copy of the huge GCC tree (all several gigabytes of it), and played about with GCJ. I now have an implementation of the runtime bean for it.

Unfortunately, it’s not going anywhere fast, as I still don’t have a copyright assignment for GCC. For some reason, the FSF folks now want a disclaimer from the University, which seems to be nigh on impossible to obtain (no-one I’ve spoken to knows anything about the legal stuff at the Uni) and unnecessary (I’m not working on this for my research, which is what the Uni policy covers).

That aside, I’ve broken our original proposed strategy to avoid this problem, and started writing some more beans. This week, I added the class loading and thread bean interfaces to HEAD, along with an implementation and new VM interface for the class loading bean. The thread bean is proving to be quite an undertaking. For one thing, we were missing some 1.5 threading methods which are needed by the bean. It seems to want lots of information about the thread, including monitoring when it changes state, how many times it goes in to the blocked, waiting and timed_waiting states, and, if contention monitoring is supported, how long it spent in these states. Phew! The changes were so big I haven’t written the bean yet; I thought just the interface and the ThreadInfo class would be enough in one patch. Hopefully, the others will be less disruptive to the VMs.