しー言語たぶん最後
http://shinh.skr.jp/koneta/#shelang
思いの他がんばった。対応 OS が Linux, FreeBSD, Solaris, NetBSD, MacOSX, Windows 。
Winバイナリ入り。 ./she.exe test.she や ./she.exe test_sdl.exe などと。
たぶんいずれまとめるけど、前回 (http://d.hatena.ne.jp/shinichiro_h/20051103#1130952069) からの追加事項。
- Solaris は FreeBSD とほとんど同じ。 dlinfo も RTLD_SELF もある。
- 前回述べた通り、 NetBSD と MacOSX はシンボル一覧を取得するために !load の第二引数で関数一つの名前を dlsym のヒントとして必要がある。例: !load "libm.so" "sin"
- Windows は ldd 相当のやり方は教えていただきました (http://d.hatena.ne.jp/shinichiro_h/20051103#c1130979835) 。シンボル情報の無い DLL からのシンボル一覧を引っこ抜く方法がまだわかってない。libbfd に頼らずモジュールハンドルから抜く方法は Win32API にありそうだけど。あと WINE だとツラい。
- OpenBSD は dladdr も dlinfo も無い。キツい。 dlctl の実装待ち状態だと思う。
- 上記対応 OS 全てで libffi はキチンと動作した。素晴らしい。
追記: あ、 test.she って無編集じゃ Windows で動かない気がしてきた。少なくとも !load "m" "sin" はコメントアウトして下さい。