• [^] # Re: un très bon exemple

    Posté par (site web personnel) . En réponse à la dépêche PyPy, le serpent qui se mord la queue, sort en version 0.99. Évalué à 5.

    Le premier gros apport, c'est facilité la maintenance/evolution de python. Python est codé en C, et l'ajout de fonctionnalités/evolutions commence à devenir un petit cauchemar dans certains cas.

    De par sa nature très modulaire, PyPy permet également des changements majeurs dans l'implémentation de Python. CPython utilise par exemple un ramasse miette à générations. C'est un choix, mais PyPy en permet d'autres, ce qui permet de comparer les performances et de choisir une alternative qui serait plus rapide dans un cas précis. D'ailleurs, PyPy a déjà des outils pour supprimer des malloc().

    La mémoire n'était qu'un exemple, mais la gestion des processus concurrents est également remise en question : thread, greenlets, proxy d'objet fonctionnant sur réseau, clonage de générateur... PyPy apporte encore une fois un air frais dans ce domaine.

    Et alors que CPython n'optimise peu ou pas, PyPy fait de l'inlining, a un annotateur de type, permet de compiler dans de nombreux langages, etc. Il offre la possibilité d'optimisations très complexes qui seraient impossibles avec CPython.