Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. The BSDCan 2011 slides on BSDLUA are here: {{ivanvoras/bsdlua/bsdlua.pdf?linkonly|bsdlua.pdf}} and also here: http://people.freebsd.org/~ivoras/slides/bsdlua2011.pdf . The current (may be temporary) Mercurial (hg) repository for BSDLUA is available at http://cosmos.boldlygoingnowhere.org:81/~ivoras/hg/bsdlua . You can make a local clone of the repository with: <code> hg clone http://cosmos.boldlygoingnowhere.org:81/~ivoras/hg/bsdlua </code> Please send patches via ''%%hg export%%''! ===== Tutorial for embedders ===== Please read the following documentation: * http://www.lua.org/ - The main Lua site * http://pgl.yoyo.org/luai/i/3.7+Functions+and+Types - C functions and types used to access Lua from C * http://www.lua.org/manual/5.1/#index - all else on Lua * http://lua-users.org/wiki/LuaDirectory - some Lua Wiki resources * http://www.codeproject.com/KB/cpp/luaincpp.aspx - Another tutorial on embedding The newest version of this script is committed in the BSDLUA hg repository in the ''%%bsdlua/tests/scripting%%'' directory. An example program (note that this program and its Makefile require that the BSDLUA is installed, i.e. that the ''%%make install%%'' target was executed): <code> #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <assert.h> #include <bsdlua.h> #include <bsdlauxlib.h> lua_State *L; static int greeting(lua_State *L) { /* This function accepts one string argument and returns no values */ int nargs = lua_gettop(L); const char *arg; assert(nargs == 1); arg = lua_tostring(L, 1); printf("Hello from C: %s\n", arg); /* lua_pushstring(L, "blah blah blah"); */ /* if the above line were uncommented, the function would return "1" */ return 0; } int main() { L = lua_open(); luaL_openlibs(L); luaL_dostring(L, "print(\"Hello from lua\")"); lua_register(L, "greeting", greeting); luaL_dostring(L, "greeting(\"cromulent\")"); /* Call BSDLUA */ luaL_dostring(L, "print(\"My PID is: \" .. posix.getpid())"); } </code> Makefile: <code> all: luainc clean: rm -f *.o *.core luainc luainc: luainc.o gcc -o luainc luainc.o -lbsdlua -lm -lcurses -lpanel luainc.o: luainc.c gcc -O2 -o luainc.o -c luainc.c </code> ivanvoras/bsdlua.txt Last modified: 2011/05/29 22:50by IvanVoras