Выпущен (http://nuitka.net/posts/nuitka-release-043.html) компилятор для языка Python - Nuitka 0.4.3 (http://nuitka.net/), позволяющего транслировать скрипт на языке Python в представление на C++, которое можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython (используются штатные средства CPython для управления объектами). Возможна компиляция как библиотек так и непосредственно исполнительных файлов, в том числе и рекурсивная.
В текущем выпуске поддерживаются версии языка Python 2.6, 2.7, 3.2 и 3.3. Компиляция выполняется путем трансляции кода в С++ и последующей передачи компилятору С++, таким как g++, MinGW g++, clang. Поддерживаются операционные системы Linux, MacOS X, Windows (32bit), FreeBSD, NetBSD и аппаратные платформы x86, x86_64 и arm.В новой версии:
- Добавлена поддержка компилятора Microsoft Visual C++.- Добавлена поддержка NetBSD.- Многочисленные улучшения в поддержке Python 3.3.- Компилятор выдает предупреждение, если компилируемый файл может быть использован как модуль и как основная программа, например с конструкциями вида
<font color="#461b7e">
if __name__ == "__main__":
main()</font>
- Добавлена опция "nuitka --execute module", аналогичная python -c "import module";- Внесены новые оптимизации производительности.URL: http://nuitka.net/
Новость: http://www.opennet.me/opennews/art.shtml?num=36963
Хм. Попробую-ка скормить ему скринлеты :) Интересно, что из этого выйдет :)
Жду результатов, бро.
Пока протестировал на 3 скринлетах:
NowPlaying собирается, но работать отказывается.
ClearWeather успешно собирается и работает.
+ Сравнивал по потреблению памяти. Скомпиленный кушает на 300 kb меньше.
ClearCalendar срёт ошибками, связанными с путями. Говнокод детектед.Короче, нужно больше тестов! :)
*голосом GlaDOS* Не могу не согласиться с данным умозаключением.
> Короче, нужно больше тестов! :)Короче нужно описать как собирал.
> Компилятор выдает предупреждение, если компилируемый файл может быть использован как модуль и как основная программаа зачем Компилятор это предупредение выдаёт?
что именно должен сделать программист (который увидил это предупреждение) чтобы УДОВЛЕТВОРИТЬ это предупреждение Компилятора?
Ну хоть читать-то вы можете? По ссылке все расписано - что и как
>а зачем Компилятор это предупредение выдаёт?В 0.4.4 планируется новая опция --portable, т.е. можно будет делать носимые на флешке программы например на PyQt, в рамках этого улучшения будут собираться в отдельную папку динамические библиотеки .so, в рамках такой сборки модулей конструкции с __name__ , являющиеся нормальной практикой в модулях python, будут игнорироваться, так вот чтобы не запутаться в сборке (например нужно несколько исполняемых файлов и чтобы они собрались в .so) нужны такие предупреждения.
Только что попробовал.
Мой старый исходник с GoI съел, и не подавился.
Годно. Нужно.
>libpythonДесятое правило Гринспуна в полный рост.
Как там с бенчмарками? Автор чегой-то темнит на эту тему - типа оптимизацией еще не занимался, поэтому бенчмаркить не буду
> Как там с бенчмарками? Автор чегой-то темнит на эту тему - типа оптимизацией еще не занимался, поэтому бенчмаркить не будуПрошлую новость посмотри, будут тебе бенчмарки.
> В текущем виде проект уже обеспечивает заметное повышение производительности итогового исполняемого файла по сравнению с CPython (опережение на 258% в тесте pystone).Это? Вот что говорит Гвидо на тему:
This project looks completely misguided. The talk focused on the trivialities of mapping Python to C++ rather than on the interesting problems to be encountered when trying to optimize Python while maintaining its extremely dynamic semantics. Also the benchmarking effort is laughable; pystone is not to be taken seriously (only exercises a tiny part of the language) and pybench does microbenchmarks, which are optimized away. You should try the "real-world" benchmarks from the PyPy and Unladen Swallow projects. And what is the size of the generated code? (E.g. how big would the binary for the entire standard library be?) In your blog, please use less boring subjects than "version x.y.z released".
Reply | Guido van Rossum, 04 July 2012 #
>Это?Да
> Unladen Swallow ... Guido van Rossum, 04 July 2012
Самому не смешно? С тех пор гугл похоронил Unladen Swallow, а Гвидо с гугла свалил в дропбокс. А проектик начатый как хобби, живет, развивается, пока растет вширь, обеспечивая компиляцию на всё большем количестве платформ и компиляторов, и уже сейчас представляет неплохую замену для различных py2exe cx_freeze. Оптимизации запланированы следующим этапом после обеспечения кроссплатформенности, а она практически уже есть.
Кроме как сокрытие исходников (цель сама по себе сомнительная), этот компилятор какие-либо реальные преимущества даёт?
> Кроме как сокрытие исходников (цель сама по себе сомнительная), этот компилятор какие-либо
> реальные преимущества даёт?Уже сейчас можно портировать программы на платформы где нет установленного python с необходимыми для работы библиотеками. С появлением оптимизаций выполнения кода (а их 6 видов, которые Кай (разработчик) запланировал добавить) - получаем совсем годную вещь.
Мне интересно, от GIL оно избавляет или нет?
Интересно было бы попробовать portage этой вашей нюткой собрать...
кстати да.
реально работает даже на умеренно стремных либах. офигеть