アプリケーションの組み込みスクリプト言語として Lua 5.1 を選択しましたが、PowerPC で LynxOS を実行するレガシー プラットフォームにアプリケーションを移植すると、うまくいかないようです。
PCで次のコードを実行すると、すべてがうまくいきます。
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(;;);
}
PC (Visual C++ 6.0) で "vfoo = 5.000000" を期待していました
しかし、LynxOS/PowerPC では "vfoo = 0.000000" になりました。
では、LynxOS/PowerPC 上の Lua はどうなっているのでしょうか? ビッグ エンディアン マシン用の構成がいくつかあるのではないかと思い、「luaconf.h」で探しましたが、何も見つかりませんでした。構成項目「LUA_USE_POSIX」も試しましたが、助けにはなりませんでした。
lua プログラミングの典型的なプラットフォームではないことはわかっています。ただし、提案は大歓迎です。