Nightly Pyston
@Masahito
Py婚2014 version
お前 is 誰
• @Masahito
• 専門は効率的なファイル転送(P2P)
• Pythonは出荷物に含めたり、社内
Kittingとかで使ったり色々。Fabric
使ってるけどAnsibleに移行できるか
近頃調べてる。
• ScalaとJVMでご飯を食べています。
What is Pyston?
Pystonとは?
• Dropboxで作成しているPython2.7.x互換環境
• LLVMおよびLLVMのJIT(Just In Time)実行エンジンを使用して
構築されたPython実装。
• 現時点ではx86_64プラットフォームでのみ動作
PythonコードをLLVM IRに変換し、実行
実行時の流れ
インストール方法
• バイナリは提供されていません
• ビルド必要(https://github.com/dropbox/pyston/blob/master/
docs/INSTALLING.md)丁寧に書かれていて、この通りやればだい
たいうまく行く.(うまく行かないときは頑張ろう!
現状
• REPL内で改行を入力すると落ちます
• Pythonの基礎文法以外はほとんど実装されていません。実装されて
いない機能はつかうと落ちます。
• もちろんlambda ,リスト内包とかも動きません。
• 現状だとライブラリはほとんど実装されていません。いまのところ
time.timeくらいしか使えません
 速度比較
前提条件
• パフォーマンスチェックをしてみました。
• 比較するのは以下の様な感じです
!
• Python v2.7.3
• PyPy v2.2.1
• Pyston v0.1(2014/04/15)
再帰
再帰
繰り返し
再帰
まとめ: 今後に期待しよう
0.2以降
Missing large parts of the language
!
Exceptions (planned for 0.2)
Class inheritance (planned for 0.2)
Default arguments, keywords, starargs, kwargs (planned for 0.2)
Generators (planned for 0.2)
Integer promotion (planned for 0.2)
Threads
情報源
• [Introducing Pyston: an upcoming, JIT-based Python
implementation] https://tech.dropbox.com/2014/04/
introducing-pyston-an-upcoming-jit-based-python-
implementation/
• https://github.com/dropbox/pyston/blob/master/
README.md
• [Pyston0.1を動かしてみる] http://qiita.com/Masahito/items/
edd028ebc17c9e6b22b0
情報源
• [LLVM overview 20110122] http://www.slideshare.net/
nothingcosmos/llvm-overview-20110122
• [人間でもわかるLLVMバックエンド入門] https://
speakerdeck.com/kazegusuri/ren-jian-
demowakarullvmbatukuendoru-men

Pykonjp2014