URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 114165
[ Назад ]

Исходное сообщение
"Релиз PyPy 6.0, реализации Python, написанной на языке Python"

Отправлено opennews , 27-Апр-18 00:14 
Состоялся (http://morepypy.blogspot.ru/2018/04/pypy27-and-pypy35-v60-du...) выпуск проекта PyPy 6.0 (http://pypy.org/), в рамках которого развивается реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython (http://doc.pypy.org/en/latest/coding-guide.html#id1), Restricted Python). Выпуск подготовлен одновременно для веток PyPy2.7 и PyPy3.5, обеспечивающих поддержку синтаксиса Python 2.7 и Python 3.5, и поставляемых с stdlib 2.7.13 и 3.5.3. Выпуск доступен для Linux (x86, x86_64, PPC64, s390x, ARMv6 или ARMv7 с VFPv3), macOS (x86_64),  OpenBSD, FreeBSD и Windows (x86). PyPy3.5 5.10 отмечен как первый стабильный релиз ветки 3.5 для Linux и macOS (поддержка Windows пока имеет статус бета-версии).


Особенностью PyPy является использование JIT-компилятора, на лету транслирующего некоторые элементы в машинный код, что позволяет обеспечить высокий (http://speed.pypy.org/) уровень производительности - при выполнении некоторых операций PyPy в несколько раз обгоняет классическую реализацию Python на языке Си (CPython). Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти - общее потребление памяти в сложных и длительно работающих процессах (например, при трансляции PyPy силами самого PyPy) превышает потребление CPython в полтора-два раза.

В новом выпуске:

-  Значительно увеличена (https://morepypy.blogspot.it/2017/10/cape-of-good-hope-for-p...) производительность и расширена функциональность прослойки cpyext для обеспечения совместимости с C-API. -  Улучшена совместимость с CPython. -  Обеспечена (https://morepypy.blogspot.com/2018/04/improving-syntaxerror-...) генерация более понятных сообщений в случае выявления синтаксических ошибок. -  В сборщик мусора добавлена возможность подключения обработчиков для сбора информации о производительности.-  Обеспечена совместимость с бэкендом  TkAgg, применяемым по умолчанию в Matplotlib, что решило проблему с поддержкой пакетов pygame и pygobject. -  Обновлены модули CFFI 1.11.5 (C Foreign Function Interface) и cppyy 0.6.0 с реализацией интерфейса для вызова функций, написанных на языках Си и C++.


Код для перевода внутреннего представления строк на utf8 не вошёл в релиз. На начальной стадии находится реализация поддержки Python 3.6.


URL: http://morepypy.blogspot.ru/2018/04/pypy27-and-pypy35-v60-du...
Новость: https://www.opennet.dev/opennews/art.shtml?num=48500


Содержание

Сообщения в этом обсуждении
"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним , 27-Апр-18 00:14 

test = 0.7
while test <= 2.0:
  print "%.1f" % (test)
  test += 0.1

Результат: выводит числа от 0.7 до 1.9

Почему не выводит 2.0?
Если поменять на 3.0, то тоже самое — последнее выводит 2.9.
Но если поставить начало цикла на 1.7, то 2.0 появляется.
Что магического в цифрах 2 и 3 для питона?


"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Виктор , 27-Апр-18 00:30 
Для того, чтобы понять, почему так случается, вам нужно посмотреть это видео: https://youtu.be/WlaAAdz4pjM?t=84

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним , 27-Апр-18 00:48 
Спасибо, интересно.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним , 27-Апр-18 07:51 
А в видео есть ответ на вопрос, как безопасно сравнивать 2 флоата?

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним , 27-Апр-18 09:17 
if(abs(a-b) <= 0.00001) {...}

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено dasrfatwet , 27-Апр-18 17:06 
боже мой теперь понятно почему питон никому не нужен кроме извращенцев

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним , 28-Апр-18 00:59 
О, смотрите все, вот code monkey считает себя умнее Дональда Кнута.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним84701 , 28-Апр-18 01:06 
> боже мой теперь понятно почему питон никому не нужен кроме извращенцев

Вы не поверите, но …


% cat testfloat.c && gcc -Wall -Wextra -Wpedantic testfloat.c -o float && ./float
#include <stdio.h>

int main(void)
{
    double test = 0.7;
    while (test <= 2.0) {
        printf ("%.1f | %.20f\n", test, test);
        test += 0.1;
    }
    return 0;
}
0.7 | 0.69999999999999995559
0.8 | 0.79999999999999993339
0.9 | 0.89999999999999991118
1.0 | 0.99999999999999988898
1.1 | 1.09999999999999986677
1.2 | 1.19999999999999995559
1.3 | 1.30000000000000004441
1.4 | 1.40000000000000013323
1.5 | 1.50000000000000022204
1.6 | 1.60000000000000031086
1.7 | 1.70000000000000039968
1.8 | 1.80000000000000048850
1.9 | 1.90000000000000057732


"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним , 27-Апр-18 22:01 
if str(f1)=str(f2):
    pass

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено ram_scan , 28-Апр-18 19:05 
И в соседней процедуре сортировку пузырьком. Производительности то девать некуда.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено alexpat , 27-Апр-18 00:37 
Здесь не в питоне дело, а в том, как хранятся числа с плавающей точкой.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено myhand , 27-Апр-18 13:16 
Ыгы.  О сколько нам открытий чудных готовит IEEE 754.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Анончик999999 , 27-Апр-18 00:40 
Вообще, не хорошо сравнивать числа с плавающей точкой. Но вот while test <= 2.0 + sys.float_info.epsilon тоже не срабатывает, хотя должно бы.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено какойто другой аноним , 27-Апр-18 01:39 
> хотя должно бы

отчего бы это?
есть несколько аспектов:

во-первых, epsilon - это такое минимальное положительное число, что 1.0 + epsilon != 1.0
т.е. совершенно законно, что 2.0 + epsilon == 2.0

во-вторых, следовательно, оптимисты должны писать не 2.0 + epsilon, а 2.0*(1+epsilon)

в третьих, цепочка операций может накапливать погрешность неожиданным для неопытного человека образом. Конкретно в данном случае абсолютная погрешность суммы равна 2*epsilon, но при суммировании произвольной последовательности чисел довольно просто найти поучительные примеры -

>>> 1./3 + 2./3 - 1

0.0
>>> 1./3 -1 + 2./3

-1.1102230246251565e-16
>>> 2./3 -1 + 1./3

-5.551115123125783e-17

:)


"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Анонимчик , 27-Апр-18 02:51 
Вообще-то интересно, как происходит приравнивание float-массивов в NumPy?

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним , 27-Апр-18 15:43 
> Вообще, не хорошо сравнивать числа с плавающей точкой. Но вот while test
> <= 2.0 + sys.float_info.epsilon тоже не срабатывает, хотя должно бы.

Ты на оборудовании с точностью 0.1 мм задаешь величину 2.15 мм.


"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Анончик999999 , 27-Апр-18 00:59 
Ну да, приходит наращивание за счёт постоянного прибавления одной десятой. 2.0000000000000004 > 2 + sys.float_info.epsilon. Лучше в циклах перевести в целые числа или в дроби:
from fractions import Fraction
test = Fraction(7, 10)
while test <= 2:
  print "%.1f" % (test)
  test += Fraction(1, 10)

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Анонимчик , 27-Апр-18 02:57 
Можно заменить на тип Decimal.
from decimal import Decimal
test = 0.7  # известно.
test = Decimal(str(test))
dt = Decimal('0.1')
while text <= 2:
    print('{:.1f}'.format(test)
    test += dt

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Анонимчик , 27-Апр-18 02:58 
) в конце print

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Crazy Alex , 27-Апр-18 10:02 
Вот примерно поэтому надо хотя бы начинать с си плюсов или ещё чего, что даёт понимание того, как оно там внутри работает.

"о понимании того, как оно там внутри работает"
Отправлено userd , 27-Апр-18 12:39 
Для понимания как оно работает лучше начинать с ввода программы через инженерный пульт.
Очень просто и практично - набрал переключателями адрес, значение байта - нажал кнопку "записать",
и переходи к следующему байту. Когда введёшь программу и данные, набираешь адрес и кнопку "выполнить" :)

А так-то и python ничего не скрывает. В частности, если мы говорим про числа с плавающей точкой -


>>> sys.float_info.epsilon.hex()

'0x1.0000000000000p-52'

>>> (1.0+sys.float_info.epsilon).hex()

'0x1.0000000000001p+0'

>>> sum( [ 0.7 ] + [ 0.1 ]*13 ).hex()

'0x1.0000000000001p+1'

>>> float.fromhex('0x0.0000000000001p+0')

2.220446049250313e-16


А ещё у нас есть struct и ctypes :)


