LLVM hackathon

http://atnd.org/events/4295

書いたのだけどはるの忘れてた。行ってきた。 tanakh さん主催ごくろうさまでした。

現状ではイマイチ使い道が…みたいな雰囲気は以前見た時からあまり変わってないかなぁと感じた。でもなんか前見た時よりは bit code の instruction とか充実してるような気もする。いやでも昔見た時のこととかあんま覚えてないんだけど。

さて、イマイチ使い道が…と言いつつもたぶん挙げて行くと結構ある。雑なメモ

  • ラクにコンパイラ書きたい
    • これは C 吐いて GCC に喰わせりゃいいじゃんという反論があったんだけど、 tanakh さん曰く C 的な実行モデルじゃない言語は C だとキツいんやとのこと。たしかにそんなもんかも
  • ラクに JIT したい
    • 理解はできるんだけどなあ。 TCC でもいい局面が多そうなのと、
    • 実用面での疑問: JIT したいってことは速くしたいんだよねスクリプト言語を本当に速くしたいのかい…?
    • 趣味面での疑問: JIT したいってことは最適化の喜びを味わいたいんだよねなんで自分で全部やりたくならないの…?
  • 部分適用
    • まぁあまり多くないんじゃないかという気もしてるんだけど、ハマる用途ではいいんじゃないかと思う
    • C 吐くのでだいたいいいんじゃないかなぁという気もしてしまう
  • 融合
  • 事前/事後処理
    • フロントエンドでなんかメタデータ入れておいて、 LLVM の bitcode に落ちた時にそのメタデータ使って細工するとかは面白いと思う
    • 例えば全ての代入をフックしておいてライトバリアを外部から注入するとかそういう
  • 研究用途
    • 最適化のパスを追加したりとかはしやすいだろうと思う

とか考えつつもやってたのは単に Clang のコードを色々見てただけだった。 GCC より読みやすい C++ コンパイラが出てきた、ってのはありがたいことなんじゃないかなーとか思うんですよね。やまぁ別に DMD とかでもいいんだけど。

で、とりあえずバグ一個潰してみたのでパッチほってみた。でもあってるかは全くわからない。

http://llvm.org/bugs/show_bug.cgi?id=6564

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h