Lua 版本歷史

以下是 Lua 各版本的年表。 Lua 的演進 記錄在一篇 論文 中,該論文發表於 HOPL III,第三屆 ACM SIGPLAN 程式語言歷史會議,於 2007 年舉行。所有 Lua 版本的原始碼和文件都可以在 下載區 中取得。

編號方案

Lua 的版本編號為 x.y.z,其中 x.y 是版本,z 是發行版。

同一個版本的不同發行版對應於 錯誤修正。同一個版本的不同發行版具有相同的 參考手冊、相同的虛擬機器,並且二進制相容(ABI 相容)。

不同版本確實不同。API 可能會有些不同(但有相容性切換),並且沒有 ABI 相容性:嵌入 Lua 和 Lua 的 C 函式庫的應用程式必須重新編譯。在新的版本中,虛擬機器也很可能不同:已針對一個版本預先編譯的 Lua 程式將無法載入不同的版本。

Lua 5.4

Lua 5.4 於 2020 年 6 月 29 日發布。其 主要新功能 是垃圾回收的新世代模式,以及 const 和 to-be-closed 變數。

目前的發行版是 Lua 5.4.6,於 2023 年 5 月 14 日發布。

Lua 5.3

Lua 5.3 於 2015 年 1 月 12 日發布。其 主要新功能 是整數、位元運算子、基本的 utf-8 函式庫,以及對 64 位元和 32 位元平台的支援。

最後一個發行版是 Lua 5.3.6,於 2020 年 9 月 25 日發布。Lua 5.3 將不再有後續發行版。

Lua 5.2

Lua 5.2 於 2011 年 12 月 16 日發布。其 主要新功能 是可讓渡的 pcall 和元方法、全域變數的新詞彙方案、短暫表、位元運算的新函式庫、輕量級 C 函式、緊急垃圾回收器、goto 陳述式,以及表的終結器。

最後一個發行版是 Lua 5.2.4,於 2015 年 3 月 7 日發布。Lua 5.2 將不再有後續發行版。

Lua 5.1

Lua 5.1 於 2006 年 2 月 21 日發布。其主要新功能是新的模組系統、增量垃圾回收、變數引數的新機制、長字串和註解的新語法、mod 和 length 運算子、所有類型的元表、透過 luaconf.h 的新設定方案,以及一個完全可重新進入的剖析器。

最後一個發行版是 Lua 5.1.5,於 2012 年 2 月 17 日發布。Lua 5.1 將不再有後續發行版。

Lua 5.0

Lua 5.0 於 2003 年 4 月 11 日發布。其主要的新功能包括透過 Lua 協同程序進行協作式多執行緒、完全詞彙範圍(而非 upvalues)以及元表(而非標籤和標籤方法)。Lua 5.0 也引入了布林值、適當的尾呼叫和弱表。其他功能包括對套件的更好支援、用於載入 Lua 塊的新 API、新的錯誤處理協定、更好的錯誤訊息,以及更多。Lua 5.0 是第一個在 新授權下發布的版本。

最後一個版本是 Lua 5.0.3,於 2006 年 6 月 26 日發布。不會再有 Lua 5.0 的後續版本。

Lua 4.0

Lua 4.0 於 2000 年 11 月 6 日發布。其主要的新功能包括多重狀態、新的 API、「for」語句,以及在完整除錯資訊下進行全速執行。此外,Lua 4.0 不再有內建函式:標準函式庫中的所有函式都是使用官方 API 編寫的。

最後一個版本是 Lua 4.0.1,於 2002 年 7 月 4 日發布。不會再有 Lua 4.0 的後續版本。

Lua 3.2

Lua 3.2 於 1999 年 7 月 8 日發布。其主要的新功能包括除錯函式庫和新的表格函式。

最後一個版本是 Lua 3.2.2,於 2000 年 2 月 22 日發布。不會再有 Lua 3.2 的後續版本。

Lua 3.1

Lua 3.1 於 1998 年 7 月 11 日發布。其主要的新功能包括透過「upvalues」的匿名函式和函式封閉。 (Lua 5.0 帶來了完整的詞彙範圍並捨棄了 upvalues。)這為 Lua 帶來了函式程式設計的風格。它也支援多個全域環境;然而,API 並未完全可重入(這必須等到 Lua 4.0)。Lua 3.1 也進行了重大的程式碼重新組織和清理,大幅減少了模組間的相依性。Lua 3.1 也採用雙精度來表示數字。

Lua 3.0

Lua 3.0 於 1997 年 7 月 1 日發布。其主要的新功能是標籤方法,作為回退的強大替代方案。Lua 3.0 也引入了 auxlib,一個用於協助撰寫 Lua 函式庫的函式庫,以及對條件編譯的支援(在 Lua 4.0 中已捨棄)。

Lua 2.5

Lua 2.5 於 1996 年 11 月 19 日發布。其主要的新功能包括模式比對和可變引數函式。

Lua 2.4

Lua 2.4 於 1996 年 5 月 14 日發布。其主要新功能為外部編譯器 luac、帶有掛鉤的擴充除錯介面,以及「getglobal」後備。

Lua 2.3

Lua 2.3 從未公開發布;它僅以測試版形式存在。

Lua 2.2

Lua 2.2 於 1995 年 11 月 28 日發布。其主要新功能為長字串、除錯介面、更好的堆疊追蹤、函數定義的擴充語法、函數的垃圾回收,以及對管道的支援。

Lua 2.1

Lua 2.1 於 1995 年 2 月 7 日發布。其主要新功能為透過後備擴充語意,以及支援物件導向程式設計。此版本在 期刊論文 中有說明。從 Lua 2.1 開始,Lua 成為所有用途(包括商業用途)的免費軟體。

Lua 1.1

Lua 1.1 於 1994 年 7 月 8 日發布。這是 Lua 的首次公開發布,並在 會議論文 中有說明。Lua 1.1 已具備強大的資料描述建構、簡單的語法,以及位元組碼虛擬機器。Lua 1.1 可免費用於學術用途;商業用途必須協商,但從未有過任何協商。

Lua 1.0

Lua 1.0 從未公開發布,但它在 1993 年 7 月 28 日已上線執行,而且很可能在幾個月前就已上線。