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.

In Pocket speichern vorlesen Druckansicht 47 Kommentare lesen
Lesezeit: 2 Min.
Von
  • 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)