07 Feb '13, 5am

Rails Hub情報局: 本家の5倍速? Pythonで実装したRuby処理系の「Topaz」が登場

Rails Hub情報局: 本家の5倍速? Pythonで実装したRuby処理系の「Topaz」が登場

本家の5倍速? Pythonで実装したRuby処理系の「Topaz」が登場  日本時間だと2013年2月7日未明のことですが、「Topaz」(トパーズ)と名付けられたPythonで実装されたRubyのバージョン0.1がリリースされました(リリースに関するブログ 、プロジェクトのページ 、GitHubのリポジトリ )。Ruby処理系はC、Java(JVM)、Ruby、CLI、JavaScript、Smalltalkなどによる実装がありましたが、Pythonというのは、ちょっと驚きです。ただ、Pythonといっても、Python言語で書くのが主眼なのではなく、Pythonエコシステムで高速処理を目指して作られた「PyPy(パイパイ)」の成果物の上に実装したというのがTopazのようです。現在のところコード作者リスト に9人の名前が上がっていて、JRuby実装で知られるチャールズ・ナッター氏の名前も入っています。  Topazは正確にはPythonではなく、RPythonと呼ばれるPythonのサブセットの言語で書かれています。RPythonは2.7.3互換をなるべく保ちつつ、速度向上を目指した仕様・実装のようです。RPythonとPythonの互換性のページ によれば、Django、Flask、SQLAlchemyなども動くようで、サブセットといっても互換性は高そうです。  RPythonのRはRestricted(制約ありの)の意味で、Pythonを型推論による静的型付け言語のように扱うために作られたようです。RPythonで書かれたコードはCやJVM上のバイトコード、CILなどに変換でき、かつJITが効くので、RPythonは多くの場合、CPythonよりも高速だということです。以下、PyPyのマイクロベンチマークの表を1つ引用します。平均して5.6倍とあります。  つまり、RPythonを使って実装したTopazというRuby処理系もCRubyよりも速くなる可能性があるということかと思います。すでにあちこちで「全く科学的とは言いがたい」と...

Full article: http://el.jibun.atmarkit.co.jp/rails/2013/02/5-pythonruby...

Tweets