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

2 августа 2013 года

Представлен релиз PyPy 2.1, реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython (Архивная копия от 7 июля 2007 на Wayback Machine), Restricted Python). Одновременно доступна для тестирования бета-версия PyPy3 2.1 с поддержкой Python 3. Версия PyPy 2.1 примечательная обеспечением официальной поддержки процессоров ARM в JIT-компиляторе. Кроме того, в код внесены очередные оптимизации - новый выпуск в среднем на 10% быстрее прошлой версии PyPy и в 6.12 раз быстрее классического CPython 2.7.3.

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

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

  • Полноценная поддержка генерации кода для архитектуры ARM в JIT-компиляторе. Поддерживаются системы на базе ARMv6 (Raspberry Pi) и ARMv7 (Beagleboard, Chromebook, Cubieboard и т.п.) в режимах ABI hard-float (armhf/gnueabihf) и soft-float (armel/gnueabi);
  • Поддержка Stacklet для ARM;
  • Реализация библиотек os.statvfs и os.fstatvfs для Unix-систем;
  • Увеличение производительности ведения лога;
  • Ускорение выполнения операций с множествами в объектах;
  • При формировании пакета обеспечена сборка расширения TK с использованием интерфейса CFFI;
  • Для Numpy улучшена поддержка массивов и dtype, добавлена поддержка субмассивов, проведена работа над ошибками;
  • Экспериментальная поддержка совместимости с Python 3 (CPython 3.2.3), реализованная в отдельной ветке PyPy3;

Основные особенности 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.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск PyPy 2.1, реализации Python, написанной на языке Python», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.