lua-users home
lua-l archive

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


Hi,
I've just released MoonSharp 0.7.0.

MoonSharp is a solution for Lua scripting in C# and other .NET languages, running on .NET, Mono and Unity3D.

It includes an interpreter and a debugger and - in the near future - will include functionality to allow easy implementation of Lua source analysis tools.

It's already being used in a Unity project under development and in various .NET projects with success. Xamarin support will be verified (and distributed as a package) if and when the application form for the project will be accepted by Xamarin themselves. That said, I'm pretty confident it should work with Xamarin out of the box :).

Everything has been written with a "clean room" design - reading specifications and probing the real Lua interpreter to understand the behaviour - except for parts of the string library (string.format and patterns) which are taken from a similar project, KopiLua, which in turn is a port to C# of the original 5.1 code.

The interpreter runs a custom virtual machine (which, in contrast to standard lua vm, is dual-stack based). It supports Lua 5.2 features with a few differences made to accomodate .NET integration in a better way (the biggest one, that strings are UTF-16 and binary data is stored in the least significant byte, gaining a lot of performance in strings interop with .NET code, while losing memory space when the string is used as a blob).

It passes all relevant tests in Lua TestMore (that is, all tests which apply to the project and are not micro-differences in error messages or intentional differences like, for example, string.char working for codes > 255).

As far as standard library goes, most of it is implemented and working well. Still missing, but next in roadmap, are "file", "io" and "os".

The debugger is remote, thus supporting debugging of processes embedding the interpreter which cannot display UI on their own: full screen games, services, etc. It offers a user interface running in a standard web browser with Flash installed, so no additional software is required for the user to install (apart Flash, which likely they already have). Of course, simply by implementing the network protocol or the IDebugger interface, anyone can program her/his own debugger.

If anyone is interested, more information, downloads etc. can be found at http://www.moonsharp.org .


Hope this helps someone out there :)

-- Marco