現在のバージョンとの差分を見る
編集履歴ページに戻る
uimのschemeから共有ライブラリにアクセスするには、
モジュールを作って(module-load)する、という方法が用意されているのだけど、
そもそも共有ライブラリを作成できる言語処理系でないとモジュールを作成できないし、ちょっとライブラリを試したいだけなのにファイルを作るのはめんどう。
ということで、uim-trunkにlibffiにアクセスするモジュールを投入した。
--with-ffiを有効にしたuimをインストールして、
uim-shから、
{{{
uim> (module-load "ffi")
uim> (define libm
(dlopen "libm.so" (assq-cdr '$RTLD_LAZY (dlopen-mode))))
uim> (define atan (dlsym libm "atan"))
uim> (ffi-call 'double atan '((double . "1.0"))) ;; => pi/4
uim> (dlclose libm)
}}}
とかできる。
- 無茶な例: [[gist:207980]] リトルエンディアン32bit前提だし、ここまでくるとモジュール作ったほうがいい。まねしちゃだめ。