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

Исходное сообщение
"Выпуск Nuitka 0.6.17, компилятора для языка Python "

Отправлено opennews , 14-Ноя-21 11:15 
Доступен  выпуск проекта Nuitka 0.6.17, развивающего компилятор для трансляции скриптов на языке Python в представление на языке C++, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython (используются штатные средства CPython для управления объектами). Обеспечена полная совместимость с актуальными выпусками Python 2.6, 2.7, 3.3 - 3.9. По сравнению с CPython скомпилированные скрипты демонстрируют в тестах pystone повышение производительности на 335%. Код проекта распространяется под лицензией Apache...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=56152


Содержание

Сообщения в этом обсуждении
"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 11:15 
Самая удобная штука чтобы поставлять свою питоновскую программу в бинарном виде.  

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 11:35 
но зачем, если есть Julia?....

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 13:57 
У этого языка противное название.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 14:38 
У питона с нулткой?.... Или у прекрасных женщин с именем Юлия?

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 14:48 
Так сразу видно -- жульё, если конечно не думать одним прекрасным местом.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 09:16 
Надо иметь русские мозги чтобы слово Julia - Юлия прочитать как Жульё.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 20:33 
Вообще-то слово из Европы пришло...

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Dozer , 15-Ноя-21 22:31 
На испанском - Хулия

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 22:56 
Страшно подумать, что может вообразить обычный русскоговорящий человек, услышав это имя впервые. Ужас!
Осталось только понять, какое всё это имеет отношение к программированию?

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено OpenEcho , 14-Ноя-21 20:47 
Как скомпилируете в бинарник на ней что нибудь, то обязательно похвалитесь здесь пожалуйста!

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 08:36 
А в чём, собственно, проблемы? Размер? Для серверных приложений это не проблема.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено OpenEcho , 16-Ноя-21 11:16 
> А в чём, собственно, проблемы?

В том, что Юлия, не компилится в бинарник своими core средствами.
Если вы знаете как сделать ELF бинарник без плясок с бубном (и без PackageCompiler модуля, который откровенно признаётся, что Julia "just-^BARELY^-ahead-of-time" compiled language, и далеко не всегда работающий как relocatable "app"), то буду признателен если поделитесь

> Размер? Для серверных приложений это не проблема.

Если платить не из своего кармана, то оно конечно, - у амазона много ресурсов



"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 16-Ноя-21 15:29 
PackageCompiler делает срез оперативки по коду/памяти. Собственно, какая вам разница из чего состоит бинарник?

ELF-бинарник сделать можно, но там вопрос с библиотеками. Если есть куча сторонних зависимостей, особенно с питоном, будет куча сторонних динамических библиотек и всего, что им нужно. То есть, собрать всё в один файл, в общем случае, невозможно. Если зависимостей нет, то да, PackageCompiler с шаблоном на С, где будет код загрузки прописан, соберёт единый исполняемый файл.

> Если платить не из своего кармана, то оно конечно, - у амазона много ресурсов

Диски стоят дёшево. А размер этого бинарника не будет больше, чем то, что потребуется в оперативке, срезом с которой оно создано (только по глобальным переменным). Оно в любом случае потребуется для работы программы, хоть при маленьком бинарнике, хоть при большом сразу.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 16-Ноя-21 16:46 
> PackageCompiler делает срез оперативки по коду/памяти.

Дамп что ли? Это даже при снятии конверта (защиты) считается халтурой. Ещё со времён Спектрума и MagicButton.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 16-Ноя-21 16:53 
сейчас даже "программист на питоне" халтурщиком не считается. А уж дамп с оперативки снять - вообще не проблема. Ну естественно, не чистый дамп. Трансляцию адресов необходимо обеспечить, чтобы потом загружаться правильно.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено OpenEcho , 16-Ноя-21 18:34 
> PackageCompiler делает срез оперативки по коду/памяти.
> Собственно, какая вам разница из чего состоит бинарник?

Есть языки, которые говорят что они "compiled ahead of time", такие каk программы на С, С++, Го...
а есть языки, которые говорят что они компилируемые, но переводят потом стрелки на зависимости что - не могут.

