從版本 4.0 至 5.0 的變更
(取自發行版的 HISTORY 檔案)
語言
- 詞彙作用域。
- Lua 協程。
- 標準函式庫現已封裝在資料表中。
- 標籤已由元資料表取代,且標籤方法已由元方法取代,並儲存在元資料表中。
- 適當的尾呼叫。
- 每個函式都可以擁有自己的全域資料表,且此資料表可以共用。
- 新的 __newindex 元方法,當我們將新金鑰插入資料表時會呼叫該方法。
- 新區塊註解:--[[ ... ]]。
- 新的通用 for。
- 新的弱資料表。
- 新的布林型別。
- 新的「local function」語法。
- (f()) 回傳 f 回傳的第一個值。
- {f()} 用 f 回傳的所有值填滿資料表。
- \n 在 [[\n 中被忽略。
- 修正與-或優先順序。
- 函式定義有較為通用的語法 (例如 function a.x.y:f()...end)。
- 函式呼叫有較為通用的語法 (例如 (print or write)(9))。
- 新函式 (時間/日期、tmpfile、unpack、require、load* 等)。
API
- 使用 lua_load 載入區段;新的 luaL_loadfile 和 luaL_loadbuffer。
- 推出輕量級使用者資料,一個沒有元資料表的簡單「void*」。
- 新的錯誤處理協定:核心不再印出錯誤訊息;所有錯誤都在堆疊中回報給呼叫者。
- 新的 lua_atpanic 進行主機清理。
- 新的、具訊號安全性的掛鉤架構。
實作
- 新的授權:MIT。
- 新的、更快的、基於暫存器的虛擬機器。
- 支援外部多執行緒和協程。
- 新且一致的錯誤訊息格式。
- 核心不再需要「stdio.h」來進行任何事(除了使用 sprintf 將數字轉換為字串的單一用途)。
- lua.c 現在會執行環境變數 LUA_INIT(如果存在)。它可以是「@filename」,用於執行檔案,或區段本身。
- 支援 lua.c 中的使用者擴充功能。提供了命令列編輯範例實作。
- 新的動態載入函式庫,在多個平台上預設啟動。
- 安全的垃圾回收器元方法。
- 檢查預編譯位元碼的完整性(安全的二進位 dostring)。
- 字串完全對齊。
- 捕捉 string.find 中的位置。
- read('*l') 可以讀取包含嵌入式零的列。
LuaFiveAlphaToBeta
最新變更 · 偏好設定
編輯 · 歷史記錄
最後編輯於 2004 年 1 月 30 日 上午 8:47 GMT (差異)