Unladen Swallow est officiellement mort maintenant. Reid Kleickner, un développeur stagiaire chez Google qui travaillait sur le projet explique dans une entrée de blog les raisons de l'abandon du projet: http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html .
En gros:
LLVM s'est avéré décevant pour l'optimisation de langages dynamiques. Les développeurs ont rencontré beaucoup de bugs qu'ils ont du corriger eux-même, d'où une perte de temps considérable sur le coeur du projet.
les projets qui sont sensibles à la performance chez Google sont finalement peu développés en Python. En dehors du module Pickle, les développeurs Google s'en sortent très bien avec le Python officiel.
Google est encore en Python 2.5 alors que Unladen Swallow est parti sur Python 2.6 . Du coup les projets Google ne peuvent pas bénéficier du JIT sans un effort de portage.
Au début de Unladen Swallow, PyPy était encore moyen en performance et ne gérait pas du tout les extensions en C ou la génération de code 64 bits, d'où un intérêt certain pour Uladen Swallow. Ce n'est plus le cas aujourd'hui.
Reid Kleickner a essayé de travailler sur Unladen Swallow dans le cadre de sa thèse mais on lui a dit poliment qu'il n'y avait là aucun sujet de recherche : les techniques de JIT font partie de l'état de l'art.
Au final, ce qui reste de Unladen Swallow:
- pas mal d'optimisations sur le module Pickle
- quelques optimisations de ci de là dans Python
- une super suite de benchmark contenant les projets majeurs en Python (twisted, django, ...) permettant d'évaluer les performance de Python sur des projets réels
- une interface de débuggage pour gdb permettant de suivre le code JIT de LLVM
La suite de benchmark de Unladen Swallow a été reprise par PyPy et sert de référence pour http://speed.pypy.org . Elle sera aussi bientôt reprise officiellement par CPython pour comparer toutes les version de Python (CPython, PyPy, Jython, IronPython, WPython, ...). Son seul inconvénient est qu'elle ne supporte que Python 2 pour l'instant (parce que les projets utilisés pour les benchmarks sont encore en Python 2).
# L'hirondelle est morte...
Posté par Philippe F (site web personnel) . En réponse à la dépêche Entretien avec les développeurs Python francophones. Évalué à 10.
Unladen Swallow est officiellement mort maintenant. Reid Kleickner, un développeur stagiaire chez Google qui travaillait sur le projet explique dans une entrée de blog les raisons de l'abandon du projet: http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html .
En gros:
LLVM s'est avéré décevant pour l'optimisation de langages dynamiques. Les développeurs ont rencontré beaucoup de bugs qu'ils ont du corriger eux-même, d'où une perte de temps considérable sur le coeur du projet.
les projets qui sont sensibles à la performance chez Google sont finalement peu développés en Python. En dehors du module Pickle, les développeurs Google s'en sortent très bien avec le Python officiel.
Google est encore en Python 2.5 alors que Unladen Swallow est parti sur Python 2.6 . Du coup les projets Google ne peuvent pas bénéficier du JIT sans un effort de portage.
Au début de Unladen Swallow, PyPy était encore moyen en performance et ne gérait pas du tout les extensions en C ou la génération de code 64 bits, d'où un intérêt certain pour Uladen Swallow. Ce n'est plus le cas aujourd'hui.
Reid Kleickner a essayé de travailler sur Unladen Swallow dans le cadre de sa thèse mais on lui a dit poliment qu'il n'y avait là aucun sujet de recherche : les techniques de JIT font partie de l'état de l'art.
Au final, ce qui reste de Unladen Swallow: - pas mal d'optimisations sur le module Pickle - quelques optimisations de ci de là dans Python - une super suite de benchmark contenant les projets majeurs en Python (twisted, django, ...) permettant d'évaluer les performance de Python sur des projets réels - une interface de débuggage pour gdb permettant de suivre le code JIT de LLVM
La suite de benchmark de Unladen Swallow a été reprise par PyPy et sert de référence pour http://speed.pypy.org . Elle sera aussi bientôt reprise officiellement par CPython pour comparer toutes les version de Python (CPython, PyPy, Jython, IronPython, WPython, ...). Son seul inconvénient est qu'elle ne supporte que Python 2 pour l'instant (parce que les projets utilisés pour les benchmarks sont encore en Python 2).