Язык либо может быть комилирующим, всегда, либо нет, без оговорок на "если", поэтому если Вы говорите, "а зачем сабжект когда, есть Юля?", то сделайте выводы сами, - слишком много "если", даже без сторонних зависимостей, Джулия, не есть true компилируемый язык, несмотря на вкусности, которые в нем есть, на нем далеко не всегда получется создать бинарник


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 16-Ноя-21 18:51 
А при чём здесь стрелки? Если всё пишете на Julia, она соберёт единый исходник. Если делаете вставки на PyCall, то что ей делать с обвязкой анаконды? Или если использована сторонняя библиотека с каким-нибудь куском на C++ и ресурсами в виде кучи файлов. Как их собрать то?.... На любом языке, если автор не собрал их сам.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено OpenEcho , 18-Ноя-21 15:21 
> А при чём здесь стрелки? Если всё пишете на Julia, она соберёт
> единый исходник. Если делаете вставки на PyCall, то что ей делать
> с обвязкой анаконды?

Я не говорил, что надо скомпилить с зависимостями !
Я говорю только исключительно о Джулии и ее только коде.
Она/он - не есть "compile ahead of time" комилятор.
Джулия использует LLVM JIT compiler.
Вы правда не понимаете разницы между  JIT и "compile ahead of time" комилятотор.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 18-Ноя-21 17:19 
> Вы правда не понимаете разницы между  JIT и "compile ahead of time" комилятотор.

Вам какая разница, если на выходе PackageCompiler выдаёт бинарник в переносимом формате?... Да, для того, чтобы его получить на JIT-компиляторе, надо предварительно запустить трассировку по всему коду, что PackageCompiler и делает, запрашивая точку входя для исполнения. Но сгенерированный машинный код, который на этот момент находится в оперативке, будет сброшен в исполняемый файл. И файл будет один.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено OpenEcho , 19-Ноя-21 03:59 
> и делает, запрашивая точку входя
> для исполнения. Но сгенерированный машинный код, который на этот момент находится
> в оперативке, будет сброшен в исполняемый файл. И файл будет один.

Вы когда с сотнями микросервисов столкнетесь (из своего кармана), то увидите разницу между native compiled program VS dump of JIT



"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Admino , 16-Ноя-21 05:13 
Ну это же не Rust, чтобы каждым бинарником хвалиться.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено 41 , 14-Ноя-21 11:45 
Строго говоря, ещё есть фиксированный двоичные файлы, которые вмещают в себя и интерпретатор, и скрипты. Но скорость выполнения соответствующая будет.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 13:06 
Спешу тебя огорчить они декомпилируются обратно в питоновский код вплоть до комментариев в коде. И их успешно можно достать и из py2exe и из cx_freeze и из чего угодно.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 12:52 
Если вас не пугает бинарник в полгига конечно. Питоновая программа в бинарном виде… Вы свернули куда-то не туда.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Ant , 14-Ноя-21 13:04 
с испльзованием Numpy подтягиваются интеловские библиотеки MKL... и размер становится 800+ Мб, тогда без UPX не обойтись.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 14-Ноя-21 15:06 
Точно, надо пожать файл, что бы наплодить ещё этих грязных страниц, а то 800+ Мб маловато.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 13:08 
Во первых не такие уж они и больше. Во вторых сейчас 2k21 и это никого не пугает.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено YetAnotherOnanym , 14-Ноя-21 14:11 
Изящно набросил. Жаль только, без особого эффекта.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 14:20 
>2k21

Сейчас 2021, а не 200021


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 15:20 
Ага расскажи это разработчикам вот этой игры https://ru.wikipedia.org/wiki/NBA_2K21

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 15:28 
Ты конечно вообще не шаришь. Есть фирма 2К sports, так что 2К это издатель игры.
Пруфы-пруфики: https://ru.wikipedia.org/wiki/NBA_2K_(%D1%81%...)

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 15:56 
И как же так получается что названия 2K–2K21 совпадают со следующим годом после выхода игры? И что характерно компания так делает с 2000 года когда она еще не называлась 2K. Может потому что еще 21 год назад всем нормальны людям было понятно что 2K=2000?

Давай следующее упражнение для твоего мозга WWE 2K14 https://ru.wikipedia.org/wiki/WWE_2K14 в каком году вышла?


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 16:34 
> совпадают со следующим годом после выхода игры

Влияние лунного света на рост телеграфных столбов. 2К тут НАЗВАНИЕ ИЗДАТЕЛЯ.
> Может потому что еще 21 год назад всем нормальны людям было понятно что 2K=2000

