LINUX.ORG.RU

Вышел PyPy 2.3 «Terrestrial Arthropod Trap»

 


0

3

9 мая тихо и незаметно вышел PyPy 2.3, интерпретатор и JIT-компилятор Python, одновременно являющийся инструментарием для разработки интерпретаторов динамически типизированных языков программирования; на сегодня PyPy поддерживает x86 под управлением Linux (32 и 64 бит), Mac OS X (64 бит), OpenBSD, Windows (32 бит), и ARMv6/ARMv7 (с VFPv3) под управлением Linux.

Эта версия PyPy содержит относительно немного значимых улучшений функциональности - разработчики сосредоточились на чистке и рефакторинге кода, и исправлении ошибок и регрессий. Одним из результатов этой работы стало выделение транслятора RPython (языка, на котором написан интерпретатор Python) в отдельный пакет, который возможно использовать отдельно от PyPy (например, в HippyVM, в группу разработчиков которой входит Maciej Fijalkowski, один из PyPy core developers).

Видимые пользователю изменения в сравнении с предыдущей версией:

  • обновление stdlib до версии 2.7.6;
  • более быстрые генераторы;
  • поддержка OpenBSD;
  • улучшение поддержки NumPy:
    • код поддержки разделен на встроенный в PyPy модуль _numpy и форк основного кода NumPy);
    • в _numpy ускорена операция dot, что ускоряет все операции NumPy;
    • реализована большая часть функциональности nditer;
    • продолжаются исправление ошибок и реализация недостающей функциональности для прохождения стандартной тестовой сюиты NumPy.

Продолжаются работы по реализации STM (preview-версия интерпретатора с STM ожидается «уже скоро, как только мы исправим несколько ошибок») и Python 3.

Поддержать нужный подпроект трудовым рублем можно здесь: STM, NumPy, Python3.

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

★★★★★

Проверено: leave ()
Последнее исправление: Wizard_ (всего исправлений: 5)

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

pylin ★★★★★
()

одновременно являющийся инструментарием для разработки интерпретаторов динамически типизированных языков программирования

Что-то оно мне напоминает

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

Как у питона сейчас с многопоточностью?

если ты про cpython, то всё так же. но в cpython нормальная многопоточность не особо нужна, с его-то тормозами.

в pypy, вангую, с этим все ок

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

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

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

Вот оно че... А в какой реализации я могу паралельно сходить на несколько сайтов курлом, паралельно же обработать результат (приведение каждой пачки данных к единому виду), и склеить все полученные результаты в основном потоке? Я, может, коряво гуглил, но как-то не нашел. Хотя гуглил давно.

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

В питоне ж вроде gil, который убивает всю многопоточность?

GIL реализует многопоточность, а не убивает ее. Учи матчасть.

Siado ★★★★★
()

Python 3 на PyPy - прям ненужно в квадрате

Предлагаю ТС заслуженно расстрелять всех вопрошающих и отвечающих им в комментах выше.

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

А в какой реализации я могу паралельно сходить на несколько сайтов курлом, паралельно же обработать результат ...

думаю, что в любой. насчет cpython не стоит делать спешных выводов, стоит потестить. хз, как там интерфейс к curl реализован.

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

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

Вот оно че... А в какой реализации я могу паралельно сходить на несколько сайтов курлом, паралельно же обработать результат (приведение каждой пачки данных к единому виду), и склеить все полученные результаты в основном потоке? Я, может, коряво гуглил, но как-то не нашел. Хотя гуглил давно.

epoll, read, write и т.п. есть в CPython, можешь делать что хочется. И поддержка пулов процессов тоже есть

mashina ★★★★★
()

Вышел PyPy

ехал питон через питон

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

А что могло измениться-то? Вроде уже разбирались, что там туева куча объектных файлов создается.

Ну вот могли бы как-то не через задницу переделать этот процесс. Тучка могла бы стать меньше, мало ли что.

mashina ★★★★★
()

встроенный в PyPy модуль _numpy

Когда они блджад сделают раздельную трансляцию модулей и перестанут пихать всё в один бинарник? Они туда весь мир запихать собрались? Как там сейчас, 8 Гб для сборки ещё хватает, или уже маловато?

kot_otbelivatel
()

А если PyPy так хорош, почему его по дефолту в дистры не ставят? Или это магия для посвященных, типа как apache на nginx поменять?

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

Наоборот, с вызовами сишечки как раз никаких проблем нет.

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

