My favorites | Sign in
Project Logo
                
Code license: MIT License
Show all Featured wiki pages:
KahluaJ2SEUtil KahluaManual
Feeds:
People details
Project owners:
  kristofer.karlsson
Project committers:
bogusandre, per.malmen, KevinRLundberg

Try it yourself

For convenience, there is a simple J2ME midlet for running a Lua interpreter on your phone. Installation instructions:

  1. Download kahluainterpreter.jar
  2. Send it to your mobile phone with support for J2ME.
  3. Start it. Enter lua scripts on the input line and then hit run to execute it.

Contents

Kahlua is a Virtual Machine together with a standard library, all implemented in Java. It tries to emulate Lua as much as possible, while still reusing as much as possible from Java. Nothing has been cloned or ported directly from Lua, instead it's done by reverse engineering the features that exists in Lua, mostly by using the Lua reference manual and PiL as reference.

The target platform for Kahlua is J2ME (CLDC 1.1), which is commonly included in mobile phones. Everything in CLDC 1.1 is also included in standard Java so this will run in most Java environments.

Kahlua can easily be integrated with a J2ME project - see the example midlet in the distribution. The Java source code is just one class file and about 130 lines of easy to read Java.

Kahlua may also be used for J2SE- or J2EE projects, but you would need to use a stand alone lua compiler, since Kahlua lacks one. This reduces the usefulness of Kahlua on J2SE environments.

Goals

The Kahlua project has the following goals (in no particular order):

License

Kahlua is distributed under the MIT licence which is the same as standard Lua which means you can pretty much use it in any way you want. However, I would very much appreciate bug reports, bug fixes, optimizations or simply any good idea that might improve Kahlua.

Major changes since Kahlua release 2009-04-26

Major changes since Kahlua release 2009-02-11

Major changes since Kahlua release 2008-10-11

This means that you:
  1. must stop assuming that strings from Lua have been interned and can be compared for equality by using identity.
  2. should stop interning strings that you send to Lua.
  • Environments are stored per LuaThread, not LuaState. This means that you can't access LuaState.environment any more - however, there is now a convenience method LuaState.getEnvironment() that gets the environment from the current thread.









Hosted by Google Code