Именно! Но потом подросло поколение дегенератов, неспособных понять что 200021 != 2021.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 16:37 
>Давай следующее упражнение для твоего мозга WWE 2K14 https://ru.wikipedia.org/wiki/WWE_2K14 в каком году вышла?

В 2013-ом)


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 16:37 
Нигра с надписью "блейзухи" на футболке в центре обложки.
Безусловно, это прекрасный источник и пример для подражания.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 09:21 
Тебе надо вступить в партию демократов США - через год будешь уважать негров.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 16-Ноя-21 09:32 
Нет, спасибо.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 23:43 
> Если вас не пугает бинарник в полгига конечно

Их не пугает. Им же "поставлять", а не "использовать".


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Ant , 14-Ноя-21 12:59 
Компилируются ли Python-программ с PyQt, matplotlib, pandas и кучей других библиотек?

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 13:10 
Есть нюансы, например PyQt в абстракции connect надо явно указывать тип данных в сигналах. Еще есть по мелочи.  У меня был PySide и да не сразу как есть но после некоторых приседаний всё заработало.  А в негуевых либах у меня проблем не было.  

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено kai3341 , 14-Ноя-21 13:58 
>  Компилируются ли Python-программ с PyQt, matplotlib, pandas и кучей других библиотек?

Если не используешь флаг "follow-imports", то вопросов нет
Иначе необходимо добавить кучу "nofollow-import-to" и исключить сишные либы. Например, greenlet или pandas
А ещё бывает, что в проекте балуются динамическими импортами. Динамический импорт не отработает, если ты не вкомпилишь статически в бандл соответствующую библиотеку флагом "include-module"

Если у тебя проект объёмнее HELLO WORLD, то сборка в один бинарник -- плохая идея, оно просто не соберётся. Рекомендую бить на модули. Для того, чтобы декларативно описать сценарий модульной сборки, я запилил https://pypi.org/project/nuitkabs/ . Если nuitka сопоставима с gcc, то nuitkabs ближе к Makefile. Подрробнее в описании


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 15:51 
На pypi кстати есть такая опция можно написать описание к своему пакету и стороннему человеку будет понятно что пакет делает.  

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено kai3341 , 14-Ноя-21 17:34 
> На pypi кстати есть такая опция можно написать описание к своему пакету
> и стороннему человеку будет понятно что пакет делает.

Оно там есть, и намного полнее того, что я написал тут. Спасибо, КЭП


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 11:33 
Почему бы сразу не написать на с, а не натягивать глаз на глобус?

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 11:45 
Си надо еще осилить.
А тут можно буяк-буяк и вперед пользуйтесь.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 11:47 
А что там осиливать? Язык высокого уровня как никак.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено KhabMan , 15-Ноя-21 05:56 
Ну да. То, что это не ассемблер, делает язык простым, конечно))
Тут кстати парадокс получается. Ассемблер сложный потому, что он простой

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 15-Ноя-21 07:37 
Ассемблер простой, когда понятно как процессор работает. Для Си execution environment формализован, т.е. более-менее понятно, как работает. Парадокс скорее в том, что остальные "очень простые" императивные языки высокого уровня симулирую машину Тьюринга - некую бесконечную хтонь.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 11:46 
Потому что... Да!

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 11:56 
Почему нельзя, многие так и делают. На чем писать каждый сам решает, этим вот захотелось так.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 13:13 
Наоборот зачем эти полумеры, лучше сразу писать на Электроне.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено BrainFucker , 14-Ноя-21 13:32 
> Почему бы сразу не написать на с,

