Релиз PyPy 1.3

PyPy это экспериментальная реализация Python на языке RPython — подмножестве языка Python. Особенностями проекта является наличие JIT компилятора и возможности оттранслировать код интерпретатора в С, .Net и Java версии.

Главное нововведение версии 1.3 — поддержка С расширений СPython. Расширения не являются бинарно-совместимыми, поэтому для использования из PyPy их придется пересобрать. Не удивляйтесь если ваше любимое расширение не соберется — поддержка cpyext находится в альфа стадии и существенная часть API CPython еще не реализована. В этом случае разработчики предлагают закатать рукава и реализовать их самостоятельно.

Кроме того в релиз вошли множественные улучшения jit компилятора, в частности серьезно увеличена скорость компиляции, багфиксы и проч.

Хотя проект еще далек от готовности, скорость развития продолжает радовать — особенно на фоне того, что об Unladen Swallow в последнее время мало слышно.

Подозреваю что в следующих релизах мы увидим 64-битную версию PyPy и поддержку jit для расширений С — как результат двух проектов которые реализуются в рамка GSoC в этом году.

Собственно новость
Страница для скачивания
+26
28 июня 2010, 15:24
7

комментарии (11)

0
bitfroster #
Да, API годное будет через пару лет, хотя радует, что PyPy развивается ;)
+2
synthesis #
об Unladen Swallow в последнее время мало слышно

Это не совсем верно.

Проект практически завершен. Но пятикратного увеличения, на которое расчитывали, добиться не смогли — только ~1.5. GIL тоже никуда не делся. Зато возросло потребление памяти и уменьшилась скорость запуска. Подробнее в презентации на PyCon2010.

Проект будет влит в CPython 3.3-3.4 (PEP). Сейчас доработка ведется в бранче py3k-jit.
0
letoosh #
Спасибо! Скажите, а появилась ли полноценная поддержка сокетов?
0
google_fan #
В каком смысле? ) PyPy — это полноценная реализация python 2.5. И поддержка сокетов там аналогичная. То что написано про API — это про внутреннее API, которое доступно из C расширений. Если вы про него, то черт его знает. Они пишут его с бешенной скоростью — на IRC товарищи в шутку вычисляли свой fps — количество реализуемых функций в секунду. )
0
letoosh #
Возможно я что-то упустил, но примерно 4 месяца назад я пробовал собрать виртуальную машину с PyPy sandboxed, и в результате обнаружил что _sockets внутри PyPy выбрасывал NotImplementedError на некоторые функции. Мне для проекта требовалась полная поддержка сокетов, так что от PyPy пришлось отказаться. Хотя, возможно, это была специфичная для sandbox проблема, я сейчас уже не помню.
–1
Rzhepish #
реализация Python на языке RPython

Так и начинаются Skynet-ы.
0
qmax #
а нафига им там расширения cpython?
концепт же вроде другой совсем…
0
google_fan #
Ну а кто будет использовать реализацию питона без библиотек? Для всяких IronPython и Jython есть вариант использования соответвенно .net и java библиотек, а pypy и unladen swallow cделали поддержку cpython'овских расширений.
А в чем принципиальное отличие концепта?
0
qmax #
если считать библиотеки расширениями — то это уже не совсем питон на питоне.
если считать бабилиотеки частью питона — то это уже питон не совсем на питоне.
+1
google_fan #
речь идет о всяких внешних библиотеках типа psycopg, mysqldb, pycrypto и проч.

Вы как-то зациклились на концепции «питон на питоне». Идея в том, что реализация пишется на языке высокого уровня, не вдаваясь в подробности платформ (в данном случае RPython). После чего запускается транслятор, который переводит код на RPython в код на языке низкого уровня — С ( ну или CLI, java...). После этого эти исходники на С собираются и получаются бинарники которые вы скачиваете на сайте pypy.org.
Почему к этой штуке нельзя открыть API? Почему его нельзя сделать похожим на API СPython? Бонусом является то, что будут работать расширения CPython.
0
qmax #
ну вот я какраз и недопонимал концепт.
спасибо за пояснения.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.