Clover2開発日誌

Clover2というJavaのように静的な型を持つRubyのようなコンパイラ+仮想マシンの開発日誌です。LLVMでJITもします。https://github.com/ab25cqにて開発しています。

JITでif文やwhile文に対応

とりあえずは動いてます。まだテストは不十分です。一応githubにはアップロードしておきました。break文とtry文がまだです。

それが終われば、一応制御構文はできあがります。

まあ、まだまだ道のりは長いです。ただ、一年間の時間をかけるつもりでしたが、思ったよりは早く出来上がりそうです。

夏が終わる頃には正式にJIT付きで使えるようになると思います。

LLVMの落とし穴というか、一つ気をつけないといけないのはブロックの最後はretかbrなどじゃないとだめってことです。新しくラベルを作りたいときはラベルを作る前にそのラベルにbrする命令を足すなどしないといけません。そうでないとSegmentation Faultが起こります。ちょっと不親切ですね。