English / Japanese
最終更新日: 2008年10月11日
dyncompとはgauche.cgen.cise(S式で表現されたC)で関数を作るためのライブラリです。この関数はTiny C Compilerにより、ネイティブコードにコンパイルされてから動作するため、高速な関数を作成することが可能です。
(use dyncomp)
(define-cproc add (x::<int> y::<int>)
(let* ((z :: int))
(set! z (+ x y))
(return (SCM_MAKE_INT z))))
(define-cproc sub (x::<double> y::<double>)
(let* ((z :: double (- x y)))
(return (Scm_MakeFlonum z))))
(define-cproc print-number (x::<double>)
(printf "%f\n" x)
(return SCM_UNDEFINED))
(print (add 1 2))
(print-number (sub 3 2))
(print (map (clambda (x::<int>)
(return (SCM_MAKE_INT (+ x 1))))
'(1 2 3)))
dyncompを動作させるためにはGauche 0.8.14以降の環境が必要です。なお、動作確認は以下の環境で行いました。
MacOSX, Linux, FreeBSDではgauche-packageでインストールできます。
% gauche-package install --install-as=root dyncomp-0.2.0.tgz
Windowsでは、付属のbuild-dyncomp.cmdを実行してください。