Vm Merge |
|
luac
產生 Lua VM 程式碼,然後將兩者合併。例如,使用以下程式碼:-
a = {}
b = a.x
print(b)
luac
產生:-main <0:@a.lua> (9 instructions/36 bytes at 002F29E8) 0 params, 2 stacks, 0 locals, 4 strings, 0 numbers, 0 functions, 5 lines 1 [2] CREATETABLE 0 2 [2] SETGLOBAL 0 ; a 3 [3] GETGLOBAL 0 ; a 4 [3] GETDOTTED 2 ; x 5 [3] SETGLOBAL 1 ; b 6 [4] GETGLOBAL 3 ; print 7 [4] GETGLOBAL 1 ; b 8 [4] CALL 0 0 9 [4] END
a = {} CREATETABLE 0 SETGLOBAL 0 ; a b = a.x GETGLOBAL 0 ; a GETDOTTED 2 ; x SETGLOBAL 1 ; b print(b) GETGLOBAL 3 ; print GETGLOBAL 1 ; b CALL 0 0 END
<html><pre> <b>a = {}</b> CREATETABLE 0 SETGLOBAL 0 ; a <b>b = a.x</b> GETGLOBAL 0 ; a GETDOTTED 2 ; x SETGLOBAL 1 ; b <b>print(b)</b> GETGLOBAL 3 ; print GETGLOBAL 1 ; b CALL 0 0 END</pre></html>
請注意,上述範例不包含行號。你可以在 OptimisationTips 頁面找到更多範例。
lua -f vmmerge.lua ...options...
執行腳本。lua
和 luac
執行檔。luac -p -l
用於產生 VM 程式碼。--fmt merge|html
選擇輸出格式(請見上述說明)。--nol
移掉行號。... > file.txt
」lua -f vmmerge.lua --file my.lua --fmt html > my.html