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.