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. Use f(unpack(tab)) instead of call(f, tab) for unprotected calls, or the new pcall 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).