Если уж и менять питон на что-то, тогда уж лучше на Nim хотя бы.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 10:23 
На Rust же!

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 14:56 
Эй, дырка!

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 23:00 
Какие у тебя любопытные ассоциации. Как говаривала одна очень известная личность, кто как обзывается, тот так и называется.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 16-Ноя-21 00:49 
Сразу видно, что тебя минуснули нешарящие :) Nim - офигенная штука, кстати.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 18:24 
Потому что на питоне я напишу, сдам заказчику, получу вознаграждение, заказчик получит прибыль, программа со временем устареет и все будут довольны. А в это время ты все еще будешь писать ее на своем си.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 19:25 
А если писать на раст то тоже будет продолжать писать, но с чувством безопасности.  

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 23:42 
Я на Delphi напишу в два раза быстрее, красивее и фичастее, чем ты на своем питоне. Но тебе ещё придётся переписывать все с нуля при появлении 3.10

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 09:41 
Не напишешь. Delphi - язык со статической типизацией - больше усилий для написания кода. Компилируемый. Тоже временные затраты - отлаживать дольше, нет возможности быстро запускать отдельные куски кода. По поводу фичастости - это вообще шутка неудачная была? Где Delphi, а где - фичи. Впрочем, может что-то изменилось с тех бородатых времен, когда я смотрел на Delphi.
И ещё я не сказал про гораздо более богатый набор библиотек для Питона. Теперь говорю. Delphi до Питона в этом плане, как от Земли до Луны.
И нет, при появлении Питона 3.10 ничего переписывать не придётся.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено anonymous , 15-Ноя-21 11:32 
> со статической типизацией - больше усилий для написания кода.

С чего вы взяли, что усилий больше? (а не наоборот)

> Тоже временные затраты - отлаживать дольше

С сего вы взяли? Наоборот проще отлаживать код со внутренними гарантиями.

> нет возможности быстро запускать отдельные куски кода

Unit-тесты уже отменили?


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 22:31 
> С чего вы взяли, что усилий больше? (а не наоборот)

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

> С сего вы взяли? Наоборот проще отлаживать код со внутренними гарантиями.

Смотрите выше. Если уж так необходим контроль типов, в Питоне есть аннотация типов. Ну и соответствующий инструментарий для контроля.

> Unit-тесты уже отменили?

Их специально писать надо. Но они не всегда нужны: в мелко-средних проектах - не особо. В крупных - да.

Про количество библиотек для Питона и Дельфи и покрываемых ими юзкейсов вы промолчали почему-то. Почему?


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 13:28 
А почему же тогда с 2.х на 3.х переход был таким, что около 15-20 лет наработок превратилось в тыкву?
Какие такие крутые билблиотеки? Delphi умеет в БД (FireDAC), в графику (включая DirrectX и OpenGL), в сеть (Indy), в dll, в TouchScreen, в Windows/Linux/Android/MaxOS. Время компиляции - секунды. Дебаг вообще смешно. Там рантайм дебаг, хочь пошагово, хочь - по брейк поинту, хоч - Run to Cursor. И в стек посмотреть можно и в регистры CPU и даже в Thread.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 15:53 
Сейчас бы сравнивать версии 2/3 с 3/3.10

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 22:51 
Дельфи не умеет в линейную алгебру, символьную математику, в машинное обучение. Библиотеки для Питона (написанные или на Фортране, или на C) - умеют. Питон в данном случае сильно упрощает жизнь учёным (они не профессиональные программисты, а работу делать надо).

Питон умеет в скриптование - он интерпретируемый язык, хотя можно уже и компилировать. Дельфи - не умеет.

Ещё одна сфера Питона - прототипирование. Наваял скелет, стабилизировал API - и давай на чём-то ещё переписывать, более строгом и быстром. Иной раз существенно экономит время.

Есть также веб. Средне-мелкие сайты - его стихия, хотя есть и конкуренты, конечно. Про сайты на Дельфи ничего не слышал. Может не там смотрел.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 17-Ноя-21 21:30 
Ну, не ваша беда, что вы плохо знаете делфи. В определённый этап своей жизни нужно было сделать выбор и вы его сделали правильно. Популярность + деньги. Но это не означает, что делфи не умеет в алгебру (math) в скрипты (Pascal script), Web (сам тоже не видел, но в компонентный базе ВСЕ для этого есть), вот ml похоже действительно не конёк паскаля. А вот учёные, отлично с MathLab справлялись, по крайней мере теплофизики (ни строчки кода знать не нужно)

"Выпуск Nuitka 0.6.17, компилятора для языка Python"
Отправлено Прохожий , 18-Ноя-21 00:59 
> Ну, не ваша беда, что вы плохо знаете делфи.

Полностью согласен. За Дельфи много не платят. Вакансий тоже, вроде, немного. Ну и язык ничем особо не выдающийся, скучный язык. Так что вы правы - совершенно не беда. :)

> Но это не означает, что делфи не умеет в алгебру (math)

