Vm Merge

lua-users home
wiki

概述

此腳本被設計為使用 Lua 原始碼檔,執行 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        	
腳本將把原始碼和 VM 程式碼合併成:-
 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 格式,讓閱讀更輕鬆(不幸地,此網站沒有提供 HTML 預覽功能):-
<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 頁面找到更多範例。

命令列

下載

請參閱


RecentChanges · 喜好設定
編輯 · 歷史記錄
最後編輯於 2007 年 1 月 11 日 上午 4:19 GMT (diff)