Clover2開発日誌

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

JITのバグを修正。

if文とかfor文とかをネストすると落ちるバグを修正。

まだJITにはバグがあると思いますので、ぼちぼちデバッグしていきます。

しばらくはバグが有ることを許してください。

申し訳ないです。JITなしだと、とりあえず安定しているので

JIT無しで使っていただけるとありがたいです。

LLVMによるJITが完成しました。

ついにやりました。全VMの命令をJIT化しています。

処理速度はまだ測ってませんが、だいぶ速くなると思います。

良かったら、試してください。

今日は奥さんの料理で打ち上げします。楽しみです。

贅沢に本物のビール2本飲もうかな。明太子も出してもらおう。

フィナーレのBGMはThe beatlesの「Sgt. Pepper's Lonely Club Band」でした。

 

では。

いよいよJIT化のフィナーレです

LLVMによるJIT化があと少しで終わります。

膨大なキャスト命令をだいぶJIT化しました。

ほとんどvimのコピペとマクロで作ってます。うーむ、vimは便利。

後はアセンブラでキャストする部分だけですね。

終わったら、家族に言って、打ち上げしてもらいます。

まあ、別に家で贅沢に発泡酒2本で飲んででもいいですけど。

楽しみです。

ちょっと無理してキャストのJIT化を大幅に進めました。

お題のとおりです。ちょっと疲れました。

キャスト命令の全体の1/2くらい進めた感じです。

後はのんびり進めます。

問題は速度が出るかですねぇ。演算子以外アセンブラで書かずに

C関数を呼んでいるだけの部分が多いので速くなるか謎です。

後家のサーバーは速いので測定が難しいかも。誤差があるでしょうから。

JITのオーバーヘットを考えると遅くなる場合もあるでしょうね。

そのあたりjit指定をユーザーに慎重に付けてもらったらいいなと思ってます。

 

話は変わりますが、だいぶ暑くなってきましたね。

夏は短いのですぐ終わりそうですが。

そろそろ梅雨入りですか。あんまり嬉しくないですね。

本格的な夏が来たら皆さんも夏バテしてないように気をつけてくださいね。

僕も気をつけます。