CPython notes
990 subscribers
9 photos
63 links
Download Telegram
https://github.com/python/cpython/issues/120522
Мда, Apple как всегда
https://discuss.python.org/t/three-month-suspension-for-a-core-developer/60250/4

Как вы уже могли слышать, роль основного разработчика была приостановлена для Тим Питерса(автор тимсорта в питоне) на 3 месяца. И вот вчера появляется этот комментарий от мейтнейнера енамов. Интересно, что будет дальше
Релизнулся питон 3.13!
Скачать можно тут: https://www.python.org/downloads/release/python-3130/
Что нового: https://docs.python.org/3.13/whatsnew/3.13.html
Forwarded from quantum super position
Питон самый популярный язык на гитхабе
Был смержен тред-локал байткод - https://github.com/python/cpython/pull/123926

Зачем это нужно и как это связано с nogil aka free-threaded?

Напомню, что в версии 3.11 был добавлен так называемый <адаптивный> интерпретатор, который умеет в специализацию.
Типичная операция x + y в обычном случае превращается в BINARY_OP опкод, который делает x.__add__(y), что несомненно не очень-то и дешево, так как надо производить лукап __add__ и прочие связанные с этим операции.
Адаптивный интерпретатор "подстраивается" под ситуации когда у вас достаточно много случаев в коде когда в операции x + y оба операнда являются интами, и тогда можно сэкономить на лукапе и дергать специализированную сишную функцию для сложения интов, которая не производит никакого лукапа атрибутов, и именно на этом мы выигрываем по производительности.

Так вот, в случае с nogil сборкой адаптивный интерпретатор не является потокобезопасным, что делало nogil сборку действительно медленнее(потому что специализация была выключена в nogil сборке). Pull request отмеченный выше делает адаптивный интерпретатор потокобезопасным и вместе с этим у codeobject появляется атрибут co_tlbc :)