米Dropbox、LLVMベースのPython実装「Pyston」を開発

 米Dropboxは4月3日、オープンソースのPython実装「Pyston」を発表した。LLVMのJITエンジンを利用するPython実装で、より高いパフォーマンスを目指すという。

 PystonはLLVMおよびLLVMのJIT(Just In Time)実行エンジンを使用して構築されたPython実装。Python 2.7互換の実装で、現時点ではx86_64プラットフォームでのみ動作し、動作テストはUbuntuで行っているという。

 パースされたPythonコードをLLVMの中間表現(IR)に変換し、LLVMのオプティマイザを経てLLVM JITエンジンで実行可能なコードを生成する。LLVMには最適化パスなど最適化のための仕組みが多数含まれており、高速なコードを精製できるとしている。現時点での性能については「CPythonよりも上だがPyPyよりは劣る」と報告されている。

 DropboxではPythonを多用しているが、主に性能面での理由で別の言語で書き直すことがあったため、JITを利用した高速化を行っているJavaScriptから着想を得てPystonの開発に至ったという。PyPy、Jython、IronPythonなど既存プロジェクトとは異なる新しい実装を作成する理由については、「既存実装とは異なる技術が求められているため」と説明しており、「method-at-a-time JIT」と呼ばれる、中間コードを実行前にあらかじめコンパイルしておく手法や、既存のモジュールを効果的にサポートするための保守的なガベージコレクタなどを採用すると述べられている。

 Pystonはまだ早期段階にあり、まずは例外、クラスの継承、メタクラス、クロージャ、ジェネレータといった言語機能の実装を進める計画。ロードマップではその後、最適化としてカスタムLLVMコードジェネレータなど開発を進めるほか、拡張モジュールのサポートなどの作業を行うとしている。将来的にはPython 3との互換性やほかのプラットフォームへのサポート拡大を予定しているという。

 最初のリリースとなるPyston 0.1はプロジェクトページより入手できる。ライセンスはApache License 2.0。

Pyston
https://github.com/dropbox/pyston