Scelgo Lua 5.1 come linguaggio di scripting incorporato della mia applicazione, ma quando porto l'applicazione su una piattaforma legacy su LynxOS su PowerPC, sembra andare storto.Lua si comporta in modo strano sulla piattaforma PowerPC/LynxOS, perché?
ottengo seguente codice eseguito su PC e ogni cosa sembra buono:
void test_lua()
{
const char *code = "foo = 5\n";
double vfoo=0;
lua_State *L = luaL_newstate();
(void)luaL_loadbuffer(L, code, strlen(code), "line");
(void)lua_pcall (L, 0, 0, 0);
lua_getglobal(L, "foo");
vfoo = lua_tonumber(L, -1);
lua_close(L);
myTrace("vfoo = %f", vfoo);
for(;;);
}
con il PC (Visual C++ 6.0) mi sono in attesa "vfoo = 5,000 mila"
Ma con LynxOS/PowerPC I ottenuto "vfoo = 0.000000".
Quindi cosa succede a Lua su LynxOS/PowerPC? Mi chiedo se ci siano alcune configurazioni per la macchina big-endian, l'ho cercata in "luaconf.h" ma non trovo nulla. Ho anche provato la voce di configurazione "LUA_USE_POSIX" ma nessun aiuto.
So che non è una piattaforma tipica per la programmazione lua. Tuttavia, ogni suggerimento è benvenuto ed apprezzato.
Il codice sembra giusto. Suggerisco di controllare i valori di ritorno di 'luaL_loadbuffer' e' lua_pcall' e di stampare 'luaL_typename (L, -1)' dopo 'lua_getglobal'. – lhf
Ci sono test suite Lua su . Prova a eseguirli. Se qualcosa è rotto, alcuni test dovrebbero fallire, magari dandoti più informazioni su ciò che è rotto. (Il codice del test è denso e non commentato, ma le informazioni sulla linea dovrebbero essere sufficienti per ricostruire quello che è successo.) –
nobody