I built Jikes RVM with its optimizing compiler and adaptive system last night, using entirely free tools. Hooray, another milestone. I use a two-stage build process; Kaffe OpenVM makes a Jikes RVM BaseBase* build (one with the baseline compiler only). Then we make an *Adaptive* build using the just-built BaseBase Jikes RVM to expand the templates and using Kaffe to do the Host VM's other work.
I've already merged the code to make optimizing builds into the CVS trunk, including what I hope is full documentation on the process. (I would like to get feedback on the documentation.)
We plan to cut the 2.3.2 release, including these features, next week. (We missed cutting the release last week, due to server trouble.)
There are several next steps. One of them is to add the free builds to the current Jikes RVM nightly regression test suite. Another is to adapt that regression test suite so that it can be run by a remote developer who doesn't have any of the unfree benchmarks (SPECjbb, etc.), and to further adapt it so that it doesn't require you to have all of the the free benchmarks installed. My goal is to let anyone build Jikes RVM using free tools and immediately run regression tests against the just-built VM.
Once the free builds pass all the tests consistently, I hope to work with Debian or another distribution so that we can ship a free working JDK and JRE that use Jikes RVM; SuSE Linux has included a kaffe package for years (at least since SuSE 6.1, which I installed in May of 1999).
Yet another day of staying up late last night and getting up early to work on Jikes RVM. We're prepping for the 2.3.2 release. I'd like 2.3.2 to come out able to make optimizing builds using entirely free tools, not just able to make images that use the baseline compiler.
There's a bug in how the InstructionFormats.RAW file is generated when we host the build under Kaffe OpenVM. Only a few characters are different out of over 840KB. But that's enough to break optimizing builds.
In a fond hope of resolving the problem, I started to make builds using gcj and gij. Well, I just made gij 3.3.3 die with a segmentation fault; this time while building the BootImageWriter. I suppose it's comforting to know that Jikes RVM isn't the only system with issues. I can see, though, why most people who aren't ideologically committed to free software probably use the Sun JDK or a Sun-derived one (Blackdown's or IBM's).
I was interested to read about the Monotone distributed version control system in tromey's diary entry posted on Planet Classpath. It would have been nice to have had something like Monotone when the Jikes RVM CVS server went down earlier this month. I wouldn't want to trust our repository to it as the primary technology (CVS is far older and more stable) but I wonder whether we couldn't easily put together some sort of unidirectional CVS => Monotone gateway . The other direction would be difficult, of course, since CVS doesn't have Monotone's features.
So, I read that the European Commission will place obstacles in the way of Microsoft "using Windows to gain an edge elsewhere". I am excited about what this may mean for greater diversity in commonly-used software, and about the opening up of the protocols that Microsoft software uses to communicate.
Some choice quotations from the article:
I have uploaded all of my changes for building Jikes RVM using Kaffe as a bootstrap VM -- they're now available in the CVS repository and will make it into the 2.3.2 release. I'm still documenting them, though.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!