« A&D UA-651BLE plus と MedM Blood Pressure Diary でGoogle Fitにデータ連携する | トップページ | Lua 5.4.6 for X68000 r2 について »

2023.09.16

Lua 5.4.6 for X68000 について

X68000Zがリリースされてから、X68000ZとXM6GtypeGを使って環境整備したりツール類を移植しようとしてうまくいかなかったりと楽しい日々を送っていますが、そんな中でうまくビルドできてまともに動かせたブツがありましたのでリリースすることにしました。

Lua 5.4.6 for X68000 r1

Luaというのはいわゆるスクリプト言語です。awkとかperlとかpythonとかrubyなんかの仲間になります。最初のバージョンのリリースは1993年ともう30年ぐらい前になります。

 

Luaが面白いのは、Luaの処理系をビルドすると、処理系自体がC言語用のライブラリの形でアウトプットされる点です。これをC言語で組んだプログラムにリンクすることでターゲットプログラムがLuaの処理系を内蔵する形になります。単独で動作するLuaインタプリタは、このライブラリにユーザーインターフェースとなるフロントエンドをくっつけただけって感じです。

 で、C言語側から適宜Lua側の処理を呼び出したり、さらにそこからC言語側で実装した処理を呼び出したりといったことができます。

 

こういった特徴を利用して、ゲーム業界などではC言語などでコアになるプログラムを組んで、速度はそれほど必要ないけれど細かく柔軟な調整を何度も行うような処理をLua側し、C側のコアプログラムは頻繁なビルドを行わずに済ませるといった使い方もされているようです。

 

X68000でお試しビルドするプログラムをいろいろ探している時に、「処理系が小さい」「移植性が高いコーディングになっている」と評判のLuaを見つけてビルドにチャレンジしてみたのですが、なるほど確かにX68000固有の変更はあまり加えずに済んだ印象があります。

そういえばgithubに置いたドキュメントに書き忘れたのですが、今回のX68000版は今時のLinuxなどでビルドする場合と比較して以下のような制約があります。

  • 今時のOSでビルドするとLuaの扱える整数データは64bit intだがX68000版は32bit intに制限される。
  • localeが機能しない。小数点をピリオドにするかカンマにするかぐらいしか影響しないと思いますが、、、
  • signal周りはビルドエラーが発生しないように辻褄を合わせているだけなので機能しない

とまあ制約はありますが特徴であるC言語との結合周りはちゃんと動いています。C側でX68000のグラフィックを描画するゲートウェイ処理を書いてLua側から呼び出すとかできます。

 

 ググると説明サイトもいろいろ出てきます。面白いですよ。

|

« A&D UA-651BLE plus と MedM Blood Pressure Diary でGoogle Fitにデータ連携する | トップページ | Lua 5.4.6 for X68000 r2 について »

コメント

コメントを書く



(ウェブ上には掲載しません)




« A&D UA-651BLE plus と MedM Blood Pressure Diary でGoogle Fitにデータ連携する | トップページ | Lua 5.4.6 for X68000 r2 について »