I uploaded the source code as of today (2011-07-12 in the pacific time zone of the USA) to Github. It is not working code, although it does compile and the samples do run.
My original plan was to upload working code as an alpha release. However, unexpected events have changed these priorities somewhat.
I feel it is important to establish clearly the intellectual property, copyright and licensing of what I’ve spent the last year of my life working on. The worst thing would be for this technology to die due to legal ambiguity. My hope is that publishing this work, though it is unfinished, establishes greater clarity when it comes to issues of IP.
The source code licensing is The Artistic License 2.0 of The Perl Foundation. I didn’t put too much thought into this. I really admire Perl and the culture around it. So I thought if it is good enough for Perl 6, it must be good enough for this project.
The project name “chai” has no special meaning. I just drink huge amounts of chai tea. It’s my favorite. I also liked this name as it is short with four letters, like Java. Java coffee and chai tea, get the joke?
I also don’t claim any of this code is the best or the right way. The project has and continues to be very organic. I just muddle my way through problems. So far, every problem has had a solution.
So where are things? It’s all about the JIT now. All the other pieces are in place: virtual machine front-end; middle-end tracing; scheduling; memory management. The JIT may be the sexy core and what gives the performance. But without the other supporting parts, it can’t work. They had to be built first.
I feel a little guilty as I took a month off recently. I had lots of fun visiting fine arts museums, thinking about economics and people, and rediscovering photography. This waste of time may have been necessary, though. Afterwards, the last problem of memory management came together. It was deeper than I had first thought.
Please bear with me. I will not disappoint!