LINUX.ORG.RU

Python 3.2

 


0

0

20 февраля вышел Python 3.2.

Так как действует «Мораторий на измение языка» (PEP-3003), то синтаксис языка остался прежним; было внесено всего несколько изменений во встроенные типы.

Усилия разработчиков были сконцентрированы на стандартной библиотеке и поддержке портирования кода на Python3.

Среди изменений стоит отметить:

  • множественные изменения в модуле unittest;
  • PEP 3147, поддержка PYC Repository Directories;
  • PEP 3149, поддержка контроля версий динамически-подключаемых библиотек;
  • PEP 3148, futures — новая библиотека для асинхронных вычислений (конкурентного программирования);
  • PEP 384, стабильное ABI для модулей расширений;
  • значительно переделан GIL (Global Interpreter Lock);
  • расширенный пакет email, который поддерживает байтовые сообщения;
  • значительно улучшен модуль ssl;
  • новый модуль sysconfig;
  • улучшения модуля shutil, среди которых стоит отметить поддержку архивов;
  • множество улучшений в configparser;
  • улучшен pdb (Python debugger);
  • множественные исправления, связанные с ошибками bytes/string;
  • множественные исправления для численных операций.

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

★★

Проверено: JB ()

ещё бы запилили скорость...

megabaks ★★★★ ()

>значительно переделана GIL (Глобальная блокировка интерпретаторА);

С одной стороны, как язык python весьма неплох, а с другой — тормозные поделки на нем(типа Ubuntu Software Center) удручают.

CrossFire ★★★★★ ()

> значительно переделана GIL (Глобальная блокировка интерпретатора)

Это, знаете, как если бы в чейнджлоге Linux Kernel появилось: «Значительно переделан #12309».

Или в KDE 4.7: «Значительно переделан процесс падения плазмы»

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

дану? это же не баг, насколько я понял, не?

GIL (Global Interpreter Lock) — особенность, присущая CPython, Stackless и PyPy, но отсутствующая в Jython и IronPython. При своей работе основной интерпретатор Python постоянно использует большое количество потоково-небезопасных данных. В основном это словари, в которых хранятся атрибуты объектов и обращения к внешнему коду (написанному на С и т.п.). Во избежание разрушения этих данных при совместной модификации из разных потоков, перед началом исполнения нескольких инструкций (по умолчанию 100) поток интерпретатора захватывает GIL, а по окончании освобождает.

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

Это, знаете...

Ну если рассматривать 12309 и креши плазмы как неотъемлемую часть соответствующих проектов, то анон всё верно сказал.

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

> дану? это же не баг, насколько я понял, не?

Да ну что ты, конечно, это не баг.

GIL - это костылик, который авторы Python сварганили на скорую руку, не осилив человеческий multithreading. Из-за этого Python CANNOT INTO нормальное SMP. А так никакой это не баг, разумеется. Кто только это придумал.

anonymous ()

python такой python

good news =)

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

>это же не баг, насколько я понял, не?

больше на костыль похоже

Genuine ★★★ ()

Еще бы совместимость с 2.Х запилили, может бы и вернулся на него, как на основной инструмент разработки. А так только для всякой скриптоты остался.

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

...не осилив человеческий multithreading...


А ты вместо threading:
http://docs.python.org/py3k/library/threading.html
используй multiprocessing:
http://docs.python.org/py3k/library/multiprocessing.html

Там синтаксис почти идентичен и к threading, так что прогу сильно переписывать не надо, а GIL эффективно обходится стороной!

sdh ()

> конкурентного программирования

Это, пардон, на каком языке? Вам не стыдно такое писать?

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

А так, жду бэкпортов фич во вторую ветку, потому что 3.Х пока не вполне актуален.

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

> Из-за этого Python CANNOT INTO нормальное SMP

Трололо, чем плоха мультипроцессность?

Just Say No to the combined evils of locking, deadlocks, lock
granularity, livelocks, nondeterminism and race conditions.

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

Для «скриптоты» - perl, для фигни bash. Python для самоудовлетворения через карму ежегодной смены стандарта. Туда же все остальные сырые недоязыки. Возвращайтесь через десять лет после фиксации стандарта хотя бы в минимальном виде.

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

не осилив человеческий multithreading

Что это такое? Это там где надо повсюду расставлять volatile и synchronized? Спасибо не надо.

baverman ★★★ ()

Ну вот и повод отпраздновать ^^ Релизы в последнее время как грибы, сначала Debian порадовал, а теперь вот Python...

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

Смены стандарта нет. Через отсутствие стандарта. А так баш + питон вполне хватает. Как минимум из-за ipython

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