"о понимании того, как оно там внутри работает"
Отправлено Crazy Alex , 27-Апр-18 13:43 
Скрывает. просто не наглухо. Разница в том, что на сях нельзя писать, не понимая основ, а на питоне - часто можно. И то, что на практике часто даёт удобство (а потом лупит граблями в неподходящий момент), в обучении замазывает пробелы в знаниях.

"о понимании того, как оно там внутри работает"
Отправлено Аноним , 28-Апр-18 08:33 
Не надо учить основы на питоне.... Питон - это язык для тех, кому не надо программировать вообще. То есть номинально надо что-то знать, потому что все вокруг программируют, но рельно - не нужно....

Для понимания основ годится что-нибудь обычное высокоуровневое, например Паскаль. Проще, чем C, не перегружен, легко понять как работают алгоритмы. И ничего страшного, что реальные программы на нём уже почти не пишут. Книги Кнута - тоже, не на практически используемом языке написаны.


"о понимании того, как оно там внутри работает"
Отправлено num , 28-Апр-18 14:56 
>Скрывает. просто не наглухо. Разница в том, что на сях нельзя писать, не понимая основ, а на питоне - часто можно.

Вот казалось бы так. Но сишники раз за разом умудряются доказывать обратное!


"о понимании того, как оно там внутри работает"
Отправлено Аноним , 28-Апр-18 16:29 
Гоните таких сишников учить теорию

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним , 27-Апр-18 15:41 
Некроверсия питона у кого-то потому-что.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено ыы , 28-Апр-18 22:26 
Потому что 0.1 это в действительности 0.10000000000000001000
И после того как напечатано 1,9 и прибавляется 0.10000000000000001000 - получается сумма больше чем 2.0

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено corvuscor , 27-Апр-18 00:22 
Интересная штука, но matplotlib, видимо, пока все-таки не поддерживается.
Ну, подождем-с.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено myhand , 27-Апр-18 13:13 
> Интересная штука, но matplotlib, видимо, пока все-таки не поддерживается.

