Lua Five Features
wiki
Difference (from revision 13 to current revision)
(
author diff
)
Changed: 1c1
== Changes from version 4.0 to 5.0 ==
=== Changes from version 4.0 to 5.0 ===
Changed: 5c5
= Language =
== Language ==
Changed: 27c27
= API =
== API ==
Changed: 35c35
= Implementation =
== Implementation ==
Changes from version 4.0 to 5.0
(from HISTORY file in distribution)
Language
lexical scoping.
Lua coroutines.
standard libraries now packaged in tables.
tags replaced by metatables and tag methods replaced by metamethods, stored in metatables.
proper tail calls.
each function can have its own global table, which can be shared.
new __newindex metamethod, called when we insert a new key into a table.
new block comments: --[[ ... ]].
new generic for.
new weak tables.
new boolean type.
new syntax "local function".
(f()) returns the first value returned by f.
{f()} fills a table with all values returned by f.
\n ignored in [[\n .
fixed and-or priorities.
more general syntax for function definition (e.g. function a.x.y:f()...end).
more general syntax for function calls (e.g. (print or write)(9)).
new functions (time/date, tmpfile, unpack, require, load*, etc.).
API
chunks are loaded by using lua_load; new luaL_loadfile and luaL_loadbuffer.
introduced lightweight userdata, a simple "void*" without a metatable.
new error handling protocol: the core no longer prints error messages; all errors are reported to the caller on the stack.
new lua_atpanic for host cleanup.
new, signal-safe, hook scheme.
Implementation
new license: MIT.
new, faster, register-based virtual machine.
support for external multithreading and coroutines.
new and consistent error message format.
the core no longer needs "stdio.h" for anything (except for a single use of sprintf to convert numbers to strings).
lua.c now runs the environment variable LUA_INIT, if present. It can be "@filename", to run a file, or the chunk itself.
support for user extensions in lua.c. Sample implementation given for command line editing.
new dynamic loading library, active by default on several platforms.
safe garbage-collector metamethods.
precompiled bytecodes checked for integrity (secure binary dostring).
strings are fully aligned.
position capture in string.find.
read('*l') can read lines with embedded zeros.
LuaFiveAlphaToBeta
RecentChanges
·
preferences
edit
·
history
Last edited January 30, 2004 7:47 am GMT
(diff)