Clover2開発日誌

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

JITのデバッグが終了しました。

JITデバッグが終了しました。バグは多分無いと思います。

デバッグに2週間、作成に2ヶ月半くらいなので、3ヶ月でLLVMでのJITが成功しました。思ったよりは時間がかからなかったですね。

LLVMに関してはまだまだ発展中なので、なかなか使いこなすのが難しかったですが、なんとか、リリースにたどり着けました。

パソコンのしすぎで、奥さんに怒られたりしましたが、なんとかバグもなくなり、ほっとしてます。

しかし、残念なことにJITすると逆に速度がおちます。正直に言っておきますが。最適化のフェーズのうち、一つだけ有効にするとバグが発生するため、外してあるのです。そのせいかなと思います。多分それが重要な最適化で、速度に関係があるのではないかと思っています。

それを有効にしたり、もしくはJITではなく、コンパイルタイムにコンパイルしてしまう方法を考えたりしています。やっぱり実行時にコンパイルするのが遅いと思われるので。

まあ、僕ももうそろそろノラプログラマーとして趣味でコーディングするのも終わらせようと考えているので、速度の問題を解決できたら、ノラプログラマーを引退すると思います。

僕は仕事は介護士をしていて、趣味でプログラミングしています。40歳にも近くなり、結婚もして、だいぶ余暇にプログラミングするのは無理が来ています。仕事してのプログラミングをしたい気もあるのですが、どうしようか、迷っています。介護士としても10年近く仕事をしているので、今更プログラマーになっても使い物になるか分かりませんし。とりあえず、趣味としてのプログラミングはやりきった感じがあります。後はちょくちょくClover2の速度の問題や拡張ライブラリを作成を可能にしたりSocketクラスを作ったりすると思います。やりきった感があるので、もう弱火でちょくちょく改良する程度ですね。しかし、JITを有効にすると遅くなるとは。コンパイルが遅いのかなぁ、、、、モジュールをメソッドごとに何回も登録しているのが遅いんだろうか。はぁ、、、まあ、また解決できればいいなと思います。

 

ではでは。フィナーレのBGMは無音でした。今日もビール2杯飲んで打ち上げします。JITを有効にしたmake testが全部動いたときはほんと嬉しかったです。それでは。