Clover2開発日誌

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

JIT

JIT駄目ですね。printfやprintlnさえ出来ません。3.5.0でなんとか安定させるので、待っててください。

JIT

JITのテストやっぱり全部通ってません。

あと、JIT時自動コンパイル機能がなんかおかしいんですかね。

しばらく、JITの安定化に向けて頑張ります。

version 3.3.1

version 3.3.1

メソッドの引数でboxingやunboxingが起こるようになりました。
Rangeクラスを作っています。StringクラスやBufferクラス、Listクラスなどで範囲を示す引数のメソッドを追加。
同一クラス内のフィールドがコマンド名より優先されない問題を修正。

 

とりあえず、使い勝手が上がってます。Rangeクラスの説明のwiki書いておきます。

verion 3.3.0

JITでバグが見つかりました。修正。JITでテストコードを全てネイティブで動かしました。JITは安定したと思います。

 

とりあえず、JIT爆速です。コンパイルはやや遅いですが、動いてしまえばネイティブコードで実行時にはコンパイルしていないので、凄まじい速度で動いています。

 

結構な頻度でコンパイルに失敗する、致命的なバグだったのでJITで動かしたい人はぜひともダウンロードしてください。

JITのネイティブコードでテストが全部動きました。

JITのネイティブコードでテストが全部動きました。

version 3.3.0

version 3.2.9

version 3.2.9

例外の起こったメソッドのソースコードと行番号が分かりやすくなりました。

version 3.2.9

version 3.2.9

クラスフィールドやクラスメソッドの検索ルーチンにバグが有りました。かなり致命的なバグでした。ダウンロードお願いします。