There's a new SDK available that includes a new tool for memory optimization, a hardened Untz sound system and numerous other fixes and improvements. More after the fold.

We've reworked aspects of the Lua binding system to avoid circular references - there was a gotcha in the old system where an engine-side circular reference could be created that would prevent Lua's GC from cleaning up objects. If you dig through the commits you can see how we tracked it down and settled on what we have now. In all, I'm pleased with where we wound up. To aid in the process of tracking down circular references and leaks, we added a Moai object allocation histogram. You can turn this on by calling MOAISim.setHistogramEnabled ( true ) and then view the histogram with MOAISim.reportHistogram (). You will note that there will always be 12 or 13 objects that stay around - these are Lua bound objects created by the system (like the MOAISensor objects); no need to worry about them. There's a fair bit of overhead for the histogram, so only use it when you are optimizing. It should be a real help when you need to tighten up your memory footprint. It's also time to take a closer look at Untz and try it out in your own projects. We're using it for Wolf Toss and it has seen a lot of fixes and improvements since 0.7. Untz is still fairly young, but I can say that with this release it is solid and definitely viable for commercial applications. One other change of note: the traits system has been expanded to allow for multiple trait sources. Check it out, but do be aware that the original traits system is going to be deprecated and rolled into the attributes system for the next release (0.9). I've copied the release notes below. We're on track to be officially out of beta with 1.0 in late November/early December.

- Improvements to Apsalar Lua implementation - Exposed MOAITextBox setSpeed () - moaiext-debugger project (vs2008, vs2010) for Lua debug harness - Untz looping bug fixed - Untz now supports shared audio data (multpile sounds using same source) - Settings for MOAISim to skip frames after long loads - Settings for MOAISim to throttle sim update steps - Options for tracking Moai object allocations (via histogram) - Fixes to Lua binding system (prevent circular references and premature GC) - Updated Xcode projects to build under Xcode 4.2 and iOS SDK 5.0 - Modified traits system to allow multiple traits sources - Added _tostring metamethod on USLuaObject userdata - Improved Box2D binding - mouse joint, better errors and warnings - Fixed bugs around destruction of Box2D objects during collision handler - Additional tests for memory leaks and cirular references - Fixed Moai's tailored (zipfs) build of luac - Improved Xcode compiler settings - Updated Xcode SDK build to build device specific versions of libmoai - Improved MOAICameraFitter2D algorithm - Expanded GameCenter binding to include acheivements - Fixed default font shader (bug causing fringe around glyphs) - Added binding for IJG libjpeg - Added Tapjoy SDK and support for video offers (iOS) - Improvents to attribute system implementation - Improvements to MOAIWebView (iOS) - Added event for app opening from registered URL (iOS)