よくある質問
こちらではLuaに関するよくある質問への回答を紹介しています。
Luaの概要、あるいはLuaの導入方法を学びたい場合はそれぞれのページを参照してください。
また、プログラミングに関する質問については、コミュニティが管理するLuaFaqやさらに詳しいuFAQも参考にしてください。
1 – 配布
Luaのソースコードやバイナリを取得する方法については、ダウンロードページとスタートガイドを参照してください。
1.1 – Luaをビルドするために何が必要ですか?
Luaは純粋なANSI Cで実装されており、すべての既知のプラットフォームでそのままコンパイルが可能です。LuaのビルドにはANSI Cコンパイラが必要です(一般的にはgccやclangがよく使われます)。また、LuaはC++としてもクリーンにコンパイルできます。
Unixシステム(LinuxやmacOSなど)でLuaをビルドする場合、必要なものはすでに揃っている可能性が高く、通常はmake
コマンドを実行するだけでビルドが可能です(適切なプラットフォームを選択する必要があります)。それ以外の場合は、次の質問を参照してください。詳細については、配布パッケージに含まれているREADME
ファイルを参照してください。また、Luaのダウンロード、ビルド、インストールについての詳細な手順は、『Beginning Lua Programming』の第1章に記載されています。
ここでは、一般的なプラットフォーム向けの簡単な手順を示します。
curl -L -R -O https://www.lua.org/ftp/lua-5.4.6.tar.gz
tar zxf lua-5.4.6.tar.gz
cd lua-5.4.6
make all test
curl
がインストールされていない場合は、wget
を試してください。自分でコンパイルする時間がない、またはその気がない場合は、LuaBinariesからバイナリを取得することができます。Luaを試すだけであれば、ライブデモを利用することもできます。
1.2 - Windowsや他のシステムでLuaをビルドするには?
これは使用するコンパイラに依存します。多くのコンパイラでは、「プロジェクト」ファイルを作成する必要があります。ライブラリ、インタプリタ、およびコンパイラをビルドするために、プロジェクト(またはコンパイラで使用される形式の設定)を作成する必要があります。ソースコードはすべて src
ディレクトリにあります。どのモジュールをどのプロジェクトに入れるべきかの具体的なリストは、READMEに記載されています。また、WikiのBuildingLuaも参照してください。『Beginning Lua Programming』の第1章には、Luaのダウンロード、ビルド、およびインストールに関する詳細な手順が記載されています。
もしLuaを自分でコンパイルする時間や手間がかけられない場合は、LuaBinariesからバイナリを入手してください。
1.3 - 次のバージョンはいつリリースされますか?
Luaは常に開発が進行していますが、新バージョンのリリースは頻繁ではありません。
Lua 5.4.6は2023年5月14日にリリースされました。
1.4 - 次のバージョンでは何が変わりますか?
Lua 5.4が最近リリースされました。次のバージョンにどのような機能が含まれるかを確認するためには、利用可能な場合に「ワークバージョン」を試してみてください。
互換性に関して心配する必要はありません。私たちは非互換性を導入しないよう最大限の努力をしています。非互換が避けられない場合でも、通常は以前のコードが修正なしで動作できるよう、適切なコンパイルフラグを設定することで対応可能です。いずれにしても、リファレンスマニュアルには非互換のリストが記載されています。
1.5 - Luaはフリーソフトウェアですか?
はい、Luaは商業目的を含むいかなる目的でも無料で利用可能です。利用にあたって一切の手続きも不要です。詳細はライセンスページで確認してください。
1.6 - LuaはGPLソフトウェアと互換性がありますか?
はい。Luaは非常に寛大で有名なMITライセンスのもとで配布されており、GPLと互換性があり、Open Source Initiativeにも認められています。詳細はライセンスページで確認してください。
1.7 - Luaをベースにしたソフトウェアを何と呼ぶべきですか?
Luaは他のソフトウェア、つまりあなたのソフトウェアで使用されることを意図しています。通常、Luaは新しい機能を追加することで特定の用途に適合させる形で拡張されます。これはまさにLuaが設計された目的です。
ソフトウェアを配布する際に「自分のソフトウェアに含まれる言語をLuaと呼んでよいのか?」または「別の名前をつけるべきか?」といった疑問が生じるかもしれません。
Luaの構文や意味論(つまりパーサーや仮想マシン)が同じままであれば、その言語は依然としてLuaです。新しいライブラリを追加したり、標準のLuaライブラリを自作のものに置き換えたりしても、言語自体は同じです。その場合、完全に異なる名前をつける必要は(むしろ避けるべきです)ありません。
一方で、Luaの構文や意味論を変更した場合、それはおそらく小さな拡張となるため、その言語を「Luaのバリアント」と呼ぶことで、既存のLuaドキュメントやコミュニティを利用しつつ、その拡張に関する注意点を明示することができます。
一般的に、Luaを使用していることがわかる名前(例:CGILua、LuaMan、LuaOrbなど)が利用されることが多いです。これにより、そのソフトウェアがLuaを使用しているが公式のLuaディストリビューションではないことが明確になります。つまり、ソフトウェア内でLuaを使用していること(特にソフトウェア内の言語がLuaであること)を明示しつつ、そのソフトウェア自体がLuaそのものではないことを明確にする必要があります。
いずれの場合でも、ライセンスに従ってLuaへのクレジットを表記してください。
もしこの説明で不明瞭な点がある場合は、ぜひ私たちにご連絡ください。
以下は、Lua公式サイトの英語テキストを日本語に翻訳し、Markdown形式で作成したものです。
1.8 - 公開されたリビジョン管理リポジトリはありますか?
GitHubに、Luaチームによって管理されるLua開発コードの公開ミラーがあります。このリポジトリにはすべてのコミット履歴が含まれていますが、不定期に更新されています。プルリクエストは送信しないでください。バグ報告や提案はメーリングリストで行ってください。Luaはオープンソースソフトウェアですが、公開開発されているわけではありません。詳しくはこちらの説明をご覧ください。
次のバージョンのプレビューを見たい場合、ワークバージョンが利用可能になるまでお待ちください。
1.9 - パッチの受け入れはしていますか?
問題解決や機能拡張のために、テスト済みのコードを基にした議論を歓迎しますが、サードパーティのコードをそのまま組み込むことはありません。私たちは常に問題と提案された解決策を理解し、その上で対応が必要と判断した場合には、独自のコードを提供します。Luaのすべてのコードは私たちによって書かれています。詳しくは前の質問も参照してください。
2 - 情報
Luaに関する完全な情報は公式サイトにあります。最初に概要を読む、サイトマップからエントリーポイントを選ぶ、またはLuaの使い方を学ぶとよいでしょう。
2.1 - Luaにはメーリングリストがありますか?
はい、lua-lという親しみやすく活発なメーリングリストがあります。誰でも参加可能です。詳細はこちらをご覧ください。
ポルトガル語での議論用に、lua-lのブラジル版「Lua BR」もあります。
2.2 - Lua専用のニュースグループはありますか?
いいえ、メーリングリストを使用してください。Webインターフェースで投稿を読みたい場合は、Google Groupsか、MARCアーカイブを利用してください。また、過去のアーカイブを検索することもできます。
Lua用のQ&Aフォーラムを探しているなら、Stack Overflowをお試しください。
2.3 - Luaのバグを報告するにはどうすればよいですか?
まず、本当にバグかどうかを確認してください。すでに報告され(おそらく修正済み)の問題かどうかを調べるために、メーリングリストのアーカイブを検索してください。同様の問題に遭遇した人が解決策や説明を提供している可能性があります。
それでもバグだと思う場合は、メーリングリストで報告してください。バグを報告する前に、そのバグを再現する最小のプログラム(MWEやSSCCEと呼ばれるもの)を見つけてください。これはバグの再現、文書化、追跡を容易にします。また、Simon Tathamの「効果的なバグ報告方法」というエッセイも参考にしてください。
2.4 - Luaはどこで使われていますか?
Luaは世界中のさまざまな製品やプロジェクトで使用されており、有名なゲームにも採用されています。全てを追跡するのは難しいため、リストの一覧をご覧ください。
2.5 - Luaに関する書籍はありますか?
はい、いくつかあります。完全なリストはこちらです。『Programming in Lua』は、Luaの設計者が執筆した、Luaプログラミングに関する詳細かつ権威のある入門書です。第4版は2016年に発行され、電子書籍としても利用可能です。第1版は2003年に発行され、無料でオンライン公開されています。また、複数の言語に翻訳された過去の版もあります。他の著者によるLuaに関する書籍も多数存在します。
2.6 - Luaプロジェクトをサポートするにはどうすればよいですか?
Lua.orgが発行している書籍の購入や寄付を通じて、Luaプロジェクトを支援できます。
また、ZazzleでLua関連商品を購入することで、Luaの普及に貢献することも可能です。