Lua is a versatile and fast, yet lightweight and embeddable scripting language. It combines basic procedural syntax with complex data types, associative dictionaries, and extensible semantics. It is dynamically typed, uses a JIT bytecode and register-based VM with implicit memory management. It's widely used for scripting within applications and games, or as RAD toolkit.

major feature: Main changes include integers being 64-bit by default, official support for
32-bit numbers, bitwise operators, basic UTF-8 support, functions for
packing and unpacking values.
The language now allows userdata to have any Lua value as uservalue,
integer division, more flexible rules for some metamethods.
Library changes: ipairs and the table library respect metamethods,
strip option in string.dump, table library respects metamethods,
new function table.move, new function string.pack, new function
string.unpack, new function string.packsize.