Skip to content

Luaのバージョン履歴

バージョンの概要

Luaの進化の過程は、2007年に開催された第3回ACM SIGPLANプログラミング言語の歴史に関する会議(HOPL III)で発表された論文に記録されています。Luaの全バージョンのソースコードやドキュメントは、ダウンロードエリアで入手可能です。

バージョン番号のルール

Luaのリリースは「x.y.z」の形式で表記され、x.yがバージョン、zがリリース番号を示します。

  • 同じバージョン内での異なるリリース:バグ修正が主で、同じリファレンスマニュアルや仮想マシンを共有し、バイナリ互換性(ABI互換性)もあります。
  • 異なるバージョン間:APIや仮想マシンが変更されるため、LuaやCライブラリを組み込んだアプリケーションは再コンパイルが必要で、ABI互換性もありません。

主なバージョン

Lua 5.4

  • リリース日:2020年6月29日
  • 主な特徴:ガベージコレクションの新しい世代モード、「const」および「to-be-closed」変数の導入。
  • 最新リリース:Lua 5.4.6(2023年5月14日リリース)

Lua 5.3

  • リリース日:2015年1月12日
  • 主な特徴:整数、ビット演算子、UTF-8ライブラリ、64ビットと32ビットプラットフォームのサポート。
  • 最終リリース:Lua 5.3.6(2020年9月25日リリース)

Lua 5.2

  • リリース日:2011年12月16日
  • 主な特徴:yieldable pcallとメタメソッド、グローバル変数の新しい字句構造、エフェメロンテーブル、ビット演算の新ライブラリ、軽量C関数、非常用ガベージコレクター、goto文、テーブルのファイナライザー。
  • 最終リリース:Lua 5.2.4(2015年3月7日リリース)

Lua 5.1

  • リリース日:2006年2月21日
  • 主な特徴:新しいモジュールシステム、インクリメンタルガベージコレクション、新しい可変引数メカニズム、長い文字列とコメントの新しい構文、モジュラス演算子と長さ演算子、すべての型に対するメタテーブル、luaconf.hによる新しい設定システム、完全な再入可能なパーサー。
  • 最終リリース:Lua 5.1.5(2012年2月17日リリース)

Lua 5.0

  • リリース日:2003年4月11日
  • 主な特徴:Luaコルーチンによる協調マルチスレッディング、完全なレキシカルスコーピング、タグとタグメソッドの代わりにメタテーブルの導入、ブール値、プロパーテイルコール、弱テーブル、エラーメッセージの改善など。
  • 最終リリース:Lua 5.0.3(2006年6月26日リリース)

Lua 4.0以前のバージョン

Lua 4.0

  • リリース日:2000年11月6日
  • 主な特徴:複数の状態、新しいAPI、「for」ステートメント、デバッグ情報を含むフルスピードの実行。
  • 最終リリース:Lua 4.0.1(2002年7月4日リリース)

Lua 3.2

  • リリース日:1999年7月8日
  • 主な特徴:デバッグライブラリと新しいテーブル関数。
  • 最終リリース:Lua 3.2.2(2000年2月22日リリース)

Lua 3.1

  • リリース日:1998年7月11日
  • 主な特徴:無名関数と「upvalues」による関数クロージャーのサポート(Lua 5.0で完全なレキシカルスコーピングが導入され、「upvalues」は廃止されました)。この変更により、Luaに関数型プログラミングの要素が追加されました。また、複数のグローバルコンテキストをサポートしましたが、APIは完全に再入可能ではありませんでした(完全な再入性はLua 4.0で導入)。さらに、コードの大幅な整理が行われ、モジュール間の依存性が減少し、数値の内部表現に倍精度が採用されました。

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.3は正式にはリリースされておらず、ベータ版としてのみ存在していました。

Lua 2.2

  • リリース日:1995年11月28日
  • 主な特徴:長い文字列のサポート、デバッグインターフェース、スタックのトレースバックの改善、関数定義の構文拡張、関数のガベージコレクション、およびパイプのサポートが追加されました。

Lua 2.1

  • リリース日:1995年2月7日
  • 主な特徴:フォールバックによる拡張可能なセマンティクスと、オブジェクト指向プログラミングのサポート。このバージョンは学術誌で紹介され、Lua 2.1以降、Luaは商用利用を含むあらゆる目的で自由に使用可能になりました。

Lua 1.1

  • リリース日:1994年7月8日
  • 主な特徴:最初の公開リリースとして、強力なデータ記述構造、シンプルな構文、およびバイトコード仮想マシンがすでに備わっていました。このバージョンは学術目的で無料で使用できましたが、商用利用には別途交渉が必要でした(実際には商用利用の契約は行われていません)。

Lua 1.0

  • リリース状況:Lua 1.0は一般には公開されておらず、1993年7月28日にはすでに稼働していましたが、実際には数か月前から動いていた可能性があります。