Посты с тэгом pypy


[Перевод] Почему существует так много Питонов?


Питон изумителен.

Удивительно, но это довольно неоднозначное заявление. Что я имею ввиду под “Питоном”? Может, абстрактный интерфейс Питона? Или CPython, распространенная реализация Питона (не путать с похожим по названию Cython)? Или я имею ввиду что-то совсем иное? Может, я косвенно ссылаюсь на Jython, или IronPython, или PyPy. Или может я отвлекся так сильно, что говорю о RPython или RubyPython (которые очень сильно отличаются).

Не смотря на схожесть в названиях указанных выше технологий, некоторые из них имеют совсем другие задачи (или, как минимум, работают совершенно иными способами)

При работе с Питоном я столкнулся с кучей таких технологий. Инструменты *ython. Но лишь недавно я уделил время, чтобы разобраться, что они собой представляют, как они работают и почему они (каждая по-своему) необходимы.

В этом посте я начну с нуля и пройдусь по разным реализациям Питона, а закончу по-дробным введением в PyPy, за которым, по моему мнению, буду


Вышла первая бета PyPy3 с поддержкой Python 3

Разработчики PyPy представили первую бету выходящего релиза PyPy3. Это первый релиз, в котором поддерживается Python 3 (3.2.3).

Загпрузить можно по ссылке. В бете есть несколько известных проблем, включая серьезную регрессию производительности (к примеру, пока что пишут, что выполнение одной и той же программы может быть в 37 раз медленнее, чем это было на PyPy 2.0.2). Проблемы обещают исправить к финальному релизу.

Доступны версии для x86, работающие под Linux 32/64, Mac OS X 64 и Windows 32; поддерживается и ARM с Linux 32 — ARMv6 (Raspberry Pi) и ARMv7 (Chromebook).

Источник: PyPy Status Blog


Python / Исследование производительности сервера SockJS

Доброе время суток!

Так уж сложилось, что я занимаюсь всякими разнообразными push технологиями с использованием Tornado. Чуть ранее описывал Tornadio2, серверную реализацию протокола socket.io поверх Tornado.

Теперь хочу представить похожий проект — sockjs-tornado.

Для тех кому не очень интересно, есть другая полезная информация: сравнительное нагрузочное тестирование PyPy 1.7 против CPython 2.6.6, sockjs-node и socket.io (оба на node.js 0.6.5). Все под катом :-)



Python / Релиз PyPy 1.6

Вышел релиз проекта PyPy 1.6, в рамках которого разрабатывается реализации языка Python, написанная на языке Python

P.S. Не могу оформить как топик-ссылку, пришлось так.



Python / Проект PyPy представил визуализатор процесса JIT-компиляции и обрисовал ситуацию, когда PyPy быстрее языка Си

Разработчики проекта PyPy, в рамках которого развивается реализация языка Python со статической типизацией, написанная на языке Python и активно использующая JIT-компиляцию, представили систему jitviewer. Jitviewer представляет собой инструментарий для визуализации процесса преобразования кода

P.S. Не могу оформить как топик-ссылку, пришлось так.



Python / [Перевод] Руководство: пишем интерпретатор на PyPy

Все исходные коды и примеры из этой статьи доступны здесь.

Когда я первый раз смотрел проект PyPy, мне потребовалось некоторое время, чтобы выяснить, что он из себя представляет. Он состоит из двух вещей:

— набор инструментов для написания интерпретаторов языков программирования;
— реализация Питона с применением этого набора инструментов.

Вероятно, большинство людей думает, что PyPy это только вторая часть, но это руководство не об интерпретаторе Питона. Оно о том, как написать интерпретатор своего языка.

Я взялся за это руководство для того, чтобы лучше понять как работает PyPy и что он из себя представляет. Предполагается, что вы очень мало знаете о PyPy, поэтому я начну с самого начала.



python standard libs for sculpt and pycow

Идея следующая — взять pypy, скомпилировать его с помощью pycow и посмотреть что получится. Результатом должен полный набор стандартных библиотек python которые можно будет запользовать как для sculpt так и для pycow .

Единственное что сдерживает — непонятка с алгоритмом работы import. В том плане что ни в sculpt, ни в pycow import не реализован вообще.

И это обоснованно — потому что действительно неочевидно — как организовывать import в удаленный клиент. Плодить кучу файлов и переспрашивать их с



jython: уже 2.2

Между тем Jython достиг реализации спецификации Python2.2 [>>>]. Пока что только бета, но we call it 'beta' cause it's much betta than nothing.

Собственно Jython это реализация языка Python для JVM. Идея кажется мне странной, но вот Microsoft поддерживает проект IronPython - реализацию питона для .NET.



jython: уже 2.2

Между тем Jython достиг реализации спецификации Python2.2 [>>>]. Пока что только бета, но we call it 'beta' cause it's much betta than nothing.

Собственно Jython это реализация языка Python для JVM. Идея кажется мне странной, но вот Microsoft поддерживает проект IronPython - реализацию питона для .NET.



Shed Skin: компилятор Python в C++

Да, вам не показалось. Это оптимизирующий компилятор Python -> C++ -> Бинарный код. Результаты работают очень быстро, но за все приходится платить - ShedSkin понимает только очень небольшой сабсет языка Python. Изменения в версии 0.0.20:

  • улучшена работа со списками и словарями
  • поправлена работа операций целочисленного деления (/, //, divmod, floordiv), так чтобы они работали по схеме CPython2.5
  • преобразование float в str аналогичное CPython
  • масса исправлений в коде самого компилятора
  • починена наконец то работа с self в статических методах.


Таким образом как вы понимаете работы еще вагон и маленькая тележка, но уже сейчас это очень полезный инструмент. [>>>]