Murga-Projects Forums

Full Version: murgaLua 0.7.0 coming soon
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

The biggest problem right now is with documentation (as ever), but I am hoping I'll make good progress over Easter and release something.

The changes are substantial enough to start the 0.7.0 family with them :-)

And everything works across my 6 supported platforms right now.

I'll post more later.

I'm sooo looking forward to it.
Did you remember to include LuaAI Awww crap. I was hoping for a joke about Skynet MurgaLua bots, but apparently there is already a LuaAI project...DAMN YOU GOOGLE! You always ruin my gags with precedents!

Testing builds are available for any platform on request, however, I don't want them out in the wild (so I that I don't end up with incompatible builds as happened before).

No public download, but do ask for a build if you want to play ;-)

Progress update :
  • Overhaul of build process to better support multiple architectures
  • OpenSolaris, FreeBSD and ArmV4 (OpenMoko) platforms now supported
    (Binaries too!)
  • Sound integration and cross platform fixes on all platforms
  • LuaBitOp replaces bitlib due to portability and usability issues
  • Copas upgraded to 1.1.4
  • Lpeg upgraded to 0.9
  • LuaFilesystem upgraded to 1.4.2
  • lzlib upgraded to 0.4-work2
  • Encrypted database container support
    (Will make more modular in next release)
  • At least three editions per platform including command-line only
    (Explained in next post)
  • All code in Git, makes things easier
  • Many smaller tweaks and fixes
Outstanding/pending issues :
  • Documentation
  • Half decent lunit test coverage
    (This is even more important as many of the APIs have bugs on platforms they where never meant to support)
  • Table support incomplete, need to do some more work before release.
  • FLTK 1.3 upgrade created a lot of problems, Unicode is linked to this so will have to wait.
Embedded web server was a bad idea, and will be released as an example instead.

I am pretty happy with how it is shaping up :-)

Core, Lite and Full :

Current builds weigh in at roughly 180k, 440k and 610k respectively on Windows (the last build I did).

The idea is that you can choose to compile or deploy with whatever best suits your target environment ...
Although I would always favor developing against the full platform.

Core murgaLua includes the core murgaLua functionality for the console :
  • XML support through murgaLua bindings
  • Efficient search and manipulation of data with murgaLua APIs
  • Storage of data with support for encryption through snlcrypt
  • Interface with native system APIs (DLLs, SOs, etc), with Alien
  • Comprehensive networking support though luaSocket, enhanced through copas and coxpcall
  • Interface to the filesystem with LuaFileSystem
  • Compress data with LZO
  • Customized version of luaSys for system and date functions
  • Additional system, utility and debug functions in murgaLua
  • All versions support the compiler

    (APIs : alien, luaLZO, iostring, slncrypt, luasys, luafilesystem, luaSocket, copas, coxpcall, MurgaLuaLib (system, c, lua, debug))
Lite murgaLua includes the above plus the FLTK api, and is in keeping with the sub 500k dream :
  • All fltk binding features
  • Additional murgaLua FLTK utilities
Full murgaLua is the recommended no-compromises release :
  • Encrypted database support (custom/standard sqlite3 databases)
  • Excellent integrated proAudioRt audio lib along with it's Ogg and WAV support
  • Advanced date handing functionality (date lib)
  • Advanced templating functionality (cosmo)
  • And other useful lua bindings (md5, lzlib, random, LuaBitOp, lpeg-0.9)
I am open to suggestions on how to improve this, so please don't hold back.

"Comprehensive networking support though luaSocket, enhanced through copas and coxpcall"
What additional features do we get with copas and coxpcall?

Is Continue statement in there?

asafp Wrote:
"Comprehensive networking support though luaSocket, enhanced through copas and coxpcall"
What additional features do we get with copas and coxpcall?

Is Continue statement in there?

I think that "continue" might have been in the previous build too ...
Anyway, yes it is.

Copas is a dispatcher based on coroutines that can be used by TCP/IP servers.

It basically helps you when writing code that responds to several simultaneous connections.


0.7.0 is now feature complete, I am going to give myself a week or so to write some docs and tidy up before release.

Testing builds have gone out to those that requested them.

Recent changes :

  • Special integration of the "Rings" API.
  • Integrated logging API.
  • Networking added to core as requested.
  • Add system enabler functions to the murgaLua core.
  • Added startup parameters to further accelerate startup in some circumstances.
  • Fixed several bugs in TCP, MacOS port, and core.
The new startup parameters :

These are specially useful if you are spawning or forking murgaLua processes (for CGI or whatever).

-M0 : Disable all murgaLua functionality
This runs as a pure lua interpreter, and gives you the fastest startup.

-M1 : Run in core murgaLua mode (only basic features enabled)
Equivalent to running a murgaLua-core executable with CLI features only.
This starts much faster than the other murgaLua modes.

-M2 : Run in lite murgaLua mode if available (murgaLuaFltk + core)

-M3 : DEFAULT - Run in FULL murgaLua mode (if available)

The System enabler functions :

These are useful if murgaLua has been started with one of new startup parameters, or if a new new murgaLua state has been created with the "Rings" API.

When creating a state with "Rings" it'll be the equivalent of "M0", with the following the murgaLua mode can be changed if/when needed :

These are for the murgaLua modes :


These for the "Stable" rings API :


cool, that's what i need of the 'Rings' concept
Update :

Currently all binaries are RC, the only one giving a fair amount of trouble is OpenSolaris.

However, I am not releasing until I have completed the docs.

And I do that when I get a chance now and then.

Pages: 1 2 3
Reference URL's