lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi,

I'm relatively new to Lua and looking to use it as a scripting extension in a high frequency real-time application.   I hope to use LuaJIT as opposed to the interpreter to get the extra performance I need.

I am using Snow Leopard (64 bit mode) on a Xeon with gcc 4.2.1.   I've been unable to get luajit to work properly when embedded, receiving a SEGV on either LuaJit-2.0.0-beta5 or a build off of the git HEAD.

The test program is as follows:

#include <stdio.h>
#include <lua.hpp>
 
int main(int argc, char** argv) 
{
        // Create a new lua state
        lua_State *L = lua_open();
 
        luaL_openlibs(L);
 
        // Now use this class in a lua script
        luaL_dostring(L,
                "function f(x)\n"
                "       return x*x\n"
                "end\n"
                
                "sum = 0\n"
                "for i=1,10000 do\n"
                "       sum = sum + f(i)\n"
                "end\n"
                "print (sum)\n"
        );
 
        lua_close(L);
}


Building with the interpreted 
g++ -g -I../../lib/include/ -I../../lib/include/lua -L../../lib/macos -L/usr/local/lib -llua5.1 basic.cpp -o basic

Building with LuaJIT
g++ -g -I../../lib/include/ -I../../lib/include/lua -L../../lib/macos /usr/local/lib/libluajit-5.1.a  basic.cpp -o basic 


The former executes as expected and the later (with LuaJIT) consistently fails with a SEGV.  Running in gdb indicates:

Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000004
0x00000001000370d8 in lj_alloc_malloc ()


Ideas?   I don't believe I can use LuaJIT-1.1.6 as does not appear to have 64bit support?

Thanks

Jonathan