Вроде что-то шевелится...

tar xjvf pypy3-v6.0.0-linux64.tar.bz2
mkdir venv
pypy3-v6.0.0-linux64/bin/pypy3 -m venv --clear venv/dev-pypy3
pypy3-v6.0.0-linux64/bin/pypy3 -m venv --system-site-packages venv/dev-pypy3
. ~/venv/dev-pypy3/bin/activate
pip install --pre diofant[plot,interactive,develop,docs]

matplotlib устанавливается корректно, правда долго - колес не завели.

И что-то строит:
$ python
Python 3.5.3 (fdd60ed87e94, Apr 24 2018, 06:10:04)
[PyPy 6.0.0 with GCC 6.2.0 20160901] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>> from diofant import plot, sin
>>>> from diofant.abc import x
>>>> plot(sin(x), (x, 0, 3))

[...]
Plot object containing:
[0]: cartesian line: sin(x) for x over (0.0, 3.0)


"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Аноним , 27-Апр-18 09:10 
Когда он уже сможет заменить cpython?

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено myhand , 27-Апр-18 13:13 
Телепатический модуль так и не завели.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Диносуслик , 27-Апр-18 19:12 
А не хотят они PyPyPy написать на PyPy ) В соседней новости нейросеть уже пишет код. Вот и тут надо.

