uLua (REPL/インタプリタ/コンパイラ/リンカ 兼用) (utf8用)

概要

uLuaは当サイトの管理人がLua v5.3.4をカスタムしたものです。

特徴としては、

  • たった1つの実行ファイルで、

    1. 対話型コンソール (REPL)
    2. インタプリタ (スクリプトや中間バイトコードを実行する)
    3. コンパイラー (1つ、あるいは、複数のスクリプトを、1つの中間バイトコードに変換する)
    4. リンカ (スクリプトもしくは中間バイトコードをexeにする)
    を兼ね備えること。

  • 同様の用途で、文字列やファイルIO等の扱いをcp932(sjis)用に配慮したものは、hmLJとなります。

ダウンロード

更新日 2017/12/13
uLua.zip ver v5.340

コマンドライン系のカスタム項目

  • 対話型コンソールとしての実行

    (但し、このツールはcp932(sjis)用に特化されておらず、あくまでの本来のLuaそのままですので、
    コンソールへの日本語の表示には難があります。そういった用途には、hmLJ利用してください。)
        uLua.exe
        
  • スクリプトとしての実行

    (lua同じ引数が使えます)
        uLua.exe ****.lua (他の引数)
        
  • コンパイラとしての実行

    全ての引数の一番後ろに「-compile」と付けてください。
    (luacと同じ引数が使えます)
        uLua.exe -o ****.out *****.lua -compile
        
    出力ファイル名を指定しない場合、luac.out という名前でファイルが出力されます。
        uLua.exe *****.lua -compile
        
    コメント等を除去した状態で中間コードを生成する場合は、-sを付けます。
        uLua.exe -s -o ****.out *****.lua -compile
        
  • bin2cとしての実行

    中間コードを、C言語ソースへと貼り付け可能なソースコードとして出力します。
        uLua.exe *****.out -bin2c
        
  • リンカとしての実行

    全ての引数の一番後ろに「-link」と付けてください。
        uLua.exe ****.lua ****.exe -link
        
    もしくは、中間バイトコードをリンク
        uLua.exe ****.out ****.exe -link
        
  • 文字エンコード「utf8」のファイルで、
        for i, v in pairs({"表示", "ソート"}) do
            print(i, v)
        end
        
    というファイルをtest.luaというファイル名で用意。uLuaと同じディレクトリに保存します。

    コマンドプロンプトでuLuaのディレクトリまで移動した後、
        uLua.exe test.lua test.exe -link
        
    とすると、test.exeが出来上がります。

    このファイルは単体で実行可能であり、
    他のファイル等への依存はありません。

ライセンス

ソース

Githubにあがっています。

(※ Githubでリポジトリの「サブディレクトリ」だけをダウンロードする簡単な方法は、こちら)

補足

「LUA_COMPAT_5_2」のプリプロセッサマクロを有効にしてコンパイルされています。
又、Luaにとって準標準とも言えるlfsライブラリも追加されています。