в pypy, вангую, с этим все ок

В STM ветке всё будет ОК, когда она будет, а в главной ветке пока всё почти также как и в CPython.

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

Теперь больше =( последний раз 6-7 точно заняла трансляция JIT-а.

anonymous
()

К большому сожалению, их реализация NumPy сейчас всё равно жутко тормозная, куда медленнее, чем для CPython... Пока, говорят, на корректности реализации концентрироваться будут.

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

А в какой реализации я могу паралельно сходить на несколько сайтов курлом, паралельно же обработать результат ...

^^^

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

В неполной совместимости, с библиотеками, багах, и тд, но для расчетов pypy вполне годен

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

В том, что многие расширения на C не работают, и таки есть баги. Кроме того, JIT долго прогревается, а потребление памяти может быть существенно больше из-за трассирующего сборщика мусора. Так что эта реализация где-то выигрывает, а где-то проигрывает CPython, поэтому бездумно заменять одно на другое глупо.

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

А в чем нестабильность выражается? Вроде не первый год проекту.

Пробовали на работе на одном большом проекте PyPy 2.0. За исключением плавающего бага с virtualenv всё работало как надо (и раза в 2 быстрее)

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

Ну вот могли бы как-то не через задницу переделать этот процесс

Узнаешь, как оно собирается, поймёшь что не могли. Там чтобы получить статическую компиляцию динамического языка, емнип, приходится разом анализировать _весь_ будущий бинарник.

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

Когда они блджад сделают раздельную трансляцию модулей и перестанут пихать всё в один бинарник?

Тогда, когда ты расскажешь им, как, например, сделать выведение типов аргументов функции в динамическом языке, не имея информации о всех местах, где эта функция вызывается. Возможно есть другие проблемы - не знаю.

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

STM? Если это то о чём я думаю то это очень полезно для многопоточной работы, что-бы несколько параллельных потоков могли работать с одной структурой в памяти. Вроде дофига полезная вещь.

Глубоко не копал, всё что знаю по теме услышал в этой лекции (там применительно к жабе):
http://www.lektorium.tv/lecture/14983

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

Потому что ты не написал реализацию, делающую это.

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

Это должна быть весьма специфичная многопоточность, типа баз данных, когда все ядра лопатят общую память. А иначе проще с message bus.

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

Под одно ядро достаточно корутин, там с атомарностью особых проблем не должно быть.

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

А если PyPy так хорош, почему его по дефолту в дистры не ставят?

Думаю, потому, что Си-расширения CPython в общем случае несовместимы с PyPy.

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

Почему питон в натив не может компилироваться?

Может, но смысла большого нет. Для генерации быстрого кода нужна runtime specialization.

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

Это должна быть весьма специфичная многопоточность, типа баз данных, когда все ядра лопатят общую память

Это самая обычная многопоточность, не имеющая никакого отношения к БД. Собственно, главное использование STM в PyPy - нормальная реализация threading,

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

главное использование STM в PyPy - нормальная реализация threading,

По-моему не взлетит. Нужна превалирующая иммутабельность на уровне языка, а без нее получим то, что получили, когда хотели добавить STM в .NET. Справедливости ради, в F# может быть и получилось, но только на нем пишут в разы меньше, чем на C#.

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

главное использование STM в PyPy - нормальная реализация threading,

По-моему не взлетит. Нужна превалирующая иммутабельность на уровне языка

Нужна зачем именно? PyPy STM используется в реализации интерпретатора, а не на уровне библиотечного API (окей, есть и библиотечный API, но это не главное).

без нее получим то, что получили, когда хотели добавить STM в .NET

Еще раз: главное предназначение STM в PyPy - это уход от GIL и реализация нормальных нитей. Чтобы приложения, написанные с использованием обычного threading, реально параллелились на несколько процессоров. Т.е. программы не нужно модифицировать, никаких навороченных API не вводится.

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

А если PyPy так хорош, почему его по дефолту в дистры не ставят?

Потому что не нужен и не будет широко нужен даже когда там всё допилят и доделают киллер фичи. Питон в дистрибутивах применяется как высокоуровневый скриптовый язык без особых требований к производительности. CPython вполне неполохо справляется с этой задачей и имеет значительно меньшей оверхед по памяти. PyPy тут предложить совсем нечего.

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

чтобы паралельно ходить на несколько сайтов курлом многопоточность не нужна.

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

apache закапывать пора. для статики есть nginx, для питоновских аппликух uwsgi. все.

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