"Релиз PyPy 6.0, реализации Python, написанной на языке Python"
Отправлено myhand , 28-Апр-18 12:34 
Ай-яй-яй, г-да модераторы.  Ведь совсем не по теме новости что в Российской Федерации релиз PyPy можно скачать только через прокси?

Что-ж вы публикуете новость о выходе противозаконного ПО?


"Релиз PyPy 6.0, реализации Python, написанной на языке Python"
Отправлено userd , 28-Апр-18 18:14 
я не модератор, но могу сказать -

1) В PyPy ничего противозаконного нет.
2) У меня в СПб всё качается. Без всяких прокси, хочешь firefox-ом - хочешь wget-ом,
3) Если у Вас есть проблема, и Вы хотите её решить, то клоунада на opennet-е не поможет.

Что поможет в решении проблемы мне не ведомо.
Вероятно, ваш провайдер смотрит на мир оловянными глазами...


"Релиз PyPy 6.0, реализации Python, написанной на языке Python"
Отправлено Аноним , 28-Апр-18 23:05 
>> 2) У меня в СПб всё качается. Без всяких прокси, хочешь firefox-ом - хочешь wget-ом,

На самом деле, могу подтвердить, что и в моём случае amazonaws.com не отвечает (bbuseruploads.s3.amazonaws.com, именно туда идёт перенаправление при скачивании). Этот домен проверен уже двумя провайдерами. Но в списке заблокированных через host-tracker.com не определяется. Длится это с момент блокировки Телеграм

И вряд ли он вообще каким-либо образом сможет повлиять на решение проблемы.


"Релиз PyPy 6.0, реализации Python, написанной на языке Python"
Отправлено Аноним , 28-Апр-18 23:14 
Поправка, поддомены Амазона заблокированы, а значит, если IP совпадут с другими поддоменами, то тоже, вероятно, окажутся заблокированными. Увы:
https://www.host-tracker.com/InstantCheck/3/8749f05b-204b-e8...

Это многое объясняет.


"Релиз PyPy 6.0, реализации Python, написанной на языке Python"
Отправлено myhand , 29-Апр-18 17:56 
Ну что-ж, ответ опять удалили.

Интересно, за что?


"Релиз PyPy 6.0, реализации Python, написанной на языке Python"
Отправлено Аноним , 29-Апр-18 18:20 
> Ну что-ж, ответ опять удалили.
> Интересно, за что?

https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi?az=l...
> УДАЛЕНО.WARNBOT, Реакция: bot info, Санкционировано: mc, Пояснение: оскорбление, Время: Sun Apr 29 19:07:57 2018

Индикатор нарушения: "модер я не модератор, но могу сказать - "



"Релиз PyPy 6.0, реализации Python, написанной на языке Python"
Отправлено myhand , 29-Апр-18 18:54 
Таки за что?  "Оскорбиться" можно на что угодно, при желании.

"Релиз PyPy 6.0, реализации Python, написанной на языке Python"
Отправлено Аноним , 29-Апр-18 19:23 
> Таки за что?  "Оскорбиться" можно на что угодно, при желании.

"дурачок"
Ваш КО.



"Релиз PyPy 6.0, реализации Python, написанной на языке Python"
Отправлено myhand , 29-Апр-18 19:34 
И почему это оскорбительно?  "Клоунада на opennete" почему-то г-ну модератору не показалась оскорблением.

Кто первым оскорбился - тот и прав?


"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Андрей , 28-Апр-18 20:20 
А что, pypy популярнее cython? В Debian всё ещё cython 0.26.1 от 29 августа 2017. А pypy только вышел, и на следующий день уже был в Debian.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено myhand , 29-Апр-18 13:41 
В Debian как не было pypy3, так и нет.

"Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."
Отправлено Андрей , 29-Апр-18 16:07 
В пакете cython идут оба. А в pypy, точно, только 2-ой.