lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Are you planning on adding in the ability to hook native JS similar to what we can do today with C and other native languages in Lua?

 - Jeremy


On Thu, May 30, 2013 at 1:31 PM, Alon Zakai <alonzakai@gmail.com> wrote:
Hi everyone,

I'd like to present lua.vm.js, a new project that ports the Lua VM to _javascript_ using Emscripten. The goal is to get the full Lua language running on the web, so people can use Lua there.

main page: http://kripken.github.io/lua.vm.js/lua.vm.js.html
repl: http://kripken.github.io/lua.vm.js/repl.html
The idea is that by compiling Lua to asm.js, a subset of _javascript_ that is easy to optimize, the Lua VM can run at nearly the speed it would run normally on your machine. Benchmarks show it can run at about half the speed of a native build, which should be more than enough for many use cases I think, and this is expected to improve.

Comparison to other approaches for running Lua on the web:

* This is a straightforward compilation of Lua 5.2.2. So no effort is needed to recreate all the work done on Lua, we just compile it to JS like we would compile it to x86 or ARM, and get the full language "for free".

* This uses only standard stuff on the web - _javascript_ - and does not require anything nonstandard or proprietary (like Flash, NaCl, etc.). So it should run in any modern browser.

* Speed will vary by browser, depending on the power of the JS engine on this type of code (you can run a benchmark on the main page in those links). The half native speed figure from before is what I get on my machine, running Firefox nightly. But even if it is less fast on another browsers, the good thing about the JS speed race is that they all get faster in order to match whichever is better at something, so I would expect this to become fast everywhere.

Hopefully this project will be interesting to people. It would be great to get feedback and help from Lua users and developers to improve it and make it something that's useful for people.

- Alon Zakai