|
On 10 Dec 2009, at 14:04, David Jones wrote:
[more from me in a follow-up, this is the "approved" announcement]Ravenbrook Limited and Nokia Corporation are pleased to announce the open source project Jill:jillcode.googlecode.com
I have to say that personally I am very pleased that this has become possible.
For those with long memories on the list, this is the project that Paul Hudson (and me in my pobox.com disguise) has occasionally mentioned over the past few years when someone asks "is there an implementation of Lua that can run on pure JME". It became rather frustrating to say "there is one that we wrote, but it got buried by the collapse of a company".
It was written by me and Mark Tillotson at Ravenbrook, slightly more than 3 years ago, for a commercial client. Who were quite happy with it, until they went bust. At the time I think we tried to contact the receivers to see if we could do anything with it, but no joy. Then fast forward to 2009, and the rumour mill said that some of our friends might own the code. They didn't, but they knew who did (namely, Nokia). And with some help from some people inside Nokia we were able to get Nokia to open source it.
Jill (Java Implementation of Lua Language) is a complete implementation of Lua 5.1 in pure Java. It is intended to be used on mobile platforms, JME, but also runs on JSE. The source code is owned by Nokia and made available under an open source licence (see below). Jill was originally written by Ravenbrook (under contract to a different company) and we will manage the open source project at jillcode.googlecode.com.
I say "we will manage the open source project at jillcode.googlecode.com" but that just means I'll keep an eye on the googlecode project. We're fully open to community contributions and warmly welcome everything you good people in the Lua community have to offer. It's been 3 years since I've looked at this project (apart from recent cleaning and slapping on of copyright notices). In particular, I no longer have an active JME development environment (the phone I used for testing 3 yeas ago was the property of the client).
"complete" above means that Jill runs 5.1 lua code unmodified. It includes its own compiler, and internally implements a VM identical to the PUC-Rio Lua. You can, if you like, compile Lua scripts offline and have Jill run the bytecodes on the phone (the original client wasn't particularly interested in this, but it made the development way easier).
Jill has an API so that Java programs can embed Jill, just like C programs embed PUC-Rio Lua. It's basically the standard Lua API "translated" into Java, and with the stack (almost) thrown away.
Java's GC (well, the JVM's really I guess) is used to GC the Lua objects. One consequence of this, which isn't tested but should work, is that "separate" Lua states (instances in Java) can share objects and it all just works, no GC hassle.
David Jones