
2025/12/23 0:06
**Lua 5.5**(Lua バージョン 5.5)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Summary
この文書は、Lua の最初の公開リリースから最新の 5.5.0 更新までの進化を年代順に記録し、各主要バージョン、そのリリース日、主な機能、および API の変更点を詳細に説明しています。歴史は元々 HOPL III(2007)で発表された論文として提示され、2025 年の出版物で継続されており、すべてのソースコードとドキュメントが無料でダウンロードできることも記載しています。
Release numbering
Lua は
x.y.z スキームに従います:
- x = シリーズ(例:5.x)
- y = シリーズ内のメジャーバージョン
- z = パッチレベル。
パッチはバグ修正リリースで、親バージョンと ABI 互換性を保ちます。一方、異なるメジャーバージョン(例:5.3 vs 5.4)は API の変更を導入し ABI 非互換です。そのため、事前にコンパイルされたバイトコードは各メジャーリリース固有になります。
Major releases
| Version | Release date | Key features / changes | Last patch |
|---|---|---|---|
| Lua 1.0–3.x | 1993–1994 | 匿名関数、upvalue、タグメソッド、auxlib、パターンマッチング、長い文字列 | N/A |
| Lua 4.0 | 6 Nov 2000 | 複数の状態、新 API、 文、デバッグ情報実行、組み込み関数の削除 | 4.0.1 (4 Jul 2002) |
| Lua 5.0 | 11 Apr 2003 | コルーチン、完全なレキシカルスコーピング、メタテーブル、ブール値、テイルコール、弱いテーブル、パッケージサポート、新ロード API | 5.0.3 (26 Jun 2006) |
| Lua 5.1 | 21 Feb 2006 | モジュールシステム、インクリメンタル GC、可変長引数機構、長文字列構文、mod/length 演算子、すべての型に対するメタテーブル、再入可能パーサー | 5.1.5 (17 Feb 2012) |
| Lua 5.2 | 16 Dec 2011 | Yieldable 、メタメソッド、新しいグローバルスキーム、エフェマロンテーブル、ビット演算ライブラリ、C 関数、緊急 GC、、テーブルファイナライザー | 5.2.4 (7 Mar 2015) |
| Lua 5.3 | 12 Jan 2015 | 整数、ビット演算子、UTF‑8 ライブラリ、64 ビットサポート | 5.3.6 (25 Sep 2020) |
| Lua 5.4 | 29 Jun 2020 | 新しい世代型 GC モード、/ 変数 | 5.4.8 (4 Jun 2025) |
| Lua 5.5.0 | 22 Dec 2025 | グローバル変数宣言、コンパクト配列、新しい世代型ガベージコレクションモード、インクリメンタルメジャー GC | – |
Practical implications
開発者は各メジャーバージョンが ABI の変更をもたらし、事前にコンパイルされたバイトコードを破壊するため、移行計画を慎重に立てる必要があります。5.5.0 で導入された新機能(特にグローバル宣言構文と改善されたガベージコレクション)は、性能クリティカルなアプリケーションや Lua のメモリ管理動作に依存するライブラリに影響を与えます。
将来のリリースは、各シリーズ内で ABI 互換性を保ちながらこれらの機能拡張を継続すると予想されます。
本文
以下は、Lua のリリース履歴を整理したものです。
Lua の進化
この歴史は HOPL III(2007)で発表された論文と、2025 年のジャーナル記事にまとめられています。すべてのリリースに対するソースコードとドキュメントはダウンロードエリアから入手できます。
版数体系
リリースは x.y.z の形式で表されます
– シリーズx
– バージョンx.y
– リリースz
- 同一バージョン(異なる
)のリリースはバグ修正のみ。リファレンスマニュアル、VM、ABI は共有します。z - 異なるバージョン (
) では API が変更される場合があり(互換性スイッチ付き)、ABI が破壊されます。大きなバージョン間でプリコンパイルされた Lua バイトコードは通常移植できません。x.y
Lua 5.x
Lua 5.5
- リリース日:2025年12月22日(5.5.0)
- 主な特徴:グローバル変数宣言、コンパクト配列、世代別 GC モード、インクリメンタル大規模 GC。
Lua 5.4
- リリース日:2020年6月29日(5.4.0)
- 主な特徴:世代別 GC モード、
と「to-be‑closed」変数。const - 現在のリリース:5.4.8 – 2025年6月4日。
Lua 5.3
- リリース日:2015年1月12日(5.3.0)
- 主な特徴:整数、ビット演算子、基本的な UTF‑8 ライブラリ、64bit/32bit プラットフォーム対応。
- 最終リリース:5.3.6 – 2020年9月25日。以降のリリースはなし。
Lua 5.2
- リリース日:2011年12月16日(5.2.0)
- 主な特徴:
の yield 機能、メタメソッド、新しいグローバル・レキシカルスキーム、エフェメロンテーブル、ビット演算ライブラリ、軽量 C 関数、緊急 GC、pcall
、テーブルファイナライザー。goto - 最終リリース:5.2.4 – 2015年3月7日。以降のリリースはなし。
Lua 5.1
- リリース日:2006年2月21日(5.1.0)
- 主な特徴:新しいモジュールシステム、インクリメンタル GC、可変長引数機構、長い文字列/コメント構文、
/長さ演算子、すべての型に対するメタテーブル、mod
、完全再入可能パーサ。luaconf.h - 最終リリース:5.1.5 – 2012年2月17日。以降のリリースはなし。
Lua 5.0
- リリース日:2003年4月11日(5.0.0)
- 主な特徴:コルーチン、完全なレキシカルスコーピング、メタテーブル、ブール値、正しい尾呼び出し、弱いテーブル、パッケージサポート、チャンク読み込み API、エラーハンドリングプロトコル、改善されたエラーメッセージ、新ライセンス。
- 最終リリース:5.0.3 – 2006年6月26日。以降のリリースはなし。
Lua 4.x
Lua 4.0
- リリース日:2000年11月6日(4.0.0)
- 主な特徴:複数状態、API の刷新、
文、デバッグ情報付きの高速実行、公式 API を用いた標準ライブラリ。for - 最終リリース:4.0.1 – 2002年7月4日。以降のリリースはなし。
Lua 3.x
Lua 3.2
- リリース日:1999年7月8日(3.2.0)
- 主な特徴:デバッグライブラリ、新しいテーブル関数。
- 最終リリース:3.2.2 – 2000年2月22日。以降のリリースはなし。
Lua 3.1
- リリース日:1998年7月11日(3.1.0)
- 主な特徴:匿名関数、upvalue ベースのクロージャー、関数型プログラミング的雰囲気、多重グローバルコンテキスト、部分再入可能性、コード再編成、倍精度数。
Lua 3.0
- リリース日:1997年7月1日(3.0.0)
- 主な特徴:タグメソッド、C ライブラリ用
、条件付きコンパイルサポート(4.0 で削除)。auxlib
Lua 2.x
Lua 2.5
- リリース日:1996年11月19日(2.5.0) – パターンマッチング、可変長引数関数。
Lua 2.4
- リリース日:1996年5月14日(2.4.0) – 外部コンパイラ
、拡張デバッグフック、luac
フォールバック。getglobal
Lua 2.3
- 公開リリースはなく、ベータ版としてのみ存在しました。
Lua 2.2
- リリース日:1995年11月28日(2.2.0) – 長い文字列、デバッグインターフェイス、スタックトレースバック、拡張関数構文、関数 GC、パイプサポート。
Lua 2.1
- リリース日:1995年2月7日(2.1.0) – 拡張可能なフォールバック、オブジェクト指向サポート、II Compaq Award を受賞した論文。以降のバージョンからはすべて無料で利用できます。
Lua 1.x
Lua 1.1
- リリース日:1994年7月8日(1.1.0) – 最初の公開リリース、会議論文、バイトコード VM、強力なデータ記述、シンプル構文。学術利用は無料で、商用利用には交渉が必要。
Lua 1.0
- 公開リリースはなく、1993年7月28日(おそらくそれ以前)に動作していたと考えられます。