LINUX.ORG.RU

Вышел PyPy 2.0

 , ,


0

6

9 мая вышла версия PyPy 2.0 с кодовым названием «Einstein Sandwich». PyPy — интерпретатор языка Python со встроенным tracing JIT. Основными изменениями по сравнению с PyPy 1.9 являются:

Планируется, что версия 2.0 послужит стабильной базой для более частых релизов (вероятно, для создания действительно быстрых интерпретаторов Ruby и PHP).

Не вошли в официальный анонс, но тоже немаловажны:

И, наконец (я знал, что вы спросите): работа по распараллеливанию PyPy ведется не слишком активно, но есть ветка STM.

Cравнение скорости PyPy и CPython на синтетических бенчмарках

>>> Подробности

★★★★★

Проверено: DoctorSinus ()
Последнее исправление: unfo (всего исправлений: 7)

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

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Смотря что понимать под «указать тип», но, в общем, да. Но, как говорят аффторы, RPython - это не язык программирования общего назначения.

tailgunner ★★★★★
() автор топика
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от provaton

2.0? Он же только вчера вышел. А вообще PyPy - да, кто-то пользуется: quora.com, из местных - archimag; в девелоперском списке рассылки периодически появляются личности с pypy в продакшене.

tailgunner ★★★★★
() автор топика
Ответ на: комментарий от true_admin

pypy становится платформой как ява и jvm. Ну или дотнет.

А на основе чего ты делаешь такой вывод? Когда-то чем-то таким хотел стать проект Parrot.

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

А на основе чего ты делаешь такой вывод?

Того, что для PyPy пишутся интерпретатор Ruby, PHP и Clojure, тебе мало?

Когда-то чем-то таким хотел стать проект Parrot.

PyPy не собирался и не собирается становиться чем-то таким. Если станет, это будет просто побочным эффектом.

tailgunner ★★★★★
() автор топика
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Того, что для PyPy пишутся интерпретатор Ruby, PHP и Clojure, тебе мало?

Мне не мало, просто интересуюсь, присматриваюсь к pypy для приближающегося продакшна.

alienclaster ★★★
()
Ответ на: комментарий от tailgunner

Платформой в смысле JVM - нет, платформой в смысле LLVM - да.

Разница в чем? Кроме очевидной поддержки конкретной корпорацией.

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

В данном случае это непринципиальная разница.

В каком «данном»? Из 4-х известных мне интепретаторов на базе PyPy только 1 использует байт-код Python, 3 остальных - это интерпретаторы совершенно независимых языков, которые просто используют компоненты тулчейна, разработанные PyPy. Если для тебя эта разница не принципиальна, интересно, что такое принципиальная разница.

tailgunner ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

В каком «данном»?

В контексте вопроса. Может я не совсем ясно выразился...

Если для тебя эта разница не принципиальна, интересно, что такое принципиальная разница.

Я думал ты назовешь какие-то серьезные инфраструктурные различия. Чем llvm отличается от jvm в общем-то же понятно.

alienclaster ★★★
()
Ответ на: комментарий от tailgunner

4-х известных мне интепретаторов на базе PyPy только 1 использует байт-код Python, 3 остальных - это интерпретаторы совершенно независимых языков

байткод jvm тоже весьма условно «байткод джавы».

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

Я думал ты назовешь какие-то серьезные инфраструктурные различия

Мне уже интересно - что такое «серьезные инфраструктурные различия», можно пример?

Чем llvm отличается от jvm в общем-то же понятно.

Ага, корпорациями.

tailgunner ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Мне уже интересно - что такое «серьезные инфраструктурные различия», можно пример?

Инфраструктурная «ориентация», например: parrot - общая vm для динамических яп, llvm - компилятор для пофиг каких языков под низкоуровневую платформу.

Чем llvm отличается от jvm в общем-то же понятно.

Ага, корпорациями.

Хватит занудствовать.

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

Инфраструктурная «ориентация», например: parrot - общая vm для динамических яп, llvm - компилятор для пофиг каких языков под низкоуровневую платформу.

А Clang - это реализация Си/Си++ поверх компилятора LLVM. И это самый близкий аналог PyPy из известных мне систем.

