とりあえず日記

VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ(いまここ🍄)

秀丸エディタからclang-interpreterを呼び出してみた

先日作ったclang-interpreter秀丸エディタから呼び出してみた。
http://d.hatena.ne.jp/ohtorii/20110724/p1

clang-interpreterとは?

C/C++インタープリタです。
なんか凄そうですが、LLVM/Clangのサンプルを多少改造しただけのものです。

動作イメージ

標準出力を秀丸エディタのアウトプット枠へ表示しています。

printfとか


数学関数


パフォーマンス

clang-interpreterは内部でJITコンパイルしている(はず)のでそれなりに高速です。(VC2010でビルドしたバイナリと比べてたった7倍遅いだけです!!)

制限事項

  • STLのヘッダファイル(vector/string/deque/map/set...)とwindows.hはコンパイルできません。MSの独自拡張がありclang2.9ではビルドが通りません。(clang3.0に期待するしか・・・)
  • ユーザー定義のincludeパスは指定できません、、、そのうち何とかしたいなっと
  • 標準入出力(printf/fopen/fwrite...)は使用可能です。
  • VisualStudioのインクルードヘッダを参照します、VisualStudioをインストールしておいて下さい。
    • VisualStudio2008/VisualStudio2010で動作を確認しています、ヘッダファイルがあればいいので無料のExpress版でも大夫なはず。

まとめ

自分はC/C++で小さなテストルーチンを書くことが多いです、その試行錯誤を高頻度に行うことができるようになり個人的には満足しています。

アプリケーションをインタプリタで動かすことは目的にしていません、あくまでもコードの断片を動かすことだけが目的です。

コードを書いたその場で結果を確認でき、コードをファイルへ保存しなくても良いのがストレス無くて便利でした。

LLVMのWEBにコンパイルを行うサービスなどありますが、それはそれ、これはこれ、ということで。