PyPy-Interpreter unterstützt Stackless Python
PyPy 2.0 unterstützt nun Stackless Python, eine bei der Abarbeitung des Bytecodes eigene Datenstrukturen verwendende Python-Implementierung.
- Alexander Neumann
Die PyPy-Entwickler haben die Version 2.0 ihres Python-Interpreters veröffentlicht. Das fast vollständig in Python geschriebene PyPy soll – obgleich nicht ganz kompatibel – als Ersatz für den in C entwickelten CPython-Interpreter dienen. Mit dem neuen Release unterstützt der Interpreter nun Stackless Python, eine bei der Abarbeitung des Bytecodes eigene Datenstrukturen verwendende Python-Implementierung, wodurch jetzt ein vollständiger Kontextwechsel etwa bei Nebenläufigkeit, Generatoren und Ko-Routinen möglich ist.
Die Stackless-Unterstützung umfasst außerdem greenlets, die Mikrothreads, sogenannte Tasklets, ausführen können. Tasklets laufen pseudoparallel (in der Regel in einem einzigen oder wenigen OS-Level-Threads) und lassen sich beim Datenaustausch über "Channels" synchronisieren. Mit den greenlets können Entwickler außerdem den Zeitpunkt der Codeausführung kontrollieren. Unter gewissen Bedingungen funktioniert durch die Stackless-Unterstützung auch die nebenläufige Netzwerkbibliothek gevent.
Als zweites größeres neues Feature machen die Entwickler die Integration von cffi 0.6 als neues PyPy-Modul aus. Mit dem Common Foreign Function Interface lässt sich C-Code aus einem Python-Programm heraus ausrufen. cffi gibt es auch für CPython, beide Versionen sollen kompatibel miteinander sein. Rückruffunktionen aus C-Programmen lassen sich des Weiteren nun "Just In Time" kompilieren, die Entwickler versprechen ein dadurch besseres Verhalten.
PyPy 2.0 läuft unter x86-Architekturen mit Linux 32/64, Mac OS X 64 oder Windows 32. Die Arbeit mit 64-bittigem Windows ist noch fehlerhaft, hier sind helfende Entwicklerhände willkommen. Die Unterstützung für ARM-Systeme hat seit kurzem Alpha-Status. Hier haben unter anderem Mitglieder der Raspberry Pi Foundation mitgewirkt.
Siehe dazu auch:
- Mike Müller; Moderne Programmierung und Himbeerkuchen; Unterwegs auf der PyCon 2013; Konferenzbericht auf heise Developer
(ane)