Π€ΠΎΡΠΌΠΈΡΠ°Π½Π° ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ PyPy 7.2, Π²ΠΎ ΡΠΈΠΈ ΡΠ°ΠΌΠΊΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Python ΡΠ°Π·ΠΈΠΊΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ Python (ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ RPython, ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΠ°ΡΡΠΎΠ½). ΠΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΎ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ Π·Π° Π³ΡΠ°Π½ΠΊΠΈΡΠ΅ PyPy2.7 ΠΈ PyPy3.6, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Python 2.7 ΠΈ Python 3.6 ΡΠΈΠ½ΡΠ°ΠΊΡΠ°ΡΠ°. ΠΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΎ Π·Π° Linux (x86, x86_64, PPC64, s390x, Aarch64, ARMv6 ΠΈΠ»ΠΈ ARMv7 ΡΠΎ VFPv3), macOS (x86_64), OpenBSD, FreeBSD ΠΈ Windows (x86).
ΠΠΎΡΠ΅Π±Π½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° PyPy Π΅ ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° JIT ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅Ρ, ΠΊΠΎΡ ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π° Π½Π΅ΠΊΠΎΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π²ΠΎ ΠΌΠ°ΡΠΈΠ½ΡΠΊΠΈ ΠΊΠΎΠ΄ Π²ΠΎ Π»Π΅Ρ, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΡΠ΅ Π²ΠΈΡΠΎΠΊ Π½ΠΈΠ²ΠΎ Π½Π° ΠΈΠ·Π²Π΅Π΄Π±Π° - ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, PyPy Π΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΠ°ΡΠΈ ΠΏΠΎΠ±ΡΠ· ΠΎΠ΄ ΠΊΠ»Π°ΡΠΈΡΠ½Π°ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Python Π½Π° ΡΠ°Π·ΠΈΠΊΠΎΡ C (CPython). Π¦Π΅Π½Π°ΡΠ° Π½Π° Π²ΠΈΡΠΎΠΊΠΈΡΠ΅ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ ΠΈ ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ° Π΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° - Π²ΠΊΡΠΏΠ½Π°ΡΠ° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π²ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈ ΠΈ Π΄ΠΎΠ»Π³ΠΎΡΡΠ°ΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π° ΡΠ΅ ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π° PyPy ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ°ΠΌΠΈΠΎΡ PyPy) ΡΠ° Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ°ΡΠ° Π½Π° CPython Π·Π° Π΅Π΄Π΅Π½ ΠΈ ΠΏΠΎΠ» Π΄ΠΎ Π΄Π²Π° Π²ΡΠ΅ΠΌΠΈΡΠ°.
ΠΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²ΠΎ ΠΏΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° Python 3.6, ΠΊΠΎΡ ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎ Π±Π΅ΡΠ΅ Π²ΠΎ Π±Π΅ΡΠ° ΡΡΠ°ΡΡΡ, ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° JIT Π·Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Aarch64 (ARM64). ΠΠΎΠ΄Π°Π΄Π΅Π½ Π΅ ΠΈ Π½ΠΎΠ² JSON Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ ΠΊΠΎΡ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ±ΡΠ·, ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΈ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° JIT. ΠΠΎΠ΄ΡΠ»ΠΎΡ CFFI 1.13 (C Foreign Function Interface) Π΅ Π°ΠΆΡΡΠΈΡΠ°Π½ ΡΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ Π·Π° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ C ΠΈ C++. CFFI ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π° Π·Π° ΠΈΠ½ΡΠ΅ΡΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ° ΡΠΎ C ΠΊΠΎΠ΄, Π΄ΠΎΠ΄Π΅ΠΊΠ° cppyy ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π° Π·Π° ΠΈΠ½ΡΠ΅ΡΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ° ΡΠΎ C++ ΠΊΠΎΠ΄. ΠΠΎΠ΄ΡΠ»ΠΎΡ _ssl Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° CFFI Π΅ Π²ΡΠ°ΡΠ΅Π½ Π²ΠΎ Π³ΡΠ°Π½ΠΊΠ°ΡΠ° PyPy2.7. ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ _hashlib ΠΈ _crypt ΡΠ΅ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈ Π΄Π° ΠΊΠΎΡΠΈΡΡΠ°Ρ CFFI.
ΠΠ·Π²ΠΎΡ: opennet.ru