Scheme Compiler の勉強 (8) - define-primitive マクロ

  • 元のだと、 define-primitive なるマクロを定義している。ここが LLVM 用だともう変えざるを得ない。しょうがないのでいくつか定義しながらマクロも都合がいいように変更していこう。ここの大変さが、http://llvm.org/docs/FAQ.html#langirgen にあった、 "against: you'll have to re-engineer the LLVM IR object model and asm writer in your language" だと思う。Scheme のマクロが助けてくれると信じよう。今のところ define-syntax はとても書けるようになる自信がないので、gauche の define-macro で。
  • primitive を定義すると同時にちょっとしたデータ構造で、その名前と出力のための関数などを結びつけている様子。putprop/getprop なる手続きが出てきている(p.14)。が、SchemeCrossReference によればまたしても独自機能だ。Common Lisp から来たような機能?
  • なんだか急に作業しなくちゃいけない固まりが大きくなって、インクリメンタルじゃなくなってきたような気がする。先が見えていないときは少しずつやりたいなぁ。


続く。