Skip to content

v1.3.2

Choose a tag to compare

@github-actions github-actions released this 27 Jun 08:32
· 14 commits to main since this release

v1.3.2 - Lua スクリプト for YMM4

ピクセル操作スクリプトの実行に使う高速ランタイム(LuaJIT)のプロセスが残留する
不具合を解消
したリリースです。YMM4 本体が異常終了・強制終了した場合でも、
ネイティブ実行用の luajit.exe が取り残されることはなくなりました。
あわせて、同梱ライブラリのライセンス表記を整備しました。


修正・改善

1. ネイティブ実行プロセスの残留を解消

これまで、ピクセル操作スクリプトを一度でも実行した後に YMM4 本体がクラッシュや
強制終了で落ちると、ネイティブ実行用の luajit.exe がプロセスとして残り続ける
ことがありました。本リリースでは、子プロセスを Windows のジョブオブジェクト
割り当て、本体プロセスの終了と同時に luajit.exe も終了するようにしました。

本体が正常終了したかクラッシュしたかにかかわらず、OS がジョブを閉じた時点で
ネイティブワーカーは確実に終了します。タスクマネージャーに luajit.exe
取り残されることはありません。スクリプトの実行結果や速度に変化はありません。

2. 同梱ライブラリのライセンスを整備

プラグインが同梱する LuaJITMoonSharp のライセンス全文を収録しました。
配布パッケージのルートに LICENSE フォルダーを設け、各ライセンスファイルを
配置しています。LuaJIT のライセンスには、LuaJIT 本体が内包する Lua 5.1/5.2 と
dlmalloc の権利表記も含まれます。


内部実装

  • 子プロセス起動時に、JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE を設定したプロセス
    単位のジョブオブジェクトへ luajit.exe を割り当てます。本体プロセスの終了で
    ジョブハンドルが閉じられると、ジョブ内の全プロセスがカーネルによって終了します。
  • 従来の正常終了時のシャットダウン処理はそのまま残しており、ジョブオブジェクトは
    異常終了時の安全網として機能します。
  • 収録した各ライセンスファイルは、配布元の原本から逐語的に取得しています。

同梱物

  • LICENSE フォルダーに LuaJIT.txt / Lua.txt / MoonSharp.txt を同梱し、
    リリースワークフローで配布パッケージへ自動的に含めます。
  • 高速ランタイム(luajit.exe / lua51.dll)と実行スクリプトは従来どおり、
    プラグイン本体と同じ native フォルダーに配置されます。