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 на синтетических бенчмарках

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

Новость хорошая. Одно не пойму, какой смысл писать интерпритаторы Ruby и PHP на Python?

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

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

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

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

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

Это метатроллинг.

tailgunner ★★★★★ ()

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

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

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

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

Им уже кто-то пользуется в продакшене?

provaton ★★★★★ ()
Ответ на: комментарий от 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

Ну, по-твоему, как, перспективы есть, стать общей jit-платформой для динамически типизированных яп?

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

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

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

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

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

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

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

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

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

Разницу между VM и компилятором знаешь?

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

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 ()

вероятно, для создания действительно быстрых интерпретаторов 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 ★★★★★ ()
Ответ на: комментарий от tailgunner

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

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

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

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

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

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

tailgunner ★★★★★ ()

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

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

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

lucentcode ★★★★★ ()

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

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

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

Кстати, у того же rubinius нет такого отставания: rubinius поддерживает Ruby 1.9.3

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

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

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

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

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

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

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