Changes of uim/2009/10/13/ffi between Epoch and 2009/10/13 00:23:54 JST
- + added lines
- - deleted lines
Return to the edit history
+ 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前提だし、ここまでくるとモジュール作ったほうがいい。まねしちゃだめ。