Clover2開発日誌

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

Clover2のソースファイルコンパイル時にbcファイルの出力と実行時にbcファイルの実行が可能になりました。

Clover2のソースファイルコンパイル時にbcファイルの出力と実行時にbcファイルの実行が可能になりました。32bitでも動きます。

 

とりあえず、bit-compilerブランチにpushしています。masterへのマージはもう少し待ってください。bcファイルをコンパイル時にアセンブラにしてダイナミックライブラリを作り、実行時はbcファイルのコンパイル無しで動かしたいので。それがJITでは最速の方法でしょう。今のところ実行時のbcファイルのコンパイルが遅くて、JITは前より遅くなっています。

 

LLVMは前は4.0で開発していましたが、現在は3.8で開発しています。masterにマージしたら、その旨をwikiに書きたいと思います。

 

今日はまだ休みでまだ時間があるので、ダイナミックライブラリ化ができるかもしれません。llvm-asしてダイナミックライブラリを作り、load_class時にダイナミックライブラリを読み込むだけでいいので、簡単です。どれほどの速度が出るか、ワクワクします。それでClover2もネイティブコンパイラの仲間入りです。もしかしたらJava様より速いかも、、、。LLVMのおかげです。クリス・ラトナーさんに感謝です。彼はコンピュータの世界に革命を起こしました。

 

乱筆乱文失礼。1週間ほどバグに悩んでいて解決したので。ちょっと興奮気味です。

それでは、enjoy programing!