A VM in Java with tail-calls and continuations

Tuesday, October 25, 2005

A new minor release - 1.0.1

That's right, I've made a maintenance release a couple of days ago.

It corrects a minor issue that didn't manifest itself on files compiled by javac but that was, nevertheless, a bug since it affected legal .class files.

Along with the bug-fix came new features (not big, but I believe cool): checkout the forkThread and the saveCurrentTo methods on the Continuation class. You can also load and return to a serialized continuation right from the command line, see the main method for details. And, as you can gather from the links, the documentation has been updated accordingly.

All these changes have also been merged from the rel-1.0-devel branch (where they originated) to the main trunk.

That's all for now, thanks!

Wednesday, October 05, 2005

Is it alive?

Hell, yes! Sure it is! I took a break for a couple of weeks, but development hasn't stopped - there is much to do, some will to do it, and tiny bits of free time here and there too.

I've been back behind the keyboard for a few weeks now. The released code seems to be holding on, and I haven't found any unexpected bugs. As such, the first news is - I've just re-released version 1.0b1 re-branded as 1.0.

Besides that, I've started implementing a couple of simple “user level” features (“user level” as in “you could have done them yourself”), namely a static method in Continuation that “forks” a thread much like Unix's fork for processes. These superficial changes will be released soon (as in, without much further testing), in something like a version 1.0.1. If curiosity bites you, these changes are happening in branch rel-1.0-devel, and will be merged with the trunk as soon has they're ready.

The way I see it, these “simple” things (like the new fork, generators and non-determinism) are beneficent in that, being useful, they both show the potential of continuations in general, and help new comers get their mindsets around how to work with continuations (at least in the JauVM).

I've also been revising the full source code, correcting the (not so many) shortcuts I took in order to meet Google's deadline. I'll be releasing (not so soon) something like a version 1.1, with very few visible changes on the outside, but with a revamped core, being (hopefully) more performant, and better designed (or I should say, more according to the intended design) if a bit more verbose.

About Google and the Summer of Code, all I can say is that my mentor liked the outcome, and I'm pretty confident my project will be approved. I haven't received any official confirmation, and whatever the prize, it's still on hold thanks to IRS issues.

All in all, it was a great experience, and more importantly I liked the outcome (tough I'll like the income too!).