Google、PythonコードをGo言語コードに変換して実行可能にする「Grumpy」を発表

 Googleは1月4日、PythonコードをGo言語に変換してコンパイルおよび実行するためのトランスコンパイラおよびランタイム開発プロジェクト「Grumpy」を発表した。実験的なプロジェクトという位置付けで、Python処理系を置き換えるだけで既存のPythonコードをそのまま実行できるものを目指すという。

 Grumpyは、YouTubeエンジニアが中心になって開発している実験的なツール群で、Pythonコードを変換してGoのランタイム環境上でシームレスに動かすことを目指しているという。

 プロジェクトチームによると、Google内では多数のPythonコードが動いており、たとえばYouTubeのフロントエンドはPython(CPython) 2.7を利用しているという。チームはランタイムを改善する作業を重ねてきたが、CPythonで並列的にワークロードを動かすという点で限界を感じていたと説明している。

 大規模な既存のPythonコードベースをサポートする必要があったことから、GrumpyはCpythonと高位の互換性を持つよう設計しているという。C拡張モジュールのサポートは行わず、既存のPython C拡張は利用できない代わりに、APIの設計を柔軟にできるとのこと。

 Grumpyはインタープリタではなく、PythonプログラムはGoプログラムとしてコンパイルされリンクされる。これによって静的なプログラム解析を利用してコンパイルレベルの最適化を加えたり、Pythonモジュールと同じようにGoパッケージをインポートできるという。

 GrumpyはプロジェクトのWebサイトより入手できる。ライセンスはApache License 2。

Grumpy
https://github.com/google/grumpy