Я имел ввиду ЛИНЕЙНУЮ алгебру (векторы, матрицы, SVD, PCA и подобные вещи). А не просто синус, косинус, экспоненту и прочие банальности.

А в символьную математику Дельфи умеет? В Питоне sympy за это отвечает, например.
А во временные ряды (pandas в Питоне)?

> В определённый этап своей жизни нужно было сделать выбор и вы его сделали правильно. Популярность + деньги.

Не угадали. Питон я в принципе не рассматриваю, как способ заработать на жизнь. Это так, для души. Небольшой домашний проект по обработке сигналов в режиме online. Ну и на работе - один из инструментов, причем не основной.

> А вот учёные, отлично с MathLab справлялись, по крайней мере теплофизики (ни строчки кода знать не нужно)

Они-то справлялись, конечно. Но во что это обходилось работодателю? Лицензии сколько-сколько стоили?


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено пох. , 19-Ноя-21 12:35 
> Web (сам тоже не видел

это тебе повезло что не видел. Мы такого монстра образца примерно 1998го года - asp на дельфях, напи...нарисованное мышекликом по готовым модулям человеком, который ничего не понимал ни в http, ни в программировании - до сих пор не можем разобрать.

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


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Myyx , 15-Ноя-21 10:18 
это в собранной то в бинарник программе?

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Брат Анон , 15-Ноя-21 12:10 
#яснопонятно. В отладчики мы не умеем и даже не слышали. Впрочем, для этого есть тестирование (см. пункт выше).

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 23:17 
Потому что возиться с компиляторами, отладчиками, линковщиками, указателями, макроснёй и прочей х-тенью полувековой давности мало у кого есть желание среди нормальных современных людей. До некоторых особо одарённых никак не дойдёт, что идеальное программирование - это когда компьютер понимает мысли человека, а не когда человек насилует свой мозг, чтобы разобраться в том, что нужно компьютеру.

Си, кстати, пока никуда не делся. Однако же, надеюсь, в относительно скором будущем его всё-таки похоронят более современные и удобные языки. Процесс уже начался, кстати. Но луддиты упорно стараются не обращать на него внимания, пряча голову в песок, как тот страус, испугавшийся чего-то ранее невиданного. А поезд прогресса тем временем проходит мимо. Ту-ту-у....


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 18-Ноя-21 15:01 
Сказочный человек

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 18-Ноя-21 23:05 
Вы впервые в жизни увидели своё отражение в зеркале? Гм, забавно.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Урри , 14-Ноя-21 14:07 
> Оптимизация пока применима только к коду, компилируемому при помощи GCC.

Подскажите им, что для clang оптимизация включается так же - дописать "-O3" к командной строке.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 14:22 
-O4 уже есть.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 08:02 
В статье речь совсем не про О-шки...

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 14:31 
Пго есть только у гцц, насколько я знаю. В том числе со сбором информации через автопрофилировщик, но прогнать тесты более актуально. Примерно с гцц-9 пго юзать одно удовольствие, в генту можно любой пакет собрать с пго (правда вручную, при обновлении придётся подменять флаги опять). на практике это конечно пара процентов, но для -O3 разница в скорости запуска и исполнения до 60% доходит (или около того). Вообще, на сегодня нет никакого смысла использовать шланг, раньше он был полезен дополнительными проверками и читаемыми сообщениями об ошибках, но с тех пор гцц улучшили. По скорости компиляции гцц тоже лучше (шланг замедлили основательно).

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено анонн , 14-Ноя-21 20:48 
> Пго есть только у гцц, насколько я знаю.

https://releases.llvm.org/4.0.0/tools/clang/docs/UsersManual...
https://clang.llvm.org/docs/UsersManual.html#profiling-with-...



"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 21:45 
У меня не получилось. В gcc тоже пго было сто лет назад, но до 9 оно было через одно место. Свой софт можно было с пго собрать обложив скриптами, но вот так чтобы любую прогу собрать добавив 2 ключа -- нет.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 14:21 
Отлично, ещё бы в дебчике питонятину откомпилять.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 14:35 
Это ничего не даст. Компиляция сабжем только незначительно ускоряет запуск и больше ничего. Нивелируется недостатками в виде жжора памяти и дополнительным временем на чтение с диска.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено kusb , 14-Ноя-21 15:30 
Странно, не скомпилированный код же по идее должен тратить такты на обдумывание интерпретатором каждой команды?

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 14-Ноя-21 16:12 
Хороший вопрос.

$ cat loop.py
#!/usr/bin/python3.9

import time
t0= time.time()
print("Hello")
j = 0
for k in range(0,10):
    for i in range(0,50000000):
        j = i - j
    j = j + k
t1 = time.time() - t0
print("Time elapsed: ", t1)

$ ./loop.py
Hello
Time elapsed:  88.54895782470703

$ nuitka3 --run loop.py
[...]
Hello
Time elapsed:  49.21110701560974



"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 14-Ноя-21 16:20 
Ещё немножко этих интерпретаций

$ cat loop.ref
#!/bin/refal

Go = <цикл-1 0 0>;

цикл-1 {
  10 ?k = ?k;
  ?k ?j = <цикл-1 <?k + 1> <<цикл-2 0 0> + <?j + ?k>>>;
}

цикл-2 {
  50000000 ?j = ?j;
  ?i       ?j = <цикл-2 <?i + 1> <?i - ?j>>;
}

$ time ./loop.ref

real    0m51,589s
user    0m51,579s
sys    0m0,007s



"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 09:01 
Кстати, pypy3 loop.py даёт 1.259338617324829 сек.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 15-Ноя-21 10:28 
Спасибо. Сейчас протестирую. Компилируется это pypy3 дольше чем MLton, сразу видно, крутая штука.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 15-Ноя-21 11:02 
> Кстати, pypy3 loop.py даёт 1.259338617324829 сек.

На той же машине, где python3.9 давал 88.54895782470703
а nuitka3 -- 49.21110701560974

$ pypy3 loop.py
Hello
Time elapsed:  1.1507835388183594

Теперь другой вопрос: а зачем nuitka3, когда есть pypy3?


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено abababab , 16-Ноя-21 13:50 
> Теперь другой вопрос: а зачем nuitka3, когда есть pypy3?

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


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 17-Ноя-21 05:44 
А какую задачу это решает? Скрыть исходный текст скрипта от посторонних глаз? Или Python не позволяет складировать всё нужное в одну папочку и оттуда запускать?

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 09:53 
А где print("Hello Word")? Где измерение времени средствами языка? Про pypi тебе уже написали.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 09:56 
pypy

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 15-Ноя-21 10:03 
> А где print("Hello Word")?

print("Hello")

> Где измерение времени средствами языка?

import time
t0= time.time()

print("Time elapsed: ", t1)

> Про pypi тебе
> уже написали.

Вы и вопрос не видели, на который я отвечал?


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 10:06 
Я твой скрипт на рефале имеешь ввиду. Мог бы и догадаться.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 10:07 
имеешь -> имел

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 15-Ноя-21 10:12 
> Я твой скрипт на рефале имеешь ввиду.

А зачем? Включающий время трансляции результат вполне устраивает.

>  Мог бы и догадаться.

Догадаться, зачем сообщение про Рефал было написано в ответ на Питон?


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 10:16 
1. Затем, что затраты на вывод - они не бесплатные. На измерение времени - тоже.

2. Потому что на смартфоне отвечаю, промахнулся немного.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 15-Ноя-21 10:18 
А затраты на чтение исходника и его семантический разбор?


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 10:27 
Что про pypy скажешь? Ты как-то в упор не замечаешь его почему-то. Почему?

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 15-Ноя-21 10:29 
Потому что pypy собирается в один поток и я всё еще жду. Впрочем, оно не имеет отношения к вопросу, на который я отвечал.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 10:37 
Вопрос был об эффективности компилятора. Ты его сравнил с Рафал. Рафал победил с большим выигрышем. Но почему? То ли цикл просто проигнорировал, например, потому, что переменная больше никак не используется, то ли компилятор пока сырой.
Дождёмся твоих результатов с pypy.
А есть ещё numba, кстати.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 10:39 
Рафал ->  рефал

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 15-Ноя-21 11:19 
> Вопрос был об эффективности компилятора.

В #60 я сравнил python3.9 и nuitka3. Результат 88.5 и 49.2. Что странно для компилятора. В первом приближении ожидается на порядок лучше.

> Ты его сравнил с Рафал. Рафал победил
> с большим выигрышем.

51,589s. Выигрыш только у python3.9. Результат примерно как у nuitka3.

> Но почему? То ли цикл просто проигнорировал, например,
> потому, что переменная больше никак не используется

Тест Питона я не писал, а на днях увидел его сравнение с паскалем http://вече.программирование-по-русски.рф/viewtopic.php?f=9&t=470
ну и сравнил заодно. На Рефале вообще так не пишут, мне пришлось специально сохранить семантику циклов. Результат, естественно, проверял -- его возвращает функция цикл-1 в первом предложении (просто здесь эту информацию посчитал лишней). Если точку входа переименовать в go (а не Go) то он выводится:

$ time ./loop.ref
Поле зрения:
250000045

real    0m50,977s

$ ./loop.py
Hello
Time elapsed:  86.47002148628235
j =  250000045

> то ли компилятор пока сырой.

Это мягко сказано. Аноним (49) сообщил о медленной скорости как обыденности.

> Дождёмся твоих результатов с pypy.
> А есть ещё numba, кстати.

$ pypy3 loop.py
Hello
Time elapsed:  1.130962610244751
j =  250000045


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 22:23 
Спасибо за ответ. Значит, не судьба этому компилятору пока быть быстрым. Продолжаем пользоваться pypy. Вполне возможно, этот компилятор пишут, чтобы руку набить, не преследуя практические цели.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 16-Ноя-21 12:48 
Думается, авторам следовало бы обозначить, что проект исследовательский или что-то в этом роде. Когда публиковал тесты, ожидал, что меня начнут тыкать носом в ключи, которые надо было передать компилятору, что бы результат работал быстро.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено DyadyushkaAU , 16-Ноя-21 13:34 
Сомневаюсь (хотя мой опыт ограничен), что наличие какого-либо ключа способно увеличить скорость работы откомпилированного кода в десятки раз. Часто речь идёт о десятке-другом процентов, не более.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 10:43 
Не имеет. Но уже просто интересно.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Прохожий , 15-Ноя-21 10:30 
Предположим, что они одинаковы. Или есть сомнения?

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено n00by , 15-Ноя-21 11:28 
Они далеко не одинаковы (1 вызов write() против open() + 6-ти mmap(), одна из которых приводит к чтению с накопителя, не считая собственно разбора), но на фоне 50 сек исполнения - меньше погрешности.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 15:23 
Да только откомпилить для каждого дистрибутива, версии подверсии, под каждое ядро, UEK. И не факт что оно будет один в один работать так же как задумано на обычном питоне.  

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено all_glory_to_the_hypnotoad , 14-Ноя-21 18:41 
> ... повышение производительности на 335%

Т.е. всего лишь в 3.0-3.5 раз. Питон во столько можно ускорить просто оптимизациями гогнокода. Ради такого мизерного прироста компиляция не нужна.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 14-Ноя-21 19:32 
3 это в синтетике, на самом деле меньше. Подсказка: попробуй откомпилить джангу и когда после танцев это получится узнай что можно использовать в два раза меньше виртуалок для той же производительности.  

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Vkni , 14-Ноя-21 22:09 
> Т.е. всего лишь в 3.0-3.5 раз. Питон во столько можно ускорить просто оптимизациями гогнокода. Ради такого мизерного прироста компиляция не нужна.

Компиляция, всё-таки, бесплатна по сравнению с переписыванием говнокода.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено all_glory_to_the_hypnotoad , 14-Ноя-21 22:36 
Компиляция не бесплата т.к. для неё нужно навернуть инфраструктуру, которой в обычной питонячке нет

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Аноним , 15-Ноя-21 08:44 
Это только если ты операционную системы решил скомпилировать.

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Vkni , 15-Ноя-21 20:03 
> Компиляция не бесплата т.к. для неё нужно навернуть инфраструктуру, которой в обычной
> питонячке нет

Она сильно беспланее переписывания говнокода на динамически типизированном языке. Многие питонисты кивают на магию тестов, но сложно представить, что говнокод окружён мегатестами. Кстати, unit-тесты придётся тоже переписывать, т.к. архитектурку придётся подровнять.


"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено Щ , 15-Ноя-21 10:35 
Это вы описали повышение производительности на 235%

"Выпуск Nuitka 0.6.17, компилятора для языка Python "
Отправлено xor , 15-Ноя-21 14:04 
Вы как-то используете наработки shed skin?