Clover2開発日誌

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

2017-08-01から1ヶ月間の記事一覧

JIT高速化第3弾。

とりあえず、出力するアセンブラの型が厳密になりました。 コンパイルに関してはb.clcのテストも通ってます。 後基礎ライブラリも正しいアセンブラを出力している様子です。 この後はコンパイルされたアセンブラのコードを読み込む部分になります。LLVMに付…

LLVM高速化第3弾

始めています。githubではブランチを切ったので、前の高速化を行ったときのコードは普通にgit clone https://github.com/ab25cq/clover2.gitでダウンロードできます。 第3弾ではコンパイル時にビットコードにコンパイルしています。この間のバグではバージ…

まだだ、まだ終わらんよ

現在更なるJITの高速化を目指してコーディング中です。 コンパイル時にLLVMのbitcodeにClover2のバイトコードをコンパイルしてしまおうという考え方です。 作業中のコードはgithubでブランチを作っています。bit-compilerがそのコードです。ただバグが出てい…

JITの高速化完成。

ついにJITが動きました。 --with-jit指定を付けるとJITが有効になります。まだ処理速度がどれくらい速くなったか試してませんが、とりあえず完成です。 あと--with-optimizeでセグメンテーション違反が出てましたが修正しています。 JIT付きの準現代風、コン…

JIT高速化の続き

現在./configure --with-jitは動きません。 とりあえず、b.clのテストは全部通ってます。後はmake testを全てJITで通せば、終わりです。 クロージャーのJIT化には苦労しました。バグにバグを重ねなんとか動くところまで辿り着きました。 一応b.clはmake test…

JIT高速化の続き

現在./configure --with-jitは動きません。 だいぶ大物バグを修正できました。一つのバグに2,3日はかかった気がします。かなりの数のバグが有りました。バグの修正にまたバグが有ったりして、かなり苦労しました。やっぱり調子が悪いときにはコーディング…