テストが通るようになってきた- Scheme VM を書く

がんがんテスト通しまくる。
すごく根深いバグが3件。

  • コンパイラフロントエンドがオフセットの決まっていない LOCAL_JMP の変換に失敗してた。
  • display closure の引数の積む順序が間違っていた
  • free variable の積む順序が間違っていた

実装したインストラクション

  • APPLY2
  • NOT
  • NUMBER_GT, LT, LE
  • EQ
  • PAIR_P
  • SYMBOL_P

組み込み手続き

  • string-length
  • string->symbol
  • number->string


ついでに入力ポートの UTF-8 まわりも実装した。
0.0.1 用のテストケース 現時点で 180個(だいたい1/3)ほどのテストを通るようになった。
残るのは

  • なぞなバグもう1件
  • 組み込み手続きを淡々と実装
  • 正規表現