Murga-Projects Forums

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

This is final functionality for murgaLua 0.7.X.
It is all about tidying up, fixing the docs and closing it up.

I will post some examples of the neat new stuff you can do in subsequent posts.

All bugs that I know about and that have been reported on the forum should be fixed.

An 0.8.0 branch exists which is a major overhaul, FLTK 1.3, Unicode, breakages and all ...
But I want a nice stable up-to-date base before I do anything with that.

And to be honest I use 0.7.X for my day to day stuff at moment.

Anyway, here is my initial drop ... More examples of note and info to follow.

Testing of drop is minimal as I just wanted to give you guys something.
I am pretty ill right now so I have likely made mistakes.

I will update the tests and do another drop shortly.

General Notes :
  • New searchable documentation - In progress.
  • New functions that deal with the nasty data than can be put into tables.
  • Bugfixes for XML issues reported in forum, and new methods as requested.
  • Overhaul of build process to better support multiple architectures.
  • Many fixes to stability and building.
  • Fixed lua_from_fluid, this is now a great way to generate UIs.
  • Sound integration, several fixes to proteaAudio and RtAudio.
  • LuaBitOp replaces bitlib due to portability and usability issues.
  • API upgrades (luaLzo, copas, sqLite, zlib, md5) ... FLTK to final 1.1.10
  • LuaFilesystem upgraded and patched for Solaris.
  • Encrypted database container support changed to more solid sqlcipher API.
    (Which with the new sqLite version bloats things for the FULL build)
  • CodeBlocks project support and migration of code to GIT repository.
  • luaCom update for truly stable code for windows COM coding.
  • More stable continue behaviour, and more examples, demos and tests.
  • Incorprated LFann for AI code along with my stability fixes to it.
  • Template for developing apps that look good on the OpenMoko phone.

Core, Lite and Full - A reminder on the editions :

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, LFann)

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 :


Misc Notes :

New murgaLua APIs

  • Lua XML serialization is now safe (see tests)
  • murgaLua.dumpToXml
  • murgaLua.parseFromXml
  • murgaLua.escapeLuaString
  • murgaLua.getBuildProperties

New murgaLua.debug api :

  • murgaLua.printDebug no longer works
    Replaced by : murgaLua.debug.printTable
  • murgaLua.showTable for FLTK builds
  • dumpTableAsLua for the debugger (more later)

FLTK event changes :

  • Fl.add_idle
  • Fl.has_idle
  • Fl.remove_idle
  • Fl.set_event_handler
  • Fl.start_event_handler
  • Fl.stop_event_handler

Fl_Tree changes

  • fltk.Fl_Node
  • fltk.Fl_ToggleNode
  • fltk.Fl_ToggleTree
  • fltk.FL_TOGGLE_HIT

Other additional FLTK functions :

  • Fl_RGB_Image.saveAsPng
  • Fl_RGB_Image.getTiles(xSize, ySize)

New APIs :

  • alien
  • cosmo
  • coxpcall
  • date
  • inilazy
  • lfann
  • lpeg
  • LuaBitOp
  • lualogging
  • luasys
  • proteaAudio
  • remdebug
  • rings
  • slncrypto
Drop is here :

Builds for Windows, Linux and MacOS are included.

MacOS builds where made on Snow Leopard, if you are using something else let me know if they work.

NOTE - LFann examples are wrong, the "run" method doesn't take a table.
Just replace the run(table), with a run(unpack(table)) to make it work.

Will be fixed along with better example in next drop.
Well, congrats on the RC1, looks fine to me!

Some minor things i've noticed:

* Has OSS support in proAudio been dropped, or has something gone wrong? here (using OSSv4 on Ubuntu 64bit) all sound examples segfault.

* Not only the input needs unpacking, the output also needs packing to function in the examples, yielding:
output = {net:run(unpack(table))}

Thanks for the release!

jpjacobs Wrote:
* Has OSS support in proAudio been dropped, or has something gone wrong? here (using OSSv4 on Ubuntu 64bit) all sound examples segfault.

The linux static builds should work with OSS.

The dynamic ones are ALSA.

So bin/Linux/otherBuilds/murgaLua-static should work.

And I am thinking I should make it the default as it may be more stable.

John de Murga

I never noticed io.stdin until you added the example in this RC
That will likely have many uses. It seems to work as expected with Linux pipes =oD

JohnMurga Wrote:
The linux static builds should work with OSS.

The dynamic ones are ALSA.

So bin/Linux/otherBuilds/murgaLua-static should work.

Well, that was indeed the case I was testing the dynamic one, while normally I used the static version.


Please report any other issues you may find ...

I will be adding OpenMoko and FreeBSD builds in the next few days.

And would like to push a final RC with updated docs before then end of Oct.

John de Murga
If I can help with anything (like proof-reading or whatever) let me know.
For the moment, I've got enough time ...


jpjacobs Wrote:
If I can help with anything (like proof-reading or whatever) let me know.
For the moment, I've got enough time ...


Have a play with everything, let me know what doesn't work :-)

Have a look at the new documentation, let me know what you think.

I hope to get some more time to update the docs too.

John de Murga

Maybe it would be good to add an explicit charset declaration to the documentation files (or set it in the thing you use to generate it), like
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> or
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
depending on the case.
Otherwise it depends on the default charset of browser in case whether you get weird symbols or not...

*Group pages don't contain anything.

Linkify url's in the introduction.

The "Learning Lua" page abruptly ends. Maybe another good pointers:

"Your first Lua Program"
Maybe mention that in everything but the prompt, windows supports normal slashes as directory separators (after the warning that slashes go the other way in Windows).

I would merge the walkthrough and tutorial sections; in the end they both contain tutorials.
The Network chat tutorial is still empty.

The explanation of the murgaLua library is in need of some extra layout.
And maybe a page linking to all the docs contained in the 3rd-party dir would be nice to have, for reference

How are those doc's generated? If you pass me the sources, I'll make the changes for you.


Pages: 1 2 3
Reference URL's