Lua Lua 5.4 へようこそ

Lua について

Lua は強力で効率的かつ軽量な、スクリプト埋め込み言語です。 チームにより、ブラジルのリオデジャネイロ教皇立カトリック大学 PUC-Rio で開発されました。Lua は フリーソフトウェア であり、世界中の 多くの製品やプロジェクト で使用されています。

Lua の 公式ウェブサイト では、Lua に関する完全な情報を提供しています。 概要 とアップデートされた ドキュメント、特に リファレンスマニュアル が含まれます。リファレンスマニュアルは、このパッケージに配布されている ローカルコピー とわずかに異なる場合があります。

Lua のインストール

Lua は ソース 形式で配布されています。使用する前にビルドする必要があります。Lua は純粋な ANSI C で実装されており、ANSI C コンパイラのある既知のすべてのプラットフォームで変更せずにコンパイルされるため、Lua のビルドは簡単です。Lua は C++ として変更せずにコンパイルすることもできます。以下に示す Lua ビルドの指示は、Linux や Mac OS X などの Unix 系プラットフォームを対象としています。 他のシステムの指示カスタマイズオプション も参照してください。

Lua を自分でコンパイルする時間や意欲がない場合は、 LuaBinaries からバイナリを取得してください。

Lua のビルド

一般的な Unix 系プラットフォームでは、「make」を実行するだけです。詳細は次のとおりです。

  1. ターミナルウィンドウを開き、最上位ディレクトリに移動します。最上位ディレクトリの名前は次のとおりです。lua-5.4.6。の中のMakefileは、ビルドプロセスとインストールプロセスの両方を制御します。

  2. make」を実行します。するとMakefileプラットフォームを推測し、Lua をビルドします。

  3. 推測が失敗した場合は、「make help」を実行してプラットフォームがリストされているかどうかを確認します。現在サポートされているプラットフォームは次のとおりです。

    guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris

    プラットフォームがリストされている場合は、「make xxx」を実行するだけです。xxx はプラットフォーム名です。

    プラットフォームがリストされていない場合は、最も近いプラットフォームか、posix、generic、c89(この順序)を試してください。

  4. コンパイルには数分しかかからず、次の3つのファイルがsrcディレクトリに生成されます。lua(インタープリター)、luac(コンパイラ)、liblua.a(ライブラリ)。

  5. Lua が正しくビルドされたことを確認するには、Lua のビルド後に 「make test」を実行します。するとインタープリターが実行され、そのバージョンが出力されます。

Linux を実行している場合は、「make linux-readline」を実行して、便利な行編集機能と履歴機能を備えたインタラクティブ Lua インタープリターをビルドしてみてください。コンパイルエラーが発生した場合は、readline開発パッケージ(おそらくその名前はlibreadline-devまたはreadline-devel)がインストールされていることを確認してください。その後リンクエラーが発生した場合は、「make linux-readline MYLIBS=-ltermcap」を試してください。

Lua のインストール

Lua のビルドが完了したら、システムの公式な場所にインストールすることができます。この場合は、「make install」を実行します。公式の場所とファイルのインストール方法はMakefileに定義されています。ファイルをインストールするには適切な権限が必要な場合があり、「sudo make install」を実行する必要がある場合があります。

Lua を1ステップでビルドしてインストールするには、「make all install」または「make xxx install」(xxx はプラットフォーム名)を実行します。

ビルド後、Lua をローカルにインストールするには、「make local」を実行します。すると、サブディレクトリがあるinstallディレクトリが作成されます。bin, include, lib, man, share、Lua を次に示す方法でインストールしてください。ローカルに Lua をインストールするが、他のディレクトリにインストールする場合には、「make install INSTALL_TOP=xxx」を実行します。xxx は選択したディレクトリです。インストールはsrcdocディレクトリで開始されるので、INSTALL_TOPが絶対パスでない場合は注意してください。

bin
lua luac
include
lua.h luaconf.h lualib.h lauxlib.h lua.hpp
lib
liblua.a
man/man1
lua.1 luac.1

