SWIG Lua 草案 |
|
正在進行工作的節錄評語
Lua 的其中一項座右銘是「機制,而非政策」。事實上,Lua 並沒有預先定義的物件模型。它提供一層薄薄的語法糖(: 和 self)以及一組小小的強大機制(環境、元表、閉包和協程),共同允許使用各種不同的物件風味。
由於這是 Lua 的方法,我們必須在設計 SWIG/Lua 時遵循它。這表示我們必須在 SWIG 和 Lua 之間提供某種程度的靈活性。另一方面,我們應注意不要讓 Lua 不同於其他 SWIG 目標語言,而導致其模組介面有太多不同,降低重用性。
SWIG 在靈活性方面提供了許多選項,但依賴 SWIG 類型對應和指令技巧會混淆介面。也需要撰寫一些 C,而這並非 SWIG 和 Lua 使用者通常有興趣的!
這導致建立 Lua 本身之中 Lua 側包裝的特定解決方案 [1]。
我們提供以下基本機制
第 1 及 2 階段很簡單。第 3 及 4 階段依賴 宣告式技術以獲得清晰度和功能性。
[1] 相較之下,SWIG/Lua 的目前官方實作使用單一任意物件結構,而這個結構是以 C 寫成硬代碼,存在於執行時期 SWIG 程式庫的某個地方。是的,產生的模組仍然可以進行調整,但是高層級資訊已經遺失,而且這是一個脆弱的方法。
歡迎留言。