The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз PyPy 7.3, реализации Python, написанной на языке Python

25.12.2019 11:04

Сформирован релиз проекта PyPy 7.3, в рамках которого развивается реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python). Выпуск подготовлен одновременно для веток 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 на языке Си (CPython). Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти - общее потребление памяти в сложных и длительно работающих процессах (например, при трансляции PyPy силами самого PyPy) превышает потребление CPython в полтора-два раза.

Из изменений в новом выпуске отмечается обновление модулей CFFI 1.13.1 (C Foreign Function Interface) и cppyy 1.10.6 с реализацией интерфейса для вызова функций, написанных на языках Си и C++ (CFFI рекомендован для взаимодействия с кодом на Си, а cppyy для кода на C++). В состав включена новая версия пакета pyrepl с интерактивной оболочкой REPL. Проведена оптимизация производительности кода, отвечающего за обработку строк и манипуляции с Unicode. Для платформы Windows добавлена поддержка кодирования и декодирования разных текстовых кодировок. Реализована поддержка OpenSSL 1.1 и TLS 1.3.

  1. Главная ссылка к новости (https://morepypy.blogspot.com/...)
  2. OpenNews: Выпуск языка программирования Python 3.8
  3. OpenNews: Python переходит на новый цикл формирования значительных выпусков
  4. OpenNews: Релиз 19.3.0 виртуальной машины GraalVM и реализаций Python, JavaScript, Ruby и R на её основе
  5. OpenNews: Релиз PyPy 7.2, реализации Python, написанной на языке Python
  6. OpenNews: Проект RustPython развивает реализацию интерпретатора Python на языке Rust
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/52089-pypy
Ключевые слова: pypy, python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:52, 25/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну ок.
     
     
  • 2.4, Аноним (4), 13:29, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Пипи это всегда хорошо. :)
     

  • 1.2, Аноним (2), 13:22, 25/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ждем реализацию brainfuck, написанную на языке brainfuck
     
     
  • 2.7, Аноним (7), 13:32, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Баян: https://github.com/canoon/bfbf/blob/master/bf.bf
     
     
  • 3.24, Урри (?), 22:45, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    слишком большой.

    Вот: http://www.hevanet.com/cristofd/brainfuck/dbfi.b

     

  • 1.3, АнонАнон (?), 13:23, 25/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А оно может собрать само себя?
     
     
  • 2.5, Аноним (-), 13:30, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но зачем?
     
     
  • 3.25, АнонАнон (?), 00:47, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чтобы потом собрать себя же
     
     
  • 4.30, funny.falcon (?), 06:38, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Может
     

  • 1.6, Skullnet (?), 13:30, 25/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    "Я использовал Pyton, чтобы написать Python."
     
     
  • 2.26, Аноним (26), 01:28, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так когда то и было, а Вы думаете на чем написан C/C++ компилятор?
     
     
  • 3.31, Аноним (31), 08:34, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Первая версия GCC была написана на Pascal.
     
     
  • 4.33, Аноним (33), 19:57, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А первая версия Pascal?

    // мне-то ответ известен, но комментаторам выше, видимо, нет

     

  • 1.8, Web бог (?), 13:36, 25/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Cython лучше если нужна скорость и питоний синтаксис, но пусть будет и pypy
     
     
  • 2.10, DerRoteBaron (ok), 14:01, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Cython, собирающий чистый питон в си, довольно плохо работает.
    Cython с собственным питоноподобным синтаксисом требует безумного изменения кода, что часто не вариант
     
     
  • 3.11, Web бог (?), 14:29, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Cython не требует изменения кода. Разве что использовать array вместо list, но cython код остаётся валидным python кодом.

    Все изменения вносятся, либо как комментарии

    # cython: cdivision=True

    и подобными, либо в отдельном файле (pxd)

    Если вообще ничего не делать,то верно что pypy будет быстрее чем Cython, но с грамотным pxd файлом и директивами компилятору в комментариях Cython всегда будет быстрее чем pypy.

     
     
  • 4.12, myhand (ok), 14:44, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Cython не требует изменения кода

    ...
    > либо в отдельном файле (pxd)

    Веб ма^Wбогам *.pxd Пушкин пишет?

     
     
  • 5.14, Web бог (?), 14:53, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Код нужно писать, да. Но оригинальный py файл остаётся, и так потом можно сравнить Cython, CPython и Pypy.

    Необязательно корёжить py файл вставляя cdef и прочее в него напрямую.

    Вот почитай если интересно: http://docs.cython.org/en/latest/src/tutorial/pure.html

     
     
  • 6.16, myhand (ok), 15:07, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Код нужно писать, да.
    > Cython не требует изменения кода.

    Магия!

    > Вот почитай если интересно

    Читали, вьюнош, читали.  Ты думал один такой умный?

    Только дяди умеют не только в чтение, но и в понимание прочитанного.  Вот же-ж, тебе
    написали ажно в туториале: "In pure mode, you are more or less restricted to code that can be expressed (or at least emulated) in Python, plus static type declarations. Anything beyond that can only be done in .pyx files with extended language syntax", "Using an augmenting .pxd allows to let the original .py file completely untouched. On the other hand, one needs to maintain both the .pxd and the .py to keep them in sync."

    Перевести?  Если в двух словах - это те же яйца, просто в профиль.  Во-первых, разносить pure-Python версию и Cython-правки можно только в самых простых случаях.  А во-вторых, даже это требует написания и поддержки спецефических кусков кода.

     
  • 4.15, анонимумуму (?), 14:54, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы cython-код работал действительно быстро, код всё-таки придётся поменять. И на выходе получится Си с питонятчим синтаксисом.
     
     
  • 5.27, Аноним (26), 01:30, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Что вы там такое пишиете все? Смотрел код Twisted и Sippy они прям ну совсем используються в нагрузках и ничего живы все.
     
     
  • 6.36, kai3341 (ok), 02:18, 28/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Закопайте twisted обратно, пожалуйста
     
  • 4.20, Аноним (20), 16:56, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Без изменения кода он даже с сегфолтом может упасть. Причем ты даже сходу не сможешь разобраться почему. Адаптированный под ситон код работает в целом неплохо, но было бы хорошо чтобы он все таки гарантировал безопасность например как го с растом.
     

  • 1.9, Аноним (9), 13:55, 25/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Рекурсия?
     
     
  • 2.17, Аноним (17), 15:46, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Рекурсия?

    хвостовая.

     
     
  • 3.28, Аноним (26), 01:31, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Носовая =)
     

  • 1.13, myhand (ok), 14:50, 25/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > при выполнении некоторых операций PyPy в несколько раз обгоняет классическую реализацию Python на языке Си (CPython)

    А при выполнении некоторых - в полтора-два раза отстает.  Причем если в CPython для той же целочисленной арифметики есть сторонние модули, то тут уже без вариантов.

     
     
  • 2.18, Аноним (-), 15:46, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >А при выполнении некоторых

    примеры?

     
     
  • 3.22, myhand (ok), 18:20, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Целочисленная арифметика.  Там где "хорошо", когда используются такие же как в CPython алгоритмы - раза в 1.5 помедленнее.

    Рациональные числа вообще фактически были нерабочими до самого недавнего времени, потому что gcd использовал алгоритм Евклида.

     
     
  • 4.34, 9178016954955949943948951962 (?), 22:24, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажи-ка нам о клёвых реализациях рациональных чисел, об альтернативных алгоритмах gcd и какой там еще булшит у тебя на уме.
     
     
  • 5.35, myhand (ok), 09:04, 27/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да пожалуйста:
    https://en.wikipedia.org/wiki/Greatest_common_divisor#Lehmer's_GCD_algorithm
     

  • 1.19, Аноним (19), 16:19, 25/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А сервер матрикса оно может запустить?
     
  • 1.21, Аноним (21), 18:06, 25/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это типа eval(input)?
     
     
  • 2.23, Аноним (23), 19:52, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это реализация на питоне другого фактически языка.
     
     
  • 3.29, Аноним (26), 01:32, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Та не того же самого, но другая реализация.
    Все равно что скомпилить clang-ом gcc ;)
     
     
  • 4.32, Аноним (32), 13:44, 26/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >скомпилить clang-ом gcc

    Я кстати так и делаю. Мне обещали поломанные атомики, но что-то всё работает. А ведь шлангом раст собирается. А раст уже нужен браузеру (браузер тоже gcc собран ибо нечего мне тут яблочевщину навязывать).

    И всё-таки, это не сравнимо наверно, cpython на си, а сабж на питоне и с житом. Питон без жита - numba с её кудами не считается, cython (как там успехи у pypy с ним?) её всё равно на порядки быстрее, а значит безальтернативен.

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру