18
Nightly Pyston @Masahito Py婚2014 version

Pykonjp2014

Embed Size (px)

Citation preview

Page 1: Pykonjp2014

Nightly Pyston@Masahito

Py婚2014 version

Page 2: Pykonjp2014

お前 is 誰• @Masahito

• 専門は効率的なファイル転送(P2P)

• Pythonは出荷物に含めたり、社内Kittingとかで使ったり色々。Fabric使ってるけどAnsibleに移行できるか近頃調べてる。

• ScalaとJVMでご飯を食べています。

Page 3: Pykonjp2014

What is Pyston?

Page 4: Pykonjp2014

Pystonとは?

• Dropboxで作成しているPython2.7.x互換環境

• LLVMおよびLLVMのJIT(Just In Time)実行エンジンを使用して構築されたPython実装。

• 現時点ではx86_64プラットフォームでのみ動作

Page 5: Pykonjp2014

PythonコードをLLVM IRに変換し、実行

実行時の流れ

Page 6: Pykonjp2014

インストール方法• バイナリは提供されていません

• ビルド必要(https://github.com/dropbox/pyston/blob/master/docs/INSTALLING.md)丁寧に書かれていて、この通りやればだいたいうまく行く.(うまく行かないときは頑張ろう!

Page 7: Pykonjp2014
Page 8: Pykonjp2014

現状• REPL内で改行を入力すると落ちます

• Pythonの基礎文法以外はほとんど実装されていません。実装されていない機能はつかうと落ちます。

• もちろんlambda ,リスト内包とかも動きません。

• 現状だとライブラリはほとんど実装されていません。いまのところtime.timeくらいしか使えません

Page 9: Pykonjp2014

 速度比較

Page 10: Pykonjp2014

前提条件• パフォーマンスチェックをしてみました。

• 比較するのは以下の様な感じです

!

• Python v2.7.3

• PyPy v2.2.1

• Pyston v0.1(2014/04/15)

Page 11: Pykonjp2014

再帰

Page 12: Pykonjp2014

再帰

Page 13: Pykonjp2014

繰り返し

Page 14: Pykonjp2014

再帰

Page 15: Pykonjp2014

まとめ: 今後に期待しよう

Page 16: Pykonjp2014

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

Page 17: Pykonjp2014

情報源• [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

Page 18: Pykonjp2014

情報源

• [LLVM overview 20110122] http://www.slideshare.net/nothingcosmos/llvm-overview-20110122

• [人間でもわかるLLVMバックエンド入門] https://speakerdeck.com/kazegusuri/ren-jian-demowakarullvmbatukuendoru-men