History

Lua 5.1.2-rc3

Lua Team committed 19 years ago

Commit f4079ca1 parent de7f97f7 files · +30 −27Browse files

Unified · Split

7 files
  1. COPYRIGHT +1 −1
  2. HISTORY +1 −1
  3. INSTALL +6 −3
  4. doc/manual.html +5 −5
  5. src/loadlib.c +14 −13
  6. src/lvm.c +2 −2
  7. src/print.c +1 −2
COPYRIGHT+1−1
@@ -9,7 +9,7 @@ For details and rationale, see http://www.lua.org/license.html . · 8 unmodified lines
9 9
10===============================================================================10===============================================================================
11 11
12Copyright (C) 1994-2006 Lua.org, PUC-Rio.12Copyright (C) 1994-2007 Lua.org, PUC-Rio.
13 13
14Permission is hereby granted, free of charge, to any person obtaining a copy14Permission is hereby granted, free of charge, to any person obtaining a copy
15of this software and associated documentation files (the "Software"), to deal15of this software and associated documentation files (the "Software"), to deal
HISTORY+1−1
@@ -14,7 +14,7 @@ HISTORY for Lua 5.1 · 13 unmodified lines
14 API:14 API:
15 + new functions: lua_createtable, lua_get(set)field, lua_push(to)integer.15 + new functions: lua_createtable, lua_get(set)field, lua_push(to)integer.
16 + user supplies memory allocator (lua_open becomes lua_newstate).16 + user supplies memory allocator (lua_open becomes lua_newstate).
17 + luaopen_* functionst must be called through Lua.17 + luaopen_* functions must be called through Lua.
18 Implementation:18 Implementation:
19 + new configuration scheme via luaconf.h.19 + new configuration scheme via luaconf.h.
20 + incremental garbage collection.20 + incremental garbage collection.
INSTALL+6−3
@@ -8,7 +8,10 @@ INSTALL for Lua 5.1 · 7 unmodified lines
8 Building Lua on Unix systems should be very easy. First do "make" and8 Building Lua on Unix systems should be very easy. First do "make" and
9 see if your platform is listed. If so, just do "make xxx", where xxx9 see if your platform is listed. If so, just do "make xxx", where xxx
10 is your platform name. The platforms currently supported are:10 is your platform name. The platforms currently supported are:
11 ansi bsd generic linux macosx mingw posix solaris11 aix ansi bsd freebsd generic linux macosx mingw posix solaris
12
13 If your platform is not listed, try the closest one or posix, generic,
14 ansi, in this order.
12 15
13 See below for customization instructions and for instructions on how16 See below for customization instructions and for instructions on how
14 to build with other Windows compilers.17 to build with other Windows compilers.
@@ -81,8 +84,8 @@ INSTALL for Lua 5.1 · 66 unmodified lines
81 84
82 compiler: library, luac.c print.c85 compiler: library, luac.c print.c
83 86
84 If you use Visual Studio .NET, you can use etc/luavs.bat87 If you use Visual Studio .NET, you can use etc/luavs.bat in its
85 in its "Command Prompt".88 "Command Prompt".
86 89
87 If all you want is to build the Lua interpreter, you may put all .c files90 If all you want is to build the Lua interpreter, you may put all .c files
88 in a single project, except for luac.c and print.c. Or just use etc/all.c.91 in a single project, except for luac.c and print.c. Or just use etc/all.c.
doc/manual.html+5−5
@@ -890,8 +890,8 @@ function definitions are explained in <a href="#2.5.9">&sect;2.5.9</a>; · 889 unmodified lines
890function calls are explained in <a href="#2.5.8">&sect;2.5.8</a>;890function calls are explained in <a href="#2.5.8">&sect;2.5.8</a>;
891table constructors are explained in <a href="#2.5.7">&sect;2.5.7</a>.891table constructors are explained in <a href="#2.5.7">&sect;2.5.7</a>.
892Vararg expressions,892Vararg expressions,
893denoted by three dots ('<code>...</code>'), can only be used inside893denoted by three dots ('<code>...</code>'), can only be used when
894vararg functions;894directly inside a vararg function;
895they are explained in <a href="#2.5.9">&sect;2.5.9</a>.895they are explained in <a href="#2.5.9">&sect;2.5.9</a>.
896 896
897 897
@@ -3222,7 +3222,7 @@ and returns this address. · 2324 unmodified lines
3222 3222
3223 3223
3224<p>3224<p>
3225Userdata represents C&nbsp;values in Lua.3225Userdata represent C&nbsp;values in Lua.
3226A <em>full userdata</em> represents a block of memory.3226A <em>full userdata</em> represents a block of memory.
3227It is an object (like a table):3227It is an object (like a table):
3228you must create it, it can have its own metatable,3228you must create it, it can have its own metatable,
@@ -3498,7 +3498,7 @@ Pushes a light userdata onto the stack. · 269 unmodified lines
3498 3498
3499 3499
3500<p>3500<p>
3501Userdata represents C&nbsp;values in Lua.3501Userdata represent C&nbsp;values in Lua.
3502A <em>light userdata</em> represents a pointer.3502A <em>light userdata</em> represents a pointer.
3503It is a value (like a number):3503It is a value (like a number):
3504you do not create it, it has no individual metatable,3504you do not create it, it has no individual metatable,
@@ -8511,7 +8511,7 @@ Here is the complete syntax of Lua in extended BNF. · 5006 unmodified lines
8511<HR>8511<HR>
8512<SMALL>8512<SMALL>
8513Last update:8513Last update:
8514Fri Mar 23 14:37:09 BRT 20078514Mon Mar 26 12:59:26 BRT 2007
8515</SMALL>8515</SMALL>
8516<!--8516<!--
8517Last change: ready for Lua 5.1.28517Last change: ready for Lua 5.1.2
src/loadlib.c+14−13
@@ -1,5 +1,5 @@
1/*1/*
2** $Id: loadlib.c,v 1.52 2006/04/10 18:27:23 roberto Exp $2** $Id: loadlib.c,v 1.54a 2006/07/03 20:16:49 roberto Exp $
3** Dynamic library loader for Lua3** Dynamic library loader for Lua
4** See Copyright Notice in lua.h4** See Copyright Notice in lua.h
5**5**
@@ -16,9 +16,9 @@ · 10 unmodified lines
16#define loadlib_c16#define loadlib_c
17#define LUA_LIB17#define LUA_LIB
18 18
19#include "lauxlib.h"
20#include "lobject.h"
21#include "lua.h"19#include "lua.h"
20
21#include "lauxlib.h"
22#include "lualib.h"22#include "lualib.h"
23 23
24 24
@@ -356,15 +356,16 @@ static const char *findfile (lua_State *L, const char *name, · 331 unmodified lines
356 path = lua_tostring(L, -1);356 path = lua_tostring(L, -1);
357 if (path == NULL)357 if (path == NULL)
358 luaL_error(L, LUA_QL("package.%s") " must be a string", pname);358 luaL_error(L, LUA_QL("package.%s") " must be a string", pname);
359 lua_pushstring(L, ""); /* error accumulator */359 lua_pushliteral(L, ""); /* error accumulator */
360 while ((path = pushnexttemplate(L, path)) != NULL) {360 while ((path = pushnexttemplate(L, path)) != NULL) {
361 const char *filename;361 const char *filename;
362 filename = luaL_gsub(L, lua_tostring(L, -1), LUA_PATH_MARK, name);362 filename = luaL_gsub(L, lua_tostring(L, -1), LUA_PATH_MARK, name);
363 lua_remove(L, -2); /* remove path template */
363 if (readable(filename)) /* does file exist and is readable? */364 if (readable(filename)) /* does file exist and is readable? */
364 return filename; /* return that file name */365 return filename; /* return that file name */
365 lua_pop(L, 2); /* remove path template and file name */ 366 lua_pushfstring(L, "\n\tno file " LUA_QS, filename);
366 luaO_pushfstring(L, "\n\tno file " LUA_QS, filename);367 lua_remove(L, -2); /* remove file name */
367 lua_concat(L, 2);368 lua_concat(L, 2); /* add entry to possible error message */
368 }369 }
369 return NULL; /* not found */370 return NULL; /* not found */
370}371}
@@ -423,8 +424,8 @@ static int loader_Croot (lua_State *L) { · 52 unmodified lines
423 funcname = mkfuncname(L, name);424 funcname = mkfuncname(L, name);
424 if ((stat = ll_loadfunc(L, filename, funcname)) != 0) {425 if ((stat = ll_loadfunc(L, filename, funcname)) != 0) {
425 if (stat != ERRFUNC) loaderror(L, filename); /* real error */426 if (stat != ERRFUNC) loaderror(L, filename); /* real error */
426 luaO_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS,427 lua_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS,
427 name, filename);428 name, filename);
428 return 1; /* function not found */429 return 1; /* function not found */
429 }430 }
430 return 1;431 return 1;
@@ -438,7 +439,7 @@ static int loader_preload (lua_State *L) { · 7 unmodified lines
438 luaL_error(L, LUA_QL("package.preload") " must be a table");439 luaL_error(L, LUA_QL("package.preload") " must be a table");
439 lua_getfield(L, -1, name);440 lua_getfield(L, -1, name);
440 if (lua_isnil(L, -1)) /* not found? */441 if (lua_isnil(L, -1)) /* not found? */
441 luaO_pushfstring(L, "\n\tno field package.preload['%s']", name);442 lua_pushfstring(L, "\n\tno field package.preload['%s']", name);
442 return 1;443 return 1;
443}444}
444 445
@@ -462,7 +463,7 @@ static int ll_require (lua_State *L) { · 17 unmodified lines
462 lua_getfield(L, LUA_ENVIRONINDEX, "loaders");463 lua_getfield(L, LUA_ENVIRONINDEX, "loaders");
463 if (!lua_istable(L, -1))464 if (!lua_istable(L, -1))
464 luaL_error(L, LUA_QL("package.loaders") " must be a table");465 luaL_error(L, LUA_QL("package.loaders") " must be a table");
465 lua_pushstring(L, ""); /* error message accumulator */466 lua_pushliteral(L, ""); /* error message accumulator */
466 for (i=1; ; i++) {467 for (i=1; ; i++) {
467 lua_rawgeti(L, -2, i); /* get a loader */468 lua_rawgeti(L, -2, i); /* get a loader */
468 if (lua_isnil(L, -1))469 if (lua_isnil(L, -1))
@@ -646,8 +647,8 @@ LUALIB_API int luaopen_package (lua_State *L) { · 177 unmodified lines
646 setpath(L, "path", LUA_PATH, LUA_PATH_DEFAULT); /* set field `path' */647 setpath(L, "path", LUA_PATH, LUA_PATH_DEFAULT); /* set field `path' */
647 setpath(L, "cpath", LUA_CPATH, LUA_CPATH_DEFAULT); /* set field `cpath' */648 setpath(L, "cpath", LUA_CPATH, LUA_CPATH_DEFAULT); /* set field `cpath' */
648 /* store config information */649 /* store config information */
649 lua_pushstring(L, LUA_DIRSEP "\n" LUA_PATHSEP "\n" LUA_PATH_MARK "\n"650 lua_pushliteral(L, LUA_DIRSEP "\n" LUA_PATHSEP "\n" LUA_PATH_MARK "\n"
650 LUA_EXECDIR "\n" LUA_IGMARK);651 LUA_EXECDIR "\n" LUA_IGMARK);
651 lua_setfield(L, -2, "config");652 lua_setfield(L, -2, "config");
652 /* set field `loaded' */653 /* set field `loaded' */
653 luaL_findtable(L, LUA_REGISTRYINDEX, "_LOADED", 2);654 luaL_findtable(L, LUA_REGISTRYINDEX, "_LOADED", 2);
src/lvm.c+2−2
@@ -165,7 +165,7 @@ static int call_binTM (lua_State *L, const TValue *p1, const TValue *p2, · 164 unmodified lines
165 const TValue *tm = luaT_gettmbyobj(L, p1, event); /* try first operand */165 const TValue *tm = luaT_gettmbyobj(L, p1, event); /* try first operand */
166 if (ttisnil(tm))166 if (ttisnil(tm))
167 tm = luaT_gettmbyobj(L, p2, event); /* try second operand */167 tm = luaT_gettmbyobj(L, p2, event); /* try second operand */
168 if (!ttisfunction(tm)) return 0;168 if (ttisnil(tm)) return 0;
169 callTMres(L, res, tm, p1, p2);169 callTMres(L, res, tm, p1, p2);
170 return 1;170 return 1;
171}171}
@@ -285,7 +285,7 @@ void luaV_concat (lua_State *L, int total, int last) { · 113 unmodified lines
285 if (!call_binTM(L, top-2, top-1, top-2, TM_CONCAT))285 if (!call_binTM(L, top-2, top-1, top-2, TM_CONCAT))
286 luaG_concaterror(L, top-2, top-1);286 luaG_concaterror(L, top-2, top-1);
287 } else if (tsvalue(top-1)->len == 0) /* second op is empty? */287 } else if (tsvalue(top-1)->len == 0) /* second op is empty? */
288 tostring(L, top - 2); /* result is first op (as string) */288 (void)tostring(L, top - 2); /* result is first op (as string) */
289 else {289 else {
290 /* at least two string values; get as many as possible */290 /* at least two string values; get as many as possible */
291 size_t tl = tsvalue(top-1)->len;291 size_t tl = tsvalue(top-1)->len;
src/print.c+1−2
@@ -23,8 +23,7 @@ · 22 unmodified lines
23static void PrintString(const TString* ts)23static void PrintString(const TString* ts)
24{24{
25 const char* s=getstr(ts);25 const char* s=getstr(ts);
26 int n=ts->tsv.len;26 size_t i,n=ts->tsv.len;
27 int i;
28 putchar('"');27 putchar('"');
29 for (i=0; i<n; i++)28 for (i=0; i<n; i++)
30 {29 {