English / Japanese

dyncomp - Dynamic Compiler for Gauche

最終更新日: 2008年10月11日

dyncompとは

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を実行してください。

更新履歴

2008-10-11: バージョン0.2.0リリース
2008-7-12: バージョン0.1.2リリース
2008-7-6: バージョン0.1.1リリース
2008-6-22: バージョン0.1リリース


naoki at koguro dot net