LINUX.ORG.RU

Выпуск Nuitka 2.2

 


0

5

Nuitka — это оптимизирующий компилятор Python, использующий трансляцию через C, для создания исполняемых файлов.

Nuitka полностью совместим с Python 3 (3.4–3.11) и Python 2 (2.6, 2.7) и доступен по сути, везде, где уже работает Python.

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

Основные изменения направлены на возможность обеспечения полной поддержки Python 3.12 в следующем выпуске.

В этом же выпуске главными изменениями являются:

  • экспериментальная поддержка Python 3.12;

  • поддержка tensorflow.function JIT;

  • расширены возможности плагина anti-bloat, теперь он может применяться для библиотек: antlr, bokeh, celery, deepspeed, imgui_bundle, tensorflow, transformers, tf_keras;

  • доступен обработчик Change_class, аналогичный Change_function, позволяющий полностью заменить определение класса.

Исходный код проекта распространяется под лицензией Apache-2.0.

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



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

А как питоновские программы с ним дебажить - как обычно, или «трансляция через C» что-то усложняет?

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

А как питоновские программы с ним дебажить

Дебажить как сишные программы :)

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

поддержка tensorflow.function JIT;

Как это сочетается с трансплиттером в си? В смысле генерирует сишный код который генерирует ассемблерный код… а из сего он генерирует то если код уже весь в Си? Чёт это тут не то. Или тут JIT не про компиляцию во время исполнения?

LINUX-ORG-RU ★★★★★
()

Я эти нуитки так никогда и не применял хоть про нее лет 10 знаю. Всегда считал, что вместо первой N должна быть H, тогда бы ее название олицетворяло тщетность существования самой библиотеки. По крайней мере для меня. CPU-bound операции для меня не являются узким местом, у меня все упирается в сокеты (I/O), возможно, кому-то она нужна, но к счастью не мне

rtxtxtrx
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

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

Как раз! :)

x86_64-v3

У меня ядро x64v4-xanmod, норм.

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

Не. Там куча НО, которые ее делают полезной только для написания числодробилок

rtxtxtrx
()

Нужно пару лет подождать, там в 3.13 (вроде уже в нем) будет включен какой то супер пупер jit компилятор и проги на нем просто работать в 6 раз быстрее.

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

Который ровным счетом ничего не даст. Ну для всяких порталов на джанге - точно. 3.12 и так «ускорили», только пасаны ускорения не заметили. Язык тормозной, но намного быстрее какого-нибудь Ruby. Но в вебне ты не заметишь его преимущества как и проигрыша в скорости PHP, NodeJS или Java. У нас типичное веб-приложение - это сходи в базу и отдай данные в JSON, где 99% времени тратится на перкладывание байтиков между сокетами. А для анализа этих самых больших данных у питона из конкурентов только язык R - те их нет. Не знаю зачем ему быть более быстрым.

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

Если к жопе присобачить сопроцессор фирмы Крей, можно срать в два унитаза в десять тысяч раз быстрей :)

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

Так ежу ясно, что обычного не хватит. Погоди, они ж когда-то пых переписывали во что-то компилируемое.

gns ★★★★★
()

Никогда не понимал смысла этого и подобных проектов. Какое-то иррациональное непреодолимое желание пользователей винды запихнуть всё в единый exe. Но судя по коммерческим предложениям у них на сайте, спросом это пользуется, и видимо чего-то в жизни не понял уже я.

Питон слишком прямолинейный, там всё пришивалось нитками как придётся, самым простым способом, из-за чего он и стал универсальным клеем. Никто не пытался каких-то строгих инвариантов соблюсти, ни дать гарантий, стдлиба/FFI ни в чём не ограничивают. Но оно же и затрудняет сборку в exe: нельзя терять байткод, имена объектов, итд, всё остаётся тем же интерпретатором. То есть, лучшее что можно сделать, это упаковать байткод как нравится (да хоть внутрь exe), добавить импортхук и обёртку для запуска, приложить оригинальную dll с питоном, и всё. Но нет, его зачем-то постоянно транслируют в си и собирают в exe как программу на си. Огребают, постоянно что-то не работает, но не сдаются.

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

