I note that the Lua developers are working on version 5.2 and releasing work versions.
http://www.lua.org/work/doc/
Below is a copy of the tentative changes announced so far:
Changes since Lua 5.1
Everything may change in the final version.
Here are the main changes in Lua since its last release. The reference manual lists the incompatibilities that had to be introduced.
Language
Libraries
Implementation
http://www.lua.org/work/doc/
Below is a copy of the tentative changes announced so far:
Changes since Lua 5.1
Everything may change in the final version.
Here are the main changes in Lua since its last release. The reference manual lists the incompatibilities that had to be introduced.
Language
- new lexical environments.
- no more fenv for threads.
- ephemeron tables.
- yieldable pcall/metamethods.
- tables honor the __len metamethod.
- max constants per function raised to 2^26.
- hex escapes in strings.
- no more verification of opcode consistency.
Libraries
- new library for bitwise operations.
- new metamethods __pairs and __ipairs.
- arguments for function called through xpcall.
- optional argument to load (to control binary x text).
- loadlib may load libraries with global names (RTLD_GLOBAL).
- new function package.searchpath.
- optional base in math.log.
- file:write returns file.
- closing a pipe returns exit status.
- os.exit may close state.
- new option 'isrunning' for collectgarbage and lua_gc.
- frontier patterns.
- ipairs now goes until #t.
Implementation
- emergency garbage collector (core forces a full collection when allocation fails).
- ephemeron tables (tables with weak keys only visit value when key is accessible)
- handling of non-string error messages in the standalone interpreter.
- udata with finalizers are kept in a separated list for the GC.
- CallInfo stack now is a linked list.
- internal (immutable) version of ctypes.
- parser uses much less C-stack space (no more auto arrays).
- new hash for floats.