pure Ruby な C コンパイラがあったらいいな
自作の拡張ライブラリを作ったのはいいけど、Windows 用バイナリを作ろうとして行き詰まる。Windows ではどうやってコンパイルすればいいのかわかんないし、そもそも Windows 用 Ruby からして種類がいくつかあって、どれをターゲットにしたらいいのかもわかんない。
で思ったのだが、どうせなら pure Ruby な C コンパイラがあれば、こんなことで悩まなくて済むんじゃなかろうか。そいつで Windows 用の拡張ライブラリどころか、Ruby 本体もコンパイルできれば、なんだかすごい世界が広がるように思う。ちょうど、C をなるべく排除しようとしてる Rubinius とまったく逆のアプローチ。
C のコンパイラを Ruby で作る場合、フロントエンドはまだいいとして、バックエンドが問題だよな。Pure Ruby なアセンブラを作らなきゃいけないけど、アセンブラよく知らんし。
ということを思って、tcc (tiny c compiler) のソースをダウンロードして眺めてみた。CPU は i386, ARM, x86-64 をサポートし、OS は Linux と Windows に対応していているけど、Mac OS X はサポートしてないようだ。tccはフロントエンドとバックエンドがきちんと分離されているみたいだし、このソースを読んで勉強すればいいのかな。
え、LLVM? そんな難しい話されても困る。