>>833
ネタ:
ループや関数呼び出しの様な、普通の制御については完全にGCレス
にできる。なるべくセルを使わずスタックで扱う様に気を使う。
小さい数値を即値で表現する様にし、関数の引数をスタック上に作る。
末尾呼び出しのフレーム除去等を管理し、環境も最初はスタック上に
構築して、クロージャや継続フレームの生成段階で初めてヒープに移す。
このとき、スタック上の環境はヒープへのリンクに変更する。

これらはインタプリタのレベルででき、セルで状態構築する処理系
(mini-schemeやtiny-schemeなど)の5倍以上のスピードが出せる。
コード量もあまり変わらない。ただし実装は気を使うので少し難しい。
ついでに、インタプリタではマクロの展開が遅い要因の1つなので、
一度展開した結果をキャッシュすれば、最低限の構文だけ組み込み、
その他は全てマクロであっても、かなりの速度差がつく。
(素直に組めば、この時点でguileよりも速くなる)

gaucheの様な、evalでVMにコンパイルする系に対しては速度でまだ
負けるが、上の実装でコンパイラとVMを用意すればgaucheを超えて速くなり、
コード量、実行ファイルサイズはgaucheの何分の1かで済む。
GCレスにすると、実行時のnativeコードへの変換も楽になる。