lpython

It is currently in alpha stage and under heavy development.

Пока для энтузиастов.

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

Для себя вижу пользу проекта в том, чтобы быстро накостылять прототит чего-то несложного, упаковать в один файл и отдать пользователям, не думая особо о том, в каком окружении они будут это запускать. Ведь бывает так, что в организации есть Win Domain с AD, потом сверху добавляется парк из компов c Linux, администрируется всё это неважно, поэтому нужно искать пути упрощения своей работы. Хотя, конечно, всё это решение организационных, а не технических проблем.

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

Из текста следует, что «хотели, да не смогли» :) Ну и пусть их, странная была идея. Если учесть, что мордокнига кидает кучу js, типа «а теперь, дорогой броузер, ты сам вычисли себе текущую страницу и сформируй стопицот запросов контента», а мы ее заполним (может быть), то питона c jit на формирование «невычисленной» страницы должно хватить. А что там у них на статике, то одному Сцукербергу ведомо :)

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

Для себя вижу пользу проекта в том, чтобы быстро накостылять прототит чего-то несложного, упаковать в один файл и отдать пользователям

Nim подойдёт.

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

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

LegacyWarrior
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

TensorFlow содержит библиотеку математических функций, у которой есть свой собственный JIT компилятор для оптимизации вычислений на CPU или GPU. Это нишевая штука. Если в проекте есть такой код, то Ньютка теперь способна делегировать его компиляцию/исполнение в TF.

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

А зачем оно нужно? Если скрыть свой говнокод от заказчика - дык это покупать лицензию нужно, если я правильно понял: https://nuitka.net/doc/commercial.html - да еще в России не укупишь.

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

приложить оригинальную dll с питоном, и всё

Что-то подобное, уже было.

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

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

Когда я собирал последний Руби там было в жит, какой то классический и новый что требовал для себя Раст (чур меня) …

mx__ ★★★★★
()

Ну всё, теперь можно говнокодить на Python со спокойной душой.

Не испытывая потаённого страха, что придётся на гошечку всё переписывать, если проект выстрелит и потребуется обрабатывать 300к запросов в секунду…

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

в питоне забавно то что

если задача позволяет элементарная list=array.array ускоряет в 3 раза :)

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

для питона такая компиляция это лишь возможная опция и как правило используется когда до неё уже всё отдебажено и работает.

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

Он, кстати, уже вышел

Для активации JIT в CPython добавлена сборочная опция «–enable-experimental-jit». Для работы JIT требуется установка LLVM в качестве дополнительной зависимости.

~   
❯ asdf list all python | grep '3\.13'
3.13.0b1
3.13-dev
pypy2.7-7.3.13-src
pypy2.7-7.3.13
pypy3.9-7.3.13-src
pypy3.9-7.3.13
pypy3.10-7.3.13-src
pypy3.10-7.3.13

Через asdf/pyenv можно скомпилить

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

А как питоновские программы с ним дебажить

Никак. Он в основном для дистрибуции.

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

Ну для всяких порталов на джанге - точно. 3.12 и так «ускорили», только пасаны ускорения не заметили

3.11 же. 3.12 как раз чутка тормознутее. И таки заметили, сборка-разборка моделей из сложенного в базу жсона стала бодрее

upcFrost ★★★★★
()

Кто-нибудь это юзал в проде? Мы cython используем, там довольно понятно что как и куда, а здесь чёт хз

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

Nim подойдёт.

а там можно все в один бинарь? Даже, например, с gtk?

Не вижу препятствий. Если возможно в Си, то наверняка можно. Но не знаю, как в Nim сейчас с актуальностью биндингов к GTK, давно не слежу.

dataman ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.