#思ったより厄介だった。手こずっている。Schemeのdynamic handlerとCのstack unwindingとをちゃんと整合させるのが難しい。
#最近 lispコンパイラを作りはじめているのですが、やっと階乗が動くところまでたどりつけた。
##(fact 10)の計算結果。Gaucheのfixnumと同じで下2ビットがタグなので、(ash #x00dd7c01 -2) -> 3628800 です。
#FPGA上にLisp専用CPUを実装して、その上で動かしています。
#Kent Dybvig の Three Implementation Models for Scheme をベースにコンパイラを作っていて、あの論文に出てくる (refer-local 0) みたいなのが直接実行できます。
#直接といっても、あのVMの命令をごりごり Verilog で書くのはしんどいので、mipsを簡略化したCPUを作って、その上でマイクロコードとしてLisp用CPUを実装しています。
#まだ、コンパイラ自身をコンパイルすることができないので、REPLを実現するには先が長い...
#おおお.Lisp マシンキター
#いやマジで書きたい>Verilog リハビリ兼ねてw
#そしてtwitter経由でchaton読んだ気になってても内容はほとんど把握できてないという事実に改めてびっくりした今日この頃
#Xilinx派ですか。WebPack ISEとかなのかな開発環境。どれくらい様変わりしてるのかちょっと不安だったり。
#すげぇ。
#かこいい
#カッコいい!
#自作派の夢ですなあ。すばらしい。