これらは開発に必要な唯一のディレクトリです。Lua プログラムを実行するだけの場合、必要なのはbinman内のファイルだけです。includelib内のファイルは、C または C++ プログラムに Lua を埋め込むために必要です。

カスタマイズ

3 種類のことができるのは、ファイルを編集することによってカスタマイズします。

make を呼び出すときにコマンドラインで関連変数を設定できるので、実際には Makefile を編集する必要はありません。それにもかかわらず、変更内容を記録するために Makefile を編集して保存するのがおそらく最善です。

一方、一部の Lua 機能をカスタマイズする必要がある場合は、src/luaconf.hを編集して、Lua のビルドとインストールを行う必要があります。編集されたファイルはインストールされるファイルであり、一貫性を確保するためにビルドするすべての Lua クライアントによって使用されます。Lua ソースを編集することで、さらにカスタマイズできます。

他のシステムでの Lua のビルド

通常の Unix ツールを使用していない場合は、Lua のビルド手順は使用するコンパイラによって異なります。ライブラリ、インタープリタ、およびコンパイラをビルドするためのプロジェクト(またはコンパイラが使用するもの)を作成する必要があります。

ライブラリ
lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lcorolib.c ldblib.c liolib.c lmathlib.c loadlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c linit.c
インタープリタ
ライブラリ、lua.c
コンパイラ
ライブラリ、luac.c

独自プログラムで Lua をライブラリとして使用するには、コンパイラでライブラリを作成して使用する方法を知る必要があります。さらに、Lua の C ライブラリを動的にロードするには、動的ライブラリを作成する方法を知る必要があり、Lua API 関数がそれらの動的ライブラリからアクセスできるようにする必要があります。ただし、Lua ライブラリを各動的ライブラリにリンクしないでください。Unix の場合、Lua ライブラリをホストプログラムに静的にリンクして、そのシンボルを動的リンク用にエクスポートすることをお勧めします。src/MakefileLua インタープリタに対してこれを行います。Windows の場合、Lua ライブラリを DLL にすることをお勧めします。いずれの場合も、コンパイラ luac は静的にリンクされる必要があります。

上で説明したように、src/luaconf.hを編集して、Lua をビルドする前に一部の機能をカスタマイズできます。

Lua 5.3 以降の変更

以下に、Lua 5.4 で導入された主な変更を示します。 リファレンスマニュアル に、導入された 非互換性 がリストされています。

主な変更

ライセンス

[OSI 認定] Lua は MIT ライセンス の条項に基づいて配布されるフリーソフトウェアです。以下に再録しました。営利目的を含むあらゆる目的に使用できますが、当社に問い合わせる必要はなく、絶対に費用は発生しません。唯一の要件は、Lua を使用する場合、製品またはそのドキュメント内の適切な場所に著作権表示を含めて当社にクレジットを与えることです。詳細については こちら を参照してください。

Copyright © 1994–2023 Lua.org、PUC-Rio。

ここに記載する条件に従って、このソフトウェアとその関連ドキュメントファイル(「ソフトウェア」)のコピーを入手したすべての個人に、ソフトウェアを使用、複製、変更、マージ、パブリッシュ、配布、サブライセンス設定、および/またはソフトウェアのコピーを販売するための無制限の権利を提供し、またソフトウェアが提供されている個人にこれを行うことを許可します。

上記の著作権表示とこの許可表示は、ソフトウェアのコピーまたはその重要な部分のすべてに含める必要があります。

本ソフトウェアは、「現状のまま」提供され、商品性、特定の目的への適合性、非侵害性の保証を含む明示的または黙示的なあらゆる種類の保証はありません。著作者または著作権保有者は、契約、不法行為、またはその他の行為により、ソフトウェアの使用またはその他のソフトウェアの取り扱いから生じ、またはソフトウェアに関連して生じる一切の請求、損害、またはその他の責任について、いかなる場合も責任を負いません。