Сделано через просто задницу. И да, не стоит оправдываться на дедлоки. GIL — лютое бревно.

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

Опа а списки, кортежи и over 9000 компонентов стандартной библиотеки и не знали что они поменялись ))

pylin ★★★★★ ()

Свалка продолжается:

$ eix -e python
Installed versions:  2.6.6-r1(2.6)
2.7.1(2.7)
3.1.3(3.1)

И опять появится софт, для которого придется ставить ветку 3.2 и несовместимый с остальными версиями. Пистон такой пистон

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

И опять появится софт, для которого придется ставить ветку 3.2 и несовместимый с остальными версиями.

Полный бред. Так можно сказать про любую софтину и библиотеку.

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

Полный бред — так можно сказать про любую софтину и библиотеку.

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

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

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

не осилив человеческий multithreading

человеческий multithreading имел нечеловеческий оверхед поэтому его и выпилили. В ruby нету тредов(userspace не считаются), в php нету тредов, в перле потоки между собой никаких данных не шарят(я бы это потоками не назвал). А GIL позволяет использовать реальные потоки, причём C-треды от него не зависят.

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

В любой софтине обычно не ломают обратную совместимось в каждой ветке

а что в 3.2 поломали? Пример в студию.

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

Д.Бизли о GIL
Новая реализация GIL в 3.2

почитал, большое спасибо

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

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

Более того если читать доки, то там и ставят для устаревших функций и методов тот самый deprecated

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

Хотя во многих случаях саму функцию убирают позже

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

> Там синтаксис почти идентичен и к threading, так что прогу сильно переписывать не надо, а GIL эффективно обходится стороной!

Эффективно - это за счет нескольких интерпретаторов в памяти?

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

>а что в 3.2 поломали? Пример в студию.
Может и ничего, но зачем держать в системе одновременно 3 версии питона, почему у других библиотек нет такого?

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

учитесь школьники:

Tcl/Tk 8.4.0 Released Sep 20, 2002, 07 :00 UTC

и
2010 Feb 14, 10:15
http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/6c050f9a8f6...

ActiveState is pleased to announce the release of ActiveTcl 8.4.19.5,
a patchlevel release of the complete, ready-to-install Tcl
distribution for Windows, Mac OS X, Linux, Solaris, AIX and HP-UX;
based on the Tcl/Tk 8.4.19 core.

минимум 9 лет обратной совместимости в одной ветке, вот так ))

elipse ★★★ ()

Изменения радуют, хоть и не так сильно, как нововведения Python 3 по сравнению с Python 2.

Ждёмс, когда всё будет поддерживать Python 3.

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

зачем держать в системе одновременно 3 версии питона, почему у других библиотек нет такого

вот же ты толстячок, начни с комплектов библиотек для 32/64, это не считая версий, то что ты чего-то там не видишь, совсем не означает что этого нет

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

> Что это такое? Это там где надо повсюду расставлять volatile и synchronized? Спасибо не надо.

Их и в ущербном питоне надо расставлять. GIL - это лок на действия с внутренними данными интерпретатора, его вполне можно было избежать, если использовать CAS.

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

но зачем держать в системе одновременно 3 версии питона

Смени дистрибутив на нормальный.

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

Их и в ущербном питоне надо расставлять

Очень редко. Я еще ни разу не пользовался Lock, RLock и т.д. А на джаве сплошь и рядом.

его вполне можно было избежать, если использовать CAS

Интересно на это поглядеть. Какой нибудь интерпретатор так уже реализован?

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

>Какая программа требует исключительно python3?
libxml2

xorik ★★★★★ ()

Во, уже питононенавистники набижали.

По сабжу — ура, чо.

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

Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type «copyright», «credits» or «license()» for more information.

****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************
IDLE 2.6.6 ==== No Subprocess ====

import libxml2


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

> libxml2

Сишная либа, зависящая от 3-го питона? В каком дистрибутиве настолько криворукие мантейнеры?

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

>Сишная либа, зависящая от 3-го питона?
Я откуда знаю, если в ебилде так написано:

RDEPEND=«sys-libs/zlib
   icu? ( dev-libs/icu )
   python? ( || ( <dev-lang/python-3[xml] ( <dev-lang/python-3 dev-python/pyxml ) ) )
   readline? ( sys-libs/readline )»

xorik ★★★★★ ()

> Так как действует «Мораторий на измение языка» (PEP-3003), то синтаксис языка остался прежним; было внесено всего несколько изменений во встроенные типы.

Ужос! самодуры и ретрограды тормозят эволюцию. Даешь мажорные изменения в каждом минорном релизе!

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