PyPy 6.0 setzt auf Performance und Kompatibilität

Der Python-Interpreter erscheint parallel für Python 2.7 und Python 3.5 und bringt unter anderem einen schnelleres cpyext-Modul. Außerdem arbeitet PyPy neuerdings mit einigen Modulen und Bibliotheken wie TkAgg und Pygame zusammen.

 –  0 Kommentare
PyPy 6.0 setzt auf Performance und Kompatibilität

Die Macher von PyPy haben Version 6.0 der CPython-Alternative veröffentlicht. Dabei handelt es sich um ein doppeltes Release, da es eine Variante für Python 2.7 und eine für Python 3.5 gibt, die aber im Wesentlichen auf dieselbe Codebasis aufsetzen und auf die jeweils unterschiedliche Syntax zugeschnitten sind.

Das Release bringt wohl eine deutlich schnelleres Kompatibilitätsschicht zur C-API in Form von cpyext. Ein separater Blogbeitrag erklärt, wie das Team sich auf die Performance konzentriert hat, nachdem der Fokus der ersten Entwicklungszeit vor allem auf möglichst große Kompatibilität ohne Rücksicht auf Geschwindigkeit lag. Laut dem Beitrag hat PyPy bei der Anbindung an C damit CPython überholt. Da mit der Optimierung eine Überarbeitung der Header-Dateien verbunden war, müssen alle c-Extension-Module neu kompiliert werden.

Der Garbage Collector von PyPy bietet neuerdings Hooks, mit denen Entwickler einen Einblick in seine Performance erhalten können. Außerdem spuckt der Parser umfassendere Meldungen bei Syntaxfehlern aus, um Python-Neulingen bessere Informationen bei Tippfehlern oder Auslassungen zu geben.

PyPy arbeitet nun mit dem Matplotlib-TkAgg-Backend, dem Paket für GObject-basierte Bibliotheken PyGObject und der Library zur Spieleentwicklung Pygame zusammen. Außerdem gibt es einige Modul-Updates: dffi (C Foreign Function Interface) ist in Version 1.11.5 und der Generator für Python-C++-Bindings cppyy in Version 0.6.0 enthalten.

Weitere Details lassen sich dem PyPy-Blog entnehmen. Die aktuellen Releases von PyPy2.7 und PyPy3.5 stehen auf der Downloadseite zum Herunterladen bereit. Die Windows-Variante von PyPy 3.5 enthält wohl noch einige Fehler beim Unicode-Handling und hat daher derzeit noch Betastatus. Derweil arbeitet das Team an einer PyPy-Implementierung für Python 3.6 und bittet die Community dabei um Unterstützung. (rme)