JRuby Compiler is Complete

JRuby 的效能要往上衝了嗎?

今天看到 JRuby 作者的文章,大章是說他們已經完成了 JRuby 中針對 Ruby 1.8 的語法 JIT Compiler 的實作,也就是這些 ruby code 會在執行時產生對應用的 Java code ,然後讓 JVM 執行 compile 過後的 byte code,當然,這樣就完全可以利用 JVM 來最佳化了。不過目前還沒有釋出正式版本,要嚐鮮的人可以先用 svn 把 HEAD revision co 下來 build 吧~(預計 11 月要釋出的 JRuby 1.1 應該就會支援了)

另外,作者也提到了一些實作上的想法,因為 Ruby 1.8 本身還沒有很嚴格的 type checking 機制,所以目前產生對應的 Java code 時都是利用 java.lang.Object 來定義某參數、變數的 type,所以作者有提出一個方法來產生更合適的 Java code,比方說 ruby 的 class 寫成這樣:
[code lang="ruby"]
class MyClass
...
{String => [Integer, Array]}
def mymethod(num, ary); end
end
[/code]
用一個 hash block 來描述一個 method 的 return type 及 arguments types,如此便可以產生出像這樣的 Java code:
[code lang="java"]
public String mymethod(int num, List ary) {
...
}
[/code]
只不過這個方式還沒完全定案,但這樣的確比全部用 Object 硬幹要好得多了。

JRuby 真是太值得讓人期待了!