The OpenNET Project / Index page

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

Выпуск PyPy 2.3, реализации Python, написанной на языке Python

13.05.2014 11:03

Представлен релиз PyPy 2.3, реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python). Версия PyPy 2.3 примечательна переходом на использование в качестве целевой версии языка Python 2.7.6 (ранее поддерживалась 2.7.3). Кроме того, в код внесены очередные оптимизации - новый выпуск в среднем на 1.5% быстрее прошлой версии PyPy и в 6.3 раза быстрее классического CPython 2.7. Выпуск доступен для x86-систем Linux 32/64, Mac OS X 64 и Windows 32, а также для систем на базе архитектуры ARM (ARMv6 или ARMv7 с VFPv3).

Благодаря задействованию JIT-компилятора, на лету транслирующего некоторые элементы в машинный код, PyPy при выполнении некоторых операций в несколько раз обгоняет по производительности классическую реализацию Python на языке Си (CPython). Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти - общее потребление памяти в сложных и длительно работающих процессах (например, при трансляции PyPy силами самого PyPy) превышает потребление CPython в полтора-два раза.

Новшества, добавленные в PyPy 2.3:

  • Стандартные библиотеки Python обновлены с 2.7.3 до версии 2.7.6;
  • Добавлена поддержка платформы OpenBSD;
  • Улучшена работа модуля cffi с реализацией интерфейса для вызова функций, написанных на языке Си. CFFI расширен в направлении упрощения использования существующего кода на языке Си одновременно с PyPy и СPython. Упрощена трансляция для работы в PyPy таких пакетов, как криптографические модули, Pillow (форк Python Imaging Library), pygame-cffi;
  • Обеспечена возможность встраивания PyPy в приложения, например, для работы внутри uWSGI;
  • Проведена чистка кода, направленная на удаление устаревшего и неиспользуемого кода, а также на рефактринг значительных частей кодовой базы. Код RPython отделён от интерпретатора PyPy, что позволяет в будущем использовать RPython в других проектах;
  • Поддержка библиотека для выполнения научных расчётов NumPy разделена на две части: встроенный модуль _numpy и адаптированный для работы с PyPy форк NumPy;

Параллельно развиваются два экспериментальных проекта, наработки которых в скором времени войдут в состав основного дерева исходных текстов PyPy: Py3k - версия с поддержкой Python 3; STM (PyPy Software Transactional Memory) - вариант PyPt с поддержкой распараллеливания на многоядерных системах.

Основные особенности PyPy:

  • Поддержка бесстекового (Stackless) режима работы, позволяющего использовать модель actor (erlang-подобное программирование с массой микропотоков и отсыланием сигналов друг другу, но при этом (в отличии от erlang) всё происходит в одном физическом потоке ОС);
  • Реализация режима изолированного выполнения кода, к которому нет доверия. От sandbox в CPython данный режим отличается полной поддержкой всех возможностей языка без выделения unsafe-функций.
  • Автоматическая генерация и полная прозрачность встроенного JIT-компилятора;
  • PyPy успешно проходит стандартный тестовый пакет Python и поддерживает большинство из стандартных Python-модулей и фреймворков, таких как ctypes, django (с sqlite), twisted (без поддержки ssl), pylons, pyglet. PyPy может быть использован для бесшовной замены CPython 2.7;
  • Поддержка работы на архитектурах x86 (IA-32) , x86_64 и ARM. Ведется работа по адаптации для архитектуры PowerPC (PPC64), но она ещё не завершена;
  • На базе технологий PyPy созданы бэкенды для генерации в PyPy байткода для LLVM и виртуальных машин .NET/CLI и Java.
  • На базе PyPy ведется разработка реализаций на языке Python интерпретаторов Prolog, Smalltalk, Ruby, JavaScript, Io и Scheme.


  1. Главная ссылка к новости (http://morepypy.blogspot.ru/20...)
  2. OpenNews: Dropbox опубликовал Pyston, реализацию языка Python, базирующуюся на JIT
  3. OpenNews: Первый выпуск Topaz, высокопроизводительной реализации Ruby, написанной на языке Python
  4. OpenNews: Представлен pypy-stm, интерпретатор Python с поддержкой распараллеливания на многоядерных системах
  5. OpenNews: Релиз Python-компилятора Shed Skin 0.8
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/39759-pypy
Ключевые слова: pypy, python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (9) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.5, vitalif (ok), 13:11, 13/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    собирается он ржачно - в процессе сборки множество мандельброта в консоли рисует )))))
     
  • 1.6, Аноним (-), 13:39, 13/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > На базе PyPy ведется разработка реализаций на языке Python интерпретаторов Prolog, Smalltalk, Ruby, JavaScript, Io и Scheme.

    про пыхпых ещё забыли упомянуть: http://hippyvm.com/

     
  • 1.13, Аноним (-), 10:35, 14/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Давайте-давайте, сделаем реализацию JavaScript на PyPy, реализованном на Python... Еще реализуем Pithon в виртуальной машине реализованной на JavaScript, реализованной на PyPy, реализованной на Python. Сделаем рекурсию, нам же нехер делать больше. И пусть жрет терабайты оперативы, кого это волнует в наш век?
     
     
  • 2.15, Ононим (?), 11:32, 14/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А главное по тестам всё равно это будет быстрее нативных наработок гугла вопреки всему!
     
     
  • 3.16, Аноним (-), 14:45, 14/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А что, Гугл уже переманил индусов из мелкософта? Или сам открыл вербовочные центры в Индии? Вроде раньше у Гугла неплохие технологии получались.
     
     
  • 4.17, rob pike (?), 19:28, 14/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это которые взять Java и Linux и выпилить оттуда glibc?
     

  • 1.18, Softfire (?), 21:19, 14/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поддержка бесстекового (Stackless) режима работы, позволяющего использовать модель actor (erlang-подобное программирование с массой микропотоков и отсыланием сигналов друг другу, но при этом (в отличии от erlang) всё происходит в одном физическом потоке ОС);
    В эрланге тоже в одном потоке. Точнее уж наоборот, в РуРу "тоже", а в эрланге априори.
     
  • 1.19, Аноним (-), 15:00, 15/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    а в чем проблема реализовать python на сях, который жрет столько сколько и этот pypy, но при этом по скорости не уступает? расовая ненависть? Другими словами, зачем оно надо?
     
     
  • 2.21, softfire (?), 14:11, 16/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    И ведь действительно! Никаких проблем перед тобой не стоит для того, чтобы реализовать это на сях.
    Тем паче, ты еще и расовой ненависти не подвержен.
     

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



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

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