PyPy : l'interprète Python écrit en Python
Victor Stinner - Ptycon 2008
- Interprète Python écrit en Python
- 100% compatible Python 2.4
- Permet d'expérimenter des technologies
- Applications réelles 1,5 à 3x plus lente
- Étendre l'implémentation de Python
- Améliorer les performances
- Ajouter de l'expressivité
- Faciliter le portage
- Portabilité de code C
- psyco et stackless difficiles à maintenir
- Choix difficiles à changer (compteur de référence)
- Langage interprété :
- Script Python (.py) compilé en bytecode (.pyc)
- Traduit en code machine par l'interprète
- Jython
- IronPython
- Stackless
- psyco
- Noyau de PyPy écrit en RPython
- Sous-ensemble de Python
- Beaucoup de contraintes
$ pypy -o thunk >>> def f(): ... print 'computing...' ... return 6*7 ... >>> from __pypy__ import thunk
(...) >>> x = thunk(f) >>> x computing... 42 >>> x 42
- Observer les opérations faites sur un objet
- Remplacer les opération faites sur un objet
- Transparence réseau
- Chaque fonction est une coroutine
- Tasklet et channel
- Sérialiser une coroutine
- Cloner une coroutine
- Inlining des fonctions
- Suppression d'allocations mémoires
- Structures typées
- Ramasse-miettes
- Nombre entier (int)
- Chaîne de caractères (str)
- Avancés : C et LLVM
- Actifs : et JVM
- Expérimentaux : Javascript et Squeak
- En cours de développement
- Performances similaires à psyco
- Portage plus simple que psyco
- Environnement isolé pour exécuter du code
- Isolement des appels aux fonctions externes
- Pas de segfault possible
- Nombreux modules écrits avec API C Python
- Modules à réécrire avec ctypes
- Projets abandonné : programmation logique
- PyPy est publié sous licence MIT
- Projet développé sous forme de sprints
- http://codespeak.net/pypy - Site web
- http://morepypy.blogspot.com - Blog
- Salon IRC #pypy sur Freenode (irc.freenode.net)
- Photo du Manneken Pis de flickr.com sous licence Creative Commons
- Thème dessiné par Olivier Grisel