Incompatibilities with Previous Versions
The whole tag-method scheme was replaced by metatables.
Function calls written between parentheses result in exactly one value.
The precedence of or is smaller than the precedence of and.
in, false, and true are reserved words.
When a literal string of the form
[[...]]
starts with a newline, this newline is ignored.Upvalues in the form
%var
are obsolete; use external local variables instead.
Most library functions now are defined inside tables. There is a compatibility script (
compat.lua
) that redefines most of them as global names.The
call
function is deprecated. Usef(unpack(tab))
instead ofcall(f, tab)
for unprotected calls, or the newpcall
function for protected calls.dostring
is deprecated. Use instead.The
read
option*w
is obsolete.The
format
option%n$
is obsolete.
lua_open
does not have a stack size as its argument (stacks are dynamic).