Projekt-Releases , innerhalb dessen die Implementierungen der Programmiersprache Python, geschrieben in Python (ein statisch typisiertes Teilmengen verwendet werden , 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 Version 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 bestimmte Elemente direkt in Maschinencode übersetzt, was einen Hochleistungsgrad 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 hohe Leistung und die Nutzung des JIT-Compilers ist ein höherer Speicherverbrauch — der gesamte Speicherverbrauch in komplexen und lang laufenden Prozessen (z. B. bei der Übersetzung von PyPy durch PyPy selbst) übersteigt den Verbrauch von CPython um anderthalb- bis doppelt so viel.
Die neue Version zeichnet sich durch die Stabilisierung der Unterstützung für Python 3.6 aus, die zuvor als Beta-Version galt, sowie durch die Implementierung eines JIT-Compilers für die Architektur Aarch64 (ARM64). Außerdem wurde ein neuer JSON-Dekodierer hinzugefügt, der erheblich schneller ist, weniger Speicher benötigt und für JIT optimiert ist. Das CFFI-Modul 1.13 (C Foreign Function Interface) wurde aktualisiert und ermöglicht das Aufrufen von Funktionen, die in C und C++ geschrieben wurden. 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 auf Basis von CFFI zurückportiert. Die Module _hashlib und _crypt wurden auf die Verwendung von CFFI umgestellt.
Quelle: opennet.ru