tailgunner ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Рассылку их не читал, цели какие-то озвучены? А то тут уже были всякие unladen swallow и сотоварищи. Интересно будет, если на pypy напишут какой-то нормальный lisp (не clojure).

alienclaster ★★★
()
Последнее исправление: alienclaster (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Тонко разработчики PyPy шутят. Facebook повёлся, даже деньжат на разработку подкинул.

lucentcode ★★★★★
()
Ответ на: комментарий от true_admin

У java и .NET стандартная библиотека идёт в придачу. В том числе и тулкит для построения GUI. И из любого ЯП платформы можно взаимодействовать с библиотеками платформы. Сомневаюсь, что «батарейки» python можно будет использовать в ruby или php.

lucentcode ★★★★★
()

действительно быстрых интерпретаторов Ruby и PHP

Да ну? Быстрее хипхопа? Лучше бы хипхоп на ллвм переписали.

anonymous
()
Ответ на: комментарий от anonymous

А, да. Быстрее хипхопа. Только реализован только php 1.0, и то не до конца.

Посмотрим-посмотрим.

anonymous
()
Ответ на: комментарий от alienclaster

А на основе чего ты делаешь такой вывод?

Раз уже есть python и руби значит оно уже платформа :)

true_admin ★★★★★
()
Ответ на: комментарий от anonymous

Да ну? Быстрее хипхопа?

Судя по тому, что проект спонсируется Facebook - да.

tailgunner ★★★★★
() автор топика
Ответ на: комментарий от Binary

Я имел в виду py3k на pypy. Впрочем, судя по блогу, там всё уже относительно близко к завершению.

risenshnobel ★★★
()

rubini.us

Кто разбирается в вопросе - чем это лучше rubinius и вообще зачем реализация ruby на pypy, если есть rubinius, на основе которого кстати ест реализация python - typhon?

anonymous
()

это что за зверь такой ?

kto_tama ★★★★★
()

вероятно, для создания действительно быстрых интерпретаторов Ruby и PHP

Это вброс! Хипстеры и риальные п'цаны негодуэ!

AlexM ★★★★★
()
Ответ на: комментарий от AlexM

вероятно, для создания действительно быстрых интерпретаторов Ruby и PHP

Это вброс!

Ooops, you found out. Now we have to kill you.

tailgunner ★★★★★
() автор топика
Ответ на: комментарий от lucentcode

PyPy и не ставит задачу создания платформы. Их задача - создать быстрый интерпретатор уже существующего языка. Делается за счет статического анализа байткода и последующей JIT компиляции.

Поддержку PHP и Ruby могут прикрутить просто компиляцией этих языков в питоний байткод, возможно (и скорее всего) для этого байткод придется немного расширить.

snizovtsev ★★★★★
()
Ответ на: комментарий от lucentcode

какой смысл писать интерпритаторы Ruby и PHP на Python?

однозначно не больший чем писать интерпретатор питона на питоне

q11q11 ★★★★★
()

для создания действительно быстрых интерпретаторов Ruby и PHP

Вот это будет действительно тормозилово! Получится Единая и действительно ненужная платформа для действительно ненужных скриптовых недоязычков.

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 1)
Ответ на: комментарий от shahid

Вот это будет действительно тормозилово!

Да ладно, медленнее Си-интерпретаторов сделать невозможно.

tailgunner ★★★★★
() автор топика
Ответ на: комментарий от anonymous

И сконвертнуть его емскриптеном в яваскрипт.

anonymous
()
Ответ на: комментарий от anonymous

добавить ещё столько же вызовов usleep же, не?

Не, это же неспортивно.

tailgunner ★★★★★
() автор топика

в продакшене кто-нибудь использует?

Reset ★★★★★
()
Ответ на: комментарий от snizovtsev

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

lucentcode ★★★★★
()

Для руби есть свое аналогичное решение: Rubinius. Не нужен им никакой Pypy.

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

Deleted
()
Ответ на: комментарий от Deleted

Для руби есть свое аналогичное решение: Rubinius

Не аналогичное.

незачем пытаться распространить данное узкоспециализированное решение на другие языки.

1) это не «они» его распостраняют

2) решение не узкоспециализированное

tailgunner ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.