squirrel

たまにはプログラマっぽい話も。
私は今のライブラリでLuaを使ってたりします。
これは組み込み向けの軽量高速なスクリプト言語で、商用ゲームへの組み込み実績もあるそうです。


今のとこ気になる点はあっても、一通りクリアしたんでしばらくはこのまま行くつもりだったんですが、
Lua関連で検索してると、こんな話を発見。
空想具現化プログラミング [Lua] Squirrel :Luaの後継者?
squirrelなんていうスクリプト言語があるんですね。


なんかこの方の他の記事を見てると同じようなところで苦労してるんだなーと。
私が引っかかった点は4つ、
スタックベースのインターフェースがややこしい、クラスもどきの実装が面倒、
local宣言付け忘れて変数が衝突する、整数の精度が32ビットない。


結局全部どうにか解決したわけだけど、
squirrelがこれらの問題ないんならちょっと調べてみようかなと。
検索したら日本語のドキュメントあったし
http://muffin.cias.osakafu-u.ac.jp/~matumoto/cgi-bin/xt.cgi?prog/squirrel_lang


ちなみに、前述の問題の私なりの解決方法は、
インターフェースに関しては、独自のラッパー書いて解決
クラスもどきは、C++側のクラス構造にアクセスできるような__index,__newindexを書く
ローカル変数は、テーブルを駆使してクラス変数もどきが使えるような__index,__newindexを作る。
新規変数への書き込みがあった瞬間に、インスタンス固有のテーブルをつくり、変数はそこに書き込む
グローバル変数へは、Global.でアクセス
整数精度はあきらめましたが、幸い私のシステムは各種IDが24ビット精度なのでぎりぎりセーフ
てな感じで、Lua関連コード4000行ぐらい?


とまぁ、それだけのコード捨てる気もないんでしばらくはLuaのまんまだけど
しばらくはsquirrelの様子も追っかけてみよう