1-Çalışma zamanı derleme aşamasına ihtiyaç olmadığı için belli bir zaman kazanımımız olur.
2-Belki bazıları için önemli olacak, kodlarımızı insanın okuyabileceğinden insanın okuyamayacağı duruma getirerek kodlarımızı amatör ellerden-gözlerden saklamış-gizlemiş oluruz(?!.).
Tüm yorumlanan diller aynısı yapar misal Java'da "insaninokuyabilecegikod.java" dosyası
"insaninokuyamayacagibaytkod.class" dosyasına javac ile çevrilir-derlenir. Lua da aynı imkan var. Bunu aşağıdaki istemci satırı komutlarından biriyle yaparız, hangisi size uyarsa(bu imkan için kaynak koddan derlenmiş luajit.exe ve beraberinde gelen-oluşan jit dosyalarına ihtiyaç duyuluyor bilginize):
luajit -b test.lua test.out # test.out dosyasına bayt kodları kaydet
luajit -bg test.lua test.out # hata ayıklama-debug bilgisini tutarak kaydet
luajit -be "print('hello world')" test.out # komut satırından script kaydet
luajit -b test.lua test.obj # nesne dosyası üret
# test.obj 'i uygulamanızla linkler ve require("test") ile onu yüklersiniz
Örnek uygulama:
--main.lua Lua program dosyamız:
print("main.lua dan selam")
//app.c C program dosyamız
#include <stdio.h>
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
int main(int argc, char **argv)
{
int status;
lua_State *L = luaL_newstate();
luaL_openlibs(L);
lua_getglobal(L, "require");
lua_pushliteral(L, "main");
status = lua_pcall(L, 1, 0, 0);
if (status) {
fprintf(stderr, "Error: %s\n", lua_tostring(L, -1));
return 1;
}
return 0;
}
1-*.lua script dosyasını nesne dosyasına çevirme
luajit -b main.lua main.obj
2- C uygulamamızı derleme
gcc -O2 -Wall -Wl,-E -o app app.c main.o -lluajit -lm -ldl
Hiç yorum yok:
Yorum Gönder