Clover2開発日誌

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

LLVM化もだいぶ慣れてきました。

TRY文に対応しました。とりあえず、制御構文は対応できました。

あとは順次VMにある命令の上から一つづつLLVMに対応してます。

夏の終わり頃には終わるのではと言ってましたが、もしかしたら、春の終わりにはLLVMでのJITに対応できるかもしれません。

LLVM化にもだいぶ慣れてきて、大抵のしたいことはソースコードからコピーアンドペーストするだけで、実現してしまってます。

関数化しればいいですが、LLVMのコードは関数にしづらいのでコピーアンドペーストすることが多いです。

速度の方はでの程度速くなるかは分かりません。あまり期待はしないでください。VMのスタックに直接値を入れる方式を取っているので、思ったよりは速度アップにはつながらないかもしれません。

LLVM用にスタックを作れば速度アップは望めますが、そこまではできなかったので。

まあ、ぼちぼちVMから命令をJITの方に移植して言います。