ИзданиС Π½Π° PyPy 7.2, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Python напишана Π²ΠΎ Python

Π€ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π° ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ 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

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€