diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1999-02-04 17:12:35 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1999-02-04 17:12:35 -0200 |
commit | 76179a1014430f42148822ac2db23a9491817a0b (patch) | |
tree | 9a16baa96e998e5e8c130ee6e8c2334fc78a581e | |
parent | bdfab46c220681f4dc0663bbce4026f4bbada00b (diff) | |
download | lua-76179a1014430f42148822ac2db23a9491817a0b.tar.gz lua-76179a1014430f42148822ac2db23a9491817a0b.tar.bz2 lua-76179a1014430f42148822ac2db23a9491817a0b.zip |
compile option EXTRALIB for builtin functions that can be written in Lua.
-rw-r--r-- | lbuiltin.c | 24 | ||||
-rw-r--r-- | makefile | 11 |
2 files changed, 21 insertions, 14 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lbuiltin.c,v 1.47 1999/01/25 12:30:11 roberto Exp roberto $ | 2 | ** $Id: lbuiltin.c,v 1.48 1999/01/26 15:38:01 roberto Exp roberto $ |
3 | ** Built-in functions | 3 | ** Built-in functions |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -71,11 +71,6 @@ static Hash *gethash (int arg) { | |||
71 | return avalue(luaA_Address(luaL_tablearg(arg))); | 71 | return avalue(luaA_Address(luaL_tablearg(arg))); |
72 | } | 72 | } |
73 | 73 | ||
74 | |||
75 | static void luaB_getn (void) { | ||
76 | lua_pushnumber(getnarg(gethash(1))); | ||
77 | } | ||
78 | |||
79 | /* }====================================================== */ | 74 | /* }====================================================== */ |
80 | 75 | ||
81 | 76 | ||
@@ -306,6 +301,7 @@ static void luaB_call (void) { | |||
306 | /* }====================================================== */ | 301 | /* }====================================================== */ |
307 | 302 | ||
308 | 303 | ||
304 | #ifdef EXTRALIB | ||
309 | /* | 305 | /* |
310 | ** {====================================================== | 306 | ** {====================================================== |
311 | ** "Extra" functions | 307 | ** "Extra" functions |
@@ -385,6 +381,11 @@ static void luaB_foreachvar (void) { | |||
385 | } | 381 | } |
386 | 382 | ||
387 | 383 | ||
384 | static void luaB_getn (void) { | ||
385 | lua_pushnumber(getnarg(gethash(1))); | ||
386 | } | ||
387 | |||
388 | |||
388 | static void luaB_tinsert (void) { | 389 | static void luaB_tinsert (void) { |
389 | Hash *a = gethash(1); | 390 | Hash *a = gethash(1); |
390 | lua_Object v = lua_getparam(3); | 391 | lua_Object v = lua_getparam(3); |
@@ -500,6 +501,7 @@ static void luaB_sort (void) { | |||
500 | } | 501 | } |
501 | 502 | ||
502 | /* }}===================================================== */ | 503 | /* }}===================================================== */ |
504 | #endif | ||
503 | 505 | ||
504 | 506 | ||
505 | /* | 507 | /* |
@@ -685,7 +687,6 @@ static struct luaL_reg builtin_funcs[] = { | |||
685 | {"dostring", luaB_dostring}, | 687 | {"dostring", luaB_dostring}, |
686 | {"error", luaB_error}, | 688 | {"error", luaB_error}, |
687 | {"getglobal", luaB_getglobal}, | 689 | {"getglobal", luaB_getglobal}, |
688 | {"getn", luaB_getn}, | ||
689 | {"gettagmethod", luaB_gettagmethod}, | 690 | {"gettagmethod", luaB_gettagmethod}, |
690 | {"newtag", luaB_newtag}, | 691 | {"newtag", luaB_newtag}, |
691 | {"next", luaB_next}, | 692 | {"next", luaB_next}, |
@@ -702,15 +703,18 @@ static struct luaL_reg builtin_funcs[] = { | |||
702 | {"tag", luaB_luatag}, | 703 | {"tag", luaB_luatag}, |
703 | {"tonumber", luaB_tonumber}, | 704 | {"tonumber", luaB_tonumber}, |
704 | {"tostring", luaB_tostring}, | 705 | {"tostring", luaB_tostring}, |
705 | {"type", luaB_type}, | 706 | {"type", luaB_type} |
706 | /* "Extra" functions */ | 707 | #ifdef EXTRALIB |
707 | {"assert", luaB_assert}, | 708 | /* "Extra" functions */ |
709 | ,{"assert", luaB_assert}, | ||
708 | {"foreach", luaB_foreach}, | 710 | {"foreach", luaB_foreach}, |
709 | {"foreachi", luaB_foreachi}, | 711 | {"foreachi", luaB_foreachi}, |
710 | {"foreachvar", luaB_foreachvar}, | 712 | {"foreachvar", luaB_foreachvar}, |
713 | {"getn", luaB_getn}, | ||
711 | {"sort", luaB_sort}, | 714 | {"sort", luaB_sort}, |
712 | {"tinsert", luaB_tinsert}, | 715 | {"tinsert", luaB_tinsert}, |
713 | {"tremove", luaB_tremove} | 716 | {"tremove", luaB_tremove} |
717 | #endif | ||
714 | }; | 718 | }; |
715 | 719 | ||
716 | 720 | ||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | ## $Id: makefile,v 1.15 1999/01/11 20:23:54 roberto Exp roberto $ | 2 | ## $Id: makefile,v 1.16 1999/02/04 16:37:41 roberto Exp roberto $ |
3 | ## Makefile | 3 | ## Makefile |
4 | ## See Copyright Notice in lua.h | 4 | ## See Copyright Notice in lua.h |
5 | # | 5 | # |
@@ -12,16 +12,19 @@ | |||
12 | # define (undefine) _POSIX_SOURCE if your system is (not) POSIX compliant | 12 | # define (undefine) _POSIX_SOURCE if your system is (not) POSIX compliant |
13 | # | 13 | # |
14 | # define (undefine) OLD_ANSI if your system does NOT have some new ANSI | 14 | # define (undefine) OLD_ANSI if your system does NOT have some new ANSI |
15 | # facilities (e.g. strerror, locale.h, memmove). Although they are ANSI, | 15 | # facilities (e.g. strerror, locale.h, memmove). SunOS does not comply; |
16 | # SunOS does not comply; so, add "-DOLD_ANSI" on SunOS | 16 | # so, add "-DOLD_ANSI" on SunOS |
17 | # | 17 | # |
18 | # define LUA_COMPAT2_5 if yous system does need to be compatible with | 18 | # define LUA_COMPAT2_5 if yous system does need to be compatible with |
19 | # version 2.5 (or older) | 19 | # version 2.5 (or older) |
20 | # | 20 | # |
21 | # define LUA_NUM_TYPE if you need numbers to be different from double | 21 | # define LUA_NUM_TYPE if you need numbers to be different from double |
22 | # (for instance, -DLUA_NUM_TYPE=float) | 22 | # (for instance, -DLUA_NUM_TYPE=float) |
23 | # | ||
24 | # undefine EXTRALIB if you do not want builtin functions that can be | ||
25 | # written in Lua (sort, tinsert, tremove, assert, foreach*) | ||
23 | 26 | ||
24 | CONFIG = -DPOPEN -D_POSIX_SOURCE | 27 | CONFIG = -DPOPEN -D_POSIX_SOURCE -DEXTRALIB |
25 | #CONFIG = -DLUA_COMPAT2_5 -DOLD_ANSI -DDEBUG | 28 | #CONFIG = -DLUA_COMPAT2_5 -DOLD_ANSI -DDEBUG |
26 | 29 | ||
27 | 30 | ||