Projektveröffentlichung , im Rahmen dessen die Implementierungen der Programmiersprache Python entwickelt werden, die in Python geschrieben ist (ein statisch typisiertes Teilmenge wird verwendet , Restricted Python). Die Veröffentlichung wurde gleichzeitig für die Versionen PyPy2.7 und PyPy3.6 vorbereitet, die die Syntax von Python 2.7 und Python 3.6 unterstützen. Die Veröffentlichung ist für Linux (x86, x86_64, PPC64, s390x, Aarch64, ARMv6 oder ARMv7 mit VFPv3), macOS (x86_64), OpenBSD, FreeBSD und Windows (x86) verfügbar.
Ein besonderes Merkmal von PyPy ist die Verwendung eines JIT-Compilers, der zur Laufzeit einige Elemente in Maschinencode übersetzt, was eine hohe Leistung ermöglicht — bei der Ausführung bestimmter Operationen übertrifft PyPy die klassische Implementierung von Python in C (CPython) um ein Vielfaches. Der Preis für die hohe Leistung und den Einsatz von JIT-Compilierung ist ein höherer Speicherbedarf — der gesamte Speicherverbrauch in komplexen und langlaufenden Prozessen (zum Beispiel beim Übersetzen von PyPy selbst) überschreitet den Verbrauch von CPython um das eineinhalb- bis zweifache.
Die neue Version zeichnet sich durch die Stabilisierung der Unterstützung für Python 3.6 aus, die zuvor im Beta-Status war, sowie durch die Implementierung von JIT für die Architektur Aarch64 (ARM64). Außerdem wurde ein neuer JSON-Dekoder hinzugefügt, der deutlich schneller ist, weniger Speicher benötigt und für JIT optimiert wurde. Das CFFI-Modul 1.13 (C Foreign Function Interface) wurde aktualisiert, um eine Schnittstelle zum Aufrufen von Funktionen, die in C und C++ geschrieben sind, bereitzustellen. CFFI wird für die Interaktion mit C-Code empfohlen, während cppyy für C++-Code verwendet wird. In die PyPy2.7-Zweig wurde das _ssl-Modul basierend auf CFFI zurückportiert. Die Module _hashlib und _crypt wurden auf die Nutzung von CFFI umgestellt.
Quelle: opennet.ru
