Upload
masahitojp
View
427
Download
1
Embed Size (px)
Citation preview
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