Clover2開発日誌

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

version 3.0.6 リリース 2017/11/12

メソッドブロック関連のメモリのバグを修正しています。稀にセグメンテーション違反が起きる致命的なバグなのでダウンロードをお願います。
JITでメソッドのreturn文の省略が可能になりました。
これで知っているバグは全部修正できました。3.0.6を安定版とします。

 

メモリのバグはrealloc関連でした。allocしたメモリのオフセットをローカル変数に保持していて、reallocが起こる関数を呼び出した後に、そのローカル変数のメモリがおかしくなるというものでした。reallocは稀にしか起こらないので発見しづらいってやつですね。このバグはもう3,4回経験しているので、慣れたもんです。reallocは色々と危険ですね。まあ、知ってれば、怖くはないですけどね、、、。

 

とりあえず、知っているバグは全部修正しました。3.0.6を安定版とします。Kotlinのis演算子は入れたいと思ってます。後はちまちまKotlinの機能を実装していきます。