History

Lua 5.2.0

Lua Team committed 14 years ago

Commit 32bd3eb1 parent 798bf685 files · +40 −31Browse files

Unified · Split

5 files
  1. README +1 −1
  2. doc/manual.css +1 −0
  3. doc/manual.html +16 −12
  4. src/loadlib.c +15 −2
  5. src/lua.c +7 −16
README+1−1
@@ -1,5 +1,5 @@
11
2−This is Lua 5.2, released on 08 Dec 2011.
2+This is Lua 5.2, released on 12 Dec 2011.
33
44 For installation instructions, license details, and
55 further information about Lua, see doc/readme.html.
doc/manual.css+1−0
@@ -1,5 +1,6 @@
11 h3 code {
22 font-family: inherit ;
3+ font-size: inherit ;
34 }
45
56 pre, code {
doc/manual.html+16−12
@@ -33,7 +33,7 @@ Freely available under the terms of the · 32 unmodified lines
3333 <!-- ====================================================================== -->
3434 <p>
3535
36−<!-- $Id: manual.of,v 1.93 2011/12/08 12:12:34 roberto Exp $ -->
36+<!-- $Id: manual.of,v 1.94 2011/12/12 15:26:26 roberto Exp $ -->
3737
3838
3939
@@ -2745,7 +2745,7 @@ Lua raises an error whenever it tries to yield across an API call, · 2705 unmodified lines
27452745 except for three functions:
27462746 <a href="#lua_yieldk"><code>lua_yieldk</code></a>, <a href="#lua_callk"><code>lua_callk</code></a>, and <a href="#lua_pcallk"><code>lua_pcallk</code></a>.
27472747 All those functions receive a <em>continuation function</em>
2748−(as a parameter called <code>k</code>) to continue execution after an yield.
2748+(as a parameter called <code>k</code>) to continue execution after a yield.
27492749
27502750
27512751 <p>
@@ -3371,7 +3371,7 @@ but instead may call the continuation function. · 619 unmodified lines
33713371 In that case, a call to <a href="#lua_getctx"><code>lua_getctx</code></a> will return the error code
33723372 (the value that would be returned by <a href="#lua_pcallk"><code>lua_pcallk</code></a>);
33733373 the value of <code>ctx</code> will be set to the context information,
3374−as in the case of an yield.
3374+as in the case of a yield.
33753375
33763376
33773377
@@ -6741,7 +6741,8 @@ To have access to these libraries, · 3363 unmodified lines
67416741 the C&nbsp;host program should call the <a href="#luaL_openlibs"><code>luaL_openlibs</code></a> function,
67426742 which opens all standard libraries.
67436743 Alternatively,
6744−it can open them individually by calling
6744+the host program can open them individually by using
6745+<a href="#luaL_requiref"><code>luaL_requiref</code></a> to call
67456746 <a name="pdf-luaopen_base"><code>luaopen_base</code></a> (for the basic library),
67466747 <a name="pdf-luaopen_package"><code>luaopen_package</code></a> (for the package library),
67476748 <a name="pdf-luaopen_coroutine"><code>luaopen_coroutine</code></a> (for the coroutine library),
@@ -6752,10 +6753,7 @@ it can open them individually by calling · 4 unmodified lines
67526753 <a name="pdf-luaopen_io"><code>luaopen_io</code></a> (for the I/O library),
67536754 <a name="pdf-luaopen_os"><code>luaopen_os</code></a> (for the Operating System library),
67546755 and <a name="pdf-luaopen_debug"><code>luaopen_debug</code></a> (for the debug library).
6755−These functions are declared in <a name="pdf-lualib.h"><code>lualib.h</code></a>
6756−and should not be called directly:
6757−you must call them like any other Lua C&nbsp;function,
6758−e.g., by using <a href="#lua_call"><code>lua_call</code></a>.
6756+These functions are declared in <a name="pdf-lualib.h"><code>lualib.h</code></a>.
67596757
67606758
67616759
@@ -9986,10 +9984,11 @@ Otherwise, <code>lua</code> executes the string itself. · 3224 unmodified lines
99869984 <p>
99879985 When called with option <code>-E</code>,
99889986 besides ignoring <code>LUA_INIT</code>,
9989−the interpreter also resets the values of
9987+Lua also ignores
9988+the values of <code>LUA_PATH</code> and <code>LUA_CPATH</code>,
9989+setting the values of
99909990 <a href="#pdf-package.path"><code>package.path</code></a> and <a href="#pdf-package.cpath"><code>package.cpath</code></a>
9991−with the default paths defined in <code>luaconf.h</code>,
9992−in effect ignoring the values of <code>LUA_PATH</code> and <code>LUA_CPATH</code>.
9991+with the default paths defined in <code>luaconf.h</code>.
99939992
99949993
99959994 <p>
@@ -10291,6 +10290,11 @@ Function <a href="#lua_load"><code>lua_load</code></a> has an extra parameter, < · 295 unmodified lines
1029110290 Pass <code>NULL</code> to simulate the old behavior.
1029210291 </li>
1029310292
10293+<li>
10294+Function <a href="#lua_resume"><code>lua_resume</code></a> has an extra parameter, <code>from</code>.
10295+Pass <code>NULL</code> or the thread doing the call.
10296+</li>
10297+
1029410298 </ul>
1029510299
1029610300
@@ -10383,7 +10387,7 @@ Here is the complete syntax of Lua in extended BNF. · 86 unmodified lines
1038310387 <HR>
1038410388 <SMALL CLASS="footer">
1038510389 Last update:
10386−Thu Dec 8 10:36:53 BRST 2011
10390+Mon Dec 12 15:21:08 BRST 2011
1038710391 </SMALL>
1038810392 <!--
1038910393 Last change: revised for Lua 5.2.0
src/loadlib.c+15−2
@@ -1,5 +1,5 @@
11 /*
2−** $Id: loadlib.c,v 1.107 2011/11/30 12:58:57 roberto Exp $
2+** $Id: loadlib.c,v 1.108 2011/12/12 16:34:03 roberto Exp $
33 ** Dynamic library loader for Lua
44 ** See Copyright Notice in lua.h
55 **
@@ -615,12 +615,25 @@ static int ll_seeall (lua_State *L) { · 609 unmodified lines
615615 /* auxiliary mark (for internal use) */
616616 #define AUXMARK "\1"
617617
618+
619+/*
620+** return registry.LUA_NOENV as a boolean
621+*/
622+static int noenv (lua_State *L) {
623+ int b;
624+ lua_getfield(L, LUA_REGISTRYINDEX, "LUA_NOENV");
625+ b = lua_toboolean(L, -1);
626+ lua_pop(L, 1); /* remove value */
627+ return b;
628+}
629+
630+
618631 static void setpath (lua_State *L, const char *fieldname, const char *envname1,
619632 const char *envname2, const char *def) {
620633 const char *path = getenv(envname1);
621634 if (path == NULL) /* no environment variable? */
622635 path = getenv(envname2); /* try alternative name */
623− if (path == NULL) /* no environment variable? */
636+ if (path == NULL || noenv(L)) /* no environment variable? */
624637 lua_pushstring(L, def); /* use default */
625638 else {
626639 /* replace ";;" by ";AUXMARK;" and then AUXMARK by default path */
src/lua.c+7−16
@@ -1,5 +1,5 @@
11 /*
2−** $Id: lua.c,v 1.202 2011/08/17 20:19:52 roberto Exp $
2+** $Id: lua.c,v 1.203 2011/12/12 16:34:03 roberto Exp $
33 ** Lua stand-alone interpreter
44 ** See Copyright Notice in lua.h
55 */
@@ -439,18 +439,6 @@ static int handle_luainit (lua_State *L) { · 433 unmodified lines
439439 }
440440
441441
442−static void resetpaths (lua_State *L) {
443− lua_getglobal(L, "package");
444− if (!lua_istable(L, -1)) /* no module 'package'? */
445− return; /* nothing to be done */
446− lua_pushliteral(L, LUA_PATH_DEFAULT);
447− lua_setfield(L, -2, "path"); /* package.path = default */
448− lua_pushliteral(L, LUA_CPATH_DEFAULT);
449− lua_setfield(L, -2, "cpath"); /* package.cpath = default */
450− lua_pop(L, 1); /* remove 'package' */
451−}
452−
453−
454442 static int pmain (lua_State *L) {
455443 int argc = (int)lua_tointeger(L, 1);
456444 char **argv = (char **)lua_touserdata(L, 2);
@@ -464,14 +452,17 @@ static int pmain (lua_State *L) { · 7 unmodified lines
464452 return 0;
465453 }
466454 if (args[has_v]) print_version();
455+ if (args[has_E]) { /* option '-E'? */
456+ lua_pushboolean(L, 1); /* signal for libraries to ignore env. vars. */
457+ lua_setfield(L, LUA_REGISTRYINDEX, "LUA_NOENV");
458+ }
467459 /* open standard libraries */
468460 luaL_checkversion(L);
469461 lua_gc(L, LUA_GCSTOP, 0); /* stop collector during initialization */
470462 luaL_openlibs(L); /* open libraries */
471463 lua_gc(L, LUA_GCRESTART, 0);
472− if (args[has_E]) /* avoid LUA_INIT? */
473− resetpaths(L);
474− else if (handle_luainit(L) != LUA_OK) return 0;
464+ if (!args[has_E] && handle_luainit(L) != LUA_OK)
465+ return 0; /* error running LUA_INIT */
475466 /* execute arguments -e and -l */
476467 if (!runargs(L, argv, (script > 0) ? script : argc)) return 0;
477468 /* execute main script (if there is one) */