Pyston 2.0 will Python Beine machen
Kompatibel mit Python 3.8, aber eine bis zu 20 Prozent höhere Geschwindigkeit: So lautet das Versprechen der Runtime-Alternative Pyston – dank JIT-Kompilierung.
Das Entwicklerteam hinter der alternativen Python-Runtime Pyston hat überraschend Version 2.0 vorgelegt. Das ursprünglich auf Dropbox zurückgehende Open-Source-Projekt ist als Fork von CPython angelegt und baut wie PyPy auf Just-in-Time-Kompilierung (JIT). Das neue Release verspricht eine bis zu 20 Prozent höhere Geschwindigkeit im Vergleich zu CPython. Dazu haben die Macher unter anderen die bisherige Compilerinfrastruktur LLVM durch DynASM ersetzt.
Totgeglaubte leben länger
Seit vor gut drei Jahren Dropbox seine Unterstützung für die Weiterentwicklung von Pyston zurückgezogen hatte, lag die Zukunft des Projekts im Dunkeln. Mit einigen grundlegenden technischen Neuerungen soll die Python-Implementierung, die ein Teil des ursprünglichen Entwicklerteams rund um Kevin Modzelewski jetzt veröffentlicht hat, nun aber wieder für frischen Wind sorgen und CPython Konkurrenz machen. Anstelle der bisher eingesetzten LLVM JIT Engine nutzt Pyston 2.0 den Dynamic Assembler DynASM. Die unter MIT-Lizenz frei verfügbare Engine zum Erzeugen von Assembler ist zwar ursprünglich als Tool für LuaJIT entwickelt worden, soll nun aber auch Pyston – respektive Python – zu mehr Tempo verhelfen.
Darüber hinaus machen sich die Entwickler auch die wichtigsten Optimierungen von CPython zunutze, darunter beispielsweise Caching Attributes. Dank der vollumfänglichen Kompatibilität mit der C API von CPython soll Pyston auch gegenüber Runtimes wie PyPy punkten, die ebenfalls auf JIT-Kompilierung bauen. Der geringere Speicherbedarf verschaffe Pyston beispielsweise Performancevorteile im Hinblick auf Anwendungen für die weit verbreiteten Web-Frameworks Django und Flask.
Pyston ist Closed Source – zumindest vorläufig
Weitergehende Informationen zu Pyston 2.0 inklusive einiger Benchmark-Ergebnisse finden sich im Blogbeitrag zur Veröffentlichung des Release. Die Runtime steht ab sofort in vorgefertigten Packages für Ubuntu 18.04 und 20.04 x86_64 auf GitHub zur Verfügung. Weitere Betriebssysteme wollen die Entwickler auf Anfrage unterstützen. Anders als Pyston bis zur bisherigen Version 0.6.1 steht Release 2.0 nicht mehr quelloffen unter Apache-2.0-Lizenz zur Verfügung, sondern ist zumindest vorläufig Closed Source. Das Team rechtfertigt diese Einschränkung mit dem Verweis auf die hohen Kosten in der Compilerentwicklung und das Fehlen eines wohlwollenden Sponsors, wie es Dropbox in der Vergangenheit war. Ein endgültiges neues Geschäftsmodell müsse erst noch gefunden werden, betont Modzelewski in seiner Ankündigung.
(map)