このところ Ruby VM 用の JIT コンパイラが話題だったようですが、Ruby 用の JIT コンパイラを試作してみました。 ただし VM 用の JIT コンパイラではありません。 代わりに? OpenCL も利用できます(ただし macOS のみ)。 Ruby は埋め込み DSL (embedded DSL, eDSL) のホスト言語としてよく使われます。 今回試作した JIT コンパイラは、Ruby 向けに作った C 言語風の eDSL 用の JIT コンパイラです。 そういう DSL は、構文だけホスト言語である Ruby の構文を借りて、実行は自前の JIT コンパイラを使うので、我々はそのような DSL を 半パラサイト DSL (hemi-parasitic DSL) と呼んでいます。 なんのためのもの? この eDSL は、Ruby プログラムの中で、一部の計算処理を高