An updated version of Lua, the scripting language for writing embedded apps is available.
The new version has a new lexical scheme for global variables, and has changed the way it handles function environments. The new version has also changed the way that coroutines work. Coroutines refers to the technique of collaborative multithreading. A coroutine in Lua represents an independent thread of execution that continues until the coroutine yields control back to the calling code. This version of Lua supports yielding across metamethods and for loop iterators pcall and xpcall calls.
Other improvements include a new library for bitwise operations, the addition of a goto statement (which might not be an improvement), and support for light C functions.
An emergency garbage collector has been added so that Lua forces a garbage collection when memory allocation fails - Lua performs automatic memory management.
Another new addition to 5.2.0 is the concept of ephemeron tables. An ephemeron table is one with weak keys and strong values, where the value is only reachable if its key is reachable. This feature should make it easier for the garbage collector to clear away unwanted objects and minimize memory leaks.
The new version can be downloaded from Lua.org and you can also obtain it here. The Lua 5.2 Reference Manual provides the official definition of the language and you can try out Lua without downloading it using its demo.
To be informed about new articles on I Programmer, subscribe to the RSS feed, follow us on Google+, Twitter, Linkedin or Facebook or sign up for our weekly newsletter.