Log message:
Update lang/lua53 to 5.3.1.
The following bugs have been fixed (from http://www.lua.org/bugs.html):
1. string.format("%f") can cause a buffer overflow (only when
'lua_Number' is long double!).
reported by Roberto on 13 Jan 2015. existed since 5.3. fixed in
5.3.1.
2. debug.getlocal on a coroutine suspended in a hook can crash the
interpreter.
reported by on 11 Feb 2015. existed since 5.2. fixed in 5.3.1.
Example: See
http://lua-users.org/lists/lua-l/2015-02/msg00146.html.
3. Suspended __le metamethod can give wrong result.
reported by Eric Zhong on 07 Apr 2015. existed since 5.2. fixed in
5.3.1.
Example:
mt = {__le = function (a,b) coroutine.yield("yield"); return a.x <= \
b.x end}
t1 = setmetatable({x=1}, mt)
t2 = {x=2}
co = coroutine.wrap(function (a,b) return t2 <= t1 end)
co()
print(co()) --> true (should be false)
4. Return hook may not see correct values for active local variables
when function returns.
reported by Philipp Janda and Peng Yi on 19 May 2015. existed since
5.0. fixed in 5.3.1.
Example: See
http://lua-users.org/lists/lua-l/2015-05/msg00376.html.
|
Log message:
Initial import of Lua 5.3.0.
Lua is a powerful, light-weight programming language designed for
extending applications. Lua is also frequently used as a
general-purpose, stand-alone language.
Lua combines simple procedural syntax (similar to Pascal) with
powerful data description constructs based on associative arrays and
extensible semantics. Lua is dynamically typed, interpreted from
bytecodes, and has automatic memory management, making it ideal for
configuration, scripting, and rapid prototyping.
Lua is a language engine that you can embed into your application.
This means that, besides syntax and semantics, Lua has an API that
allows the application to exchange data with Lua programs and also to
extend Lua with C functions. In this sense, Lua can be regarded as a
language framework for building domain-specific languages.
Lua is implemented as a small library of C functions, written in ANSI
C, and compiles unmodified in all known platforms. The implementation
goals are simplicity, efficiency, portability, and low embedding cost.
The result is a fast language engine with small footprint, making it
ideal in embedded systems too.
|