Imported from ../lua-3.2.tar.gz.
[lua.git] / HISTORY
blobb01a4c41c302ecd8794466486bf8e12352291ede
1 This is Lua 3.2
3 * Changes from version 3.1 to 3.2
4   -------------------------------
5   + redirected all output in Lua's core to _ERRORMESSAGE and _ALERT.
6   + increased limit on the number of constants and globals per function
7     (from 2^16 to 2^24).
8   + debugging info (lua_debug and hooks) moved into lua_state and new API
9     functions provided to get and set this info.
10   + new debug lib gives full debugging access within Lua.
11   + new table functions "foreachi", "sort", "tinsert", "tremove", "getn".
12   + new io functions "flush", "seek".
14 * Changes from version 3.0 to 3.1
15   -------------------------------
16   + NEW FEATURE: anonymous functions with closures (via "upvalues").
17   + new syntax:
18     - local variables in chunks.
19     - better scope control with DO block END.
20     - constructors can now be also written: { record-part; list-part }.
21     - more general syntax for function calls and lvalues, e.g.:
22       f(x).y=1
23       o:f(x,y):g(z)
24       f"string" is sugar for f("string")
25   + strings may now contain arbitrary binary data (e.g., embedded zeros).
26   + major code re-organization and clean-up; reduced module interdependecies.
27   + no arbitrary limits on the total number of constants and globals.
28   + support for multiple global contexts.
29   + better syntax error messages.
30   + new traversal functions "foreach" and "foreachvar".
31   + the default for numbers is now double.
32     changing it to use floats or longs is easy.
33   + complete debug information stored in pre-compiled chunks.
34   + sample interpreter now prompts user when run interactively, and also
35     handles control-C interruptions gracefully.
37 * Changes from version 2.5 to 3.0
38   -------------------------------
39   + NEW CONCEPT: "tag methods".
40     Tag methods replace fallbacks as the meta-mechanism for extending the
41     semantics of Lua. Whereas fallbacks had a global nature, tag methods
42     work on objects having the same tag (e.g., groups of tables).
43     Existing code that uses fallbacks should work without change.
44   + new, general syntax for constructors {[exp] = exp, ... }.
45   + support for handling variable number of arguments in functions (varargs).
46   + support for conditional compilation ($if ... $else ... $end).
47   + cleaner semantics in API simplifies host code.
48   + better support for writing libraries (auxlib.h).
49   + better type checking and error messages in the standard library.
50   + luac can now also undump.
52 * Changes from version 2.4 to 2.5
53   -------------------------------
54   + io and string libraries are now based on pattern matching;
55     the old libraries are still available for compatibility
56   + dofile and dostring can now return values (via return statement)
57   + better support for 16- and 64-bit machines
58   + expanded documentation, with more examples
60 * Changes from version 2.2 to 2.4
61   -------------------------------
62   + external compiler creates portable binary files that can be loaded faster
63   + interface for debugging and profiling
64   + new "getglobal" fallback
65   + new functions for handling references to Lua objects
66   + new functions in standard lib
67   + only one copy of each string is stored
68   + expanded documentation, with more examples
70 * Changes from version 2.1 to 2.2
71   -------------------------------
72   + functions now may be declared with any "lvalue" as a name
73   + garbage collection of functions
74   + support for pipes
76 * Changes from version 1.1 to 2.1
77   -------------------------------
78   + object-oriented support
79   + fallbacks
80   + simplified syntax for tables
81   + many internal improvements