Luaのバージョン履歴です。Luaの進化は、2007年に開催された論文(HOPL III、第3回ACM SIGPLANプログラミング言語歴史会議にて発表)に記録されています。 全てのLuaリリースのソースコードとドキュメントは、ダウンロードエリアから入手できます。
Luaのリリースは、*x.y.z*のように番号が付けられています。ここで、*x.y*はバージョン、*z*はリリースです。
同じバージョンの異なるリリースは、バグ修正に対応しています。同じバージョンの異なるリリースは、同じリファレンスマニュアル、同じ仮想マシンを持ち、バイナリ互換性(ABI互換性)があります。
異なるバージョンは、実際に異なります。APIは多少異なる可能性があり(ただし互換性スイッチがあります)、ABI互換性はありません。Luaを組み込んだアプリケーションとLua用のCライブラリは、再コンパイルする必要があります。仮想マシンも新しいバージョンでは大きく異なる可能性があります。あるバージョン用にプリコンパイルされたLuaプログラムは、異なるバージョンではロードされません。
Lua 5.4は、2020年6月29日にリリースされました。主な新機能は、ガベージコレクションの新しい世代モード、const変数、およびto-be-closed変数です。
現在のリリースは、2023年5月14日にリリースされたLua 5.4.6です。
Lua 5.3は、2015年1月12日にリリースされました。主な新機能は、整数、ビット演算子、基本的なUTF-8ライブラリ、および64ビットと32ビットの両方のプラットフォームのサポートでした。
最後のリリースは、2020年9月25日にリリースされたLua 5.3.6です。Lua 5.3の今後のリリースはありません。
Lua 5.2は、2011年12月16日にリリースされました。主な新機能は、yield可能なpcallとメタメソッド、グローバルのための新しいレキシカルスキーム、 ephemeronテーブル、ビット演算のための新しいライブラリ、軽量C関数、緊急ガベージコレクタ、goto文、およびテーブルのファイナライザでした。
最後のリリースは、2015年3月7日にリリースされたLua 5.2.4です。Lua 5.2の今後のリリースはありません。
Lua 5.1は、2006年2月21日にリリースされました。主な新機能は、新しいモジュールシステム、インクリメンタルガベージコレクション、可変長引数の新しいメカニズム、長い文字列とコメントの新しい構文、mod演算子とlength演算子、すべての型に対するメタテーブル、luaconf.hを介した新しい構成スキーム、そして完全にリエントラントなパーサーでした。
最後のリリースは、2012年2月17日にリリースされたLua 5.1.5です。Lua 5.1の今後のリリースはありません。
Lua 5.0は、2003年4月11日にリリースされました。主な新機能は、Luaコルーチンによる協調マルチスレッディング、アップバリューの代わりに完全なレキシカルスコープ、タグとタグメソッドの代わりにメタテーブルでした。Lua 5.0では、ブール値、適切な末尾呼び出し、および弱参照テーブルも導入されました。その他の特徴としては、パッケージのサポート向上、Luaチャンクをロードするための新しいAPI、新しいエラー処理プロトコル、エラーメッセージの改善など、多くの改良が加えられました。Lua 5.0は、新しいライセンスの下でリリースされた最初のバージョンです。
最後のリリースは、2006年6月26日にリリースされたLua 5.0.3です。Lua 5.0の今後のリリースはありません。
Lua 4.0 は、2000年11月6日にリリースされました。主な新機能は、複数ステート、新しい API、「for」文、完全なデバッグ情報によるフルスピード実行です。また、Lua 4.0 には組み込み関数がなくなりました。標準ライブラリのすべての関数は、公式 API を使用して記述されています。
最後のリリースは、2002年7月4日にリリースされた Lua 4.0.1 です。Lua 4.0 の今後のリリースはありません。
Lua 3.2 は、1999年7月8日にリリースされました。主な新機能は、デバッグライブラリと新しいテーブル関数です。
最後のリリースは、2000年2月22日にリリースされた Lua 3.2.2 です。Lua 3.2 の今後のリリースはありません。
Lua 3.1 は、1998年7月11日にリリースされました。主な新機能は、匿名関数と「アップバリュー」による関数クロージャです。(Lua 5.0 は完全なレキシカルスコープをもたらし、アップバリューを廃止しました。)これにより、Lua に関数型プログラミングの要素がもたらされました。複数のグローバルコンテキストのサポートもありました。ただし、API は完全にリエントラントではありませんでした(これは Lua 4.0 まで待たなければなりませんでした)。Lua 3.1 では、コードの大幅な再編成とクリーンアップが行われ、モジュール間の相互依存性が大幅に削減されました。Lua 3.1 では、数値の内部表現に倍精度が採用されました。
Lua 3.0 は、1997年7月1日にリリースされました。主な新機能は、フォールバックの強力な代替手段としてのタグメソッドです。Lua 3.0 では、Lua ライブラリの記述を支援するためのライブラリである auxlib と、条件付きコンパイルのサポート(Lua 4.0 で廃止)が導入されました。
Lua 2.5 は 1996 年 11 月 19 日にリリースされました。主な新機能は、パターンマッチングと可変長引数関数です。
Lua 2.4 は 1996 年 5 月 14 日にリリースされました。主な新機能は、外部コンパイラ *luac*、フックを備えた拡張デバッグインターフェース、および「getglobal」フォールバックです。
Lua 2.3 は公式にはリリースされませんでした。ベータ版としてのみ存在していました。
Lua 2.2 は 1995 年 11 月 28 日にリリースされました。主な新機能は、長い文字列、デバッグインターフェース、より優れたスタックトレースバック、関数定義の拡張構文、関数のガベージコレクション、およびパイプのサポートです。
Lua 2.1 は 1995 年 2 月 7 日にリリースされました。主な新機能は、フォールバックによる拡張可能なセマンティクスとオブジェクト指向プログラミングのサポートです。このバージョンは、ジャーナル論文で説明されています。Lua 2.1 以降、Lua は商用利用を含むあらゆる目的で自由に利用できるようになりました。
Lua 1.1 は 1994 年 7 月 8 日にリリースされました。これは Lua の最初の公式リリースであり、会議論文で説明されています。Lua 1.1 には、強力なデータ記述構造、シンプルな構文、バイトコード仮想マシンがすでに搭載されていました。Lua 1.1 は学術目的で自由に利用できました。商用利用は交渉が必要でしたが、実際にはありませんでした。
Lua 1.0 は公式にはリリースされませんでしたが、1993 年 7 月 28 日には稼働しており、おそらくその数か月前には稼働していました。