The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск Nuitka 0.6.0, компилятора для языка Python

28.09.2018 22:58

Подготовлен выпуск проекта Nuitka 0.6.0, в рамках которого развивается компилятор, позволяющий транслировать скрипт на языке Python в представление на C++, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython (используются штатные средства CPython для управления объектами). Обеспечена полная совместимость с актуальными выпусками Python 2.x и 3.x. По сравнению с CPython скомпилированные скрипты демонстрируют в тестах pystone повышение производительности на 312%. Код проекта распространяется под лицензией Apache.

В новой версии предложены значительные оптимизации производительности. По сравнению с прошлым выпуском прирост производительности относительно CPython вырос с 258% до 312%. Обеспечена базовая поддержка вывода Си-типов, включая предоставляемые в Nuitka типы-обвязки int и str, а также улучшено взаимодействие с кодом на языке Си. Внесены изменения в интерфейс командной строки и изменены некоторые значения по умолчанию.

  1. Главная ссылка к новости (http://nuitka.net/posts/nuitka...)
  2. OpenNews: Выпуск Pyston 0.6, реализации языка Python с JIT-компилятором
  3. OpenNews: Выпуск Cython 0.27, компилятора для языка Python
  4. OpenNews: Релиз PyPy 6.0, реализации Python, написанной на языке Python
  5. OpenNews: Релиз Python-компилятора Shed Skin 0.8
  6. OpenNews: Выпуск Pyston 0.6, реализации языка Python с JIT-компилятором
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49362-nuitka
Ключевые слова: nuitka, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (44) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 23:04, 28/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    https://shedskin.github.io/
     
     
  • 2.5, Аноним (5), 23:38, 28/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    2.4-2.6? 10 лет назад было бы актуально
     
     
  • 3.45, я (?), 04:18, 30/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    для ансибла и кучи другого, начатого писаться 10 лет назад до сих пор актуально
     

  • 1.4, Константавр (ok), 23:20, 28/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    А ежели питоновский скрипт использует сторонние либы какиенить? Ну, там, PyQt, или ещё какие, это же не сработает. да?
     
     
  • 2.13, Космополитан (?), 03:08, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Всё работает, все импортируемые либы компилируются точно также как и основной скрипт
     
     
  • 3.30, Константавр (ok), 10:41, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда это какая-то магия. А какиенить биндинги на опенцыви тоже работают? Надо попробовать.
     
     
  • 4.31, Космополитан (?), 11:49, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я лично проверял pyqt5, opencv, numpy, lxml, всё работает безупречно
     
  • 2.22, Аноним (22), 08:57, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Зачем тащить Qt из питона? Пишите сразу на C++

    В любом случае, питоно-нашлёпки обрубают возможность использование наследования классов Qt.

     
     
  • 3.29, Константавр (ok), 10:39, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для того, чтобы написать простенький скрипт не надо контроллировать выделение и очистку памяти и всю эту сишную галиматью (очень нужную и важную, но не в данном случае). Вот надо мне скрипт, но с мордой. нафиг мне вся эта цэпэпэйшина? Правда, и Нуитка тоже не нужна, мне просто было интересно. Но вместо ответа я получил классику жанра.
     
     
  • 4.32, Аноним (32), 12:36, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Для того, чтобы написать простенький скрипт не надо контроллировать выделение и очистку памяти и всю эту сишную галиматью

    В современном C++ для простеньких и средненьких скриптов делать этого тоже не надо. C98++ ≠ C++!

     

  • 1.6, Аноним (6), 23:52, 28/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Для Питона это. Для Руби - Кристал. А для JS что-то такое есть?
     
     
  • 2.7, Аноним (7), 00:04, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    js быстрее пайтона, поэтому разница с нативом не будет настолько значительной, но уровень поддержки существующего кода заметно снизится
     
     
  • 3.9, Аноним (9), 00:09, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вы делали тесты с pypy ?
     
  • 3.34, Аноним84701 (ok), 12:59, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > js быстрее пайтона,

    И мягче, ага. А реализации еще и фиолетовее.
    > поэтому разница с нативом не будет настолько значительной,

    Так вот оно все как на самом деле!
    А глупый гугл развивает свой JS-движок V8 (с JIT)  уже более десятка лет (обошелся гуглу, скорее всего, совсем не в один десяток миллионов). Как впрочем мозилловцы и МС тоже стараются не сильно отставать (и там тоже совсем не полу-студенческие/академические реализации с соотв. "бюджетом", как у того же PyPy).
    Ну так что взять с недалеких корпораций, сами виноваты -- забыли проконсультироваться на опеннете :)

     
     
  • 4.36, Аноним (6), 15:38, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ээ? Вы вообще поняли, что я не обсираю JS, а наоборот?
    Сравниваем как раз скорость возможного натива и существующих JIT (который всё-таки медленнее натива), так что о чем речь вообще?
     
     
  • 5.39, Аноним84701 (ok), 17:20, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ээ? Вы вообще поняли, что я не обсираю JS, а наоборот?

    Да, отлично понял. А  вы что, решили что я его "защищаю" или нахваливаю? Отнюдь.

    > Сравниваем как раз скорость возможного натива и существующих JIT (который всё-таки медленнее
    > натива), так что о чем речь вообще?

    Речь о сравнении теплого с мягким же - спецификаций ЯП, вместо их конкретных реализаций.

    Ну и обычном нахваливании ЖСниками предмета своего обожания -- при этом, очень тактично умалчивается, что шустрость появилась только после вбухивания миллионов в реализацию JIT:
    https://web.archive.org/web/20080608014619/http://shootout.alioth.debian.org:8

    https://web.archive.org/web/20060924085748/http://shootout.alioth.debian.org/g



    1.0 D Digital Mars #2 0.66 13,116 665
    1.1 C gcc #2 0.73 12,984 712
    1.2 Lisp SBCL 0.83 61,332 815
    1.6 C++ g++ #2 1.06 14,464 775
    1.7 Pascal Free Pascal #2 1.10 13,032 729
    1.7 OCaml 1.15 44,796 524
    1.9 Clean 1.28 43,340 818
    2.2 C++ g++ 1.45 25,404 555
    2.5 BASIC FreeBASIC #3 1.64 13,184 620
    2.6 SML MLton 1.74 39,788 821
    3.7 C# Mono #2 2.44 24,976 711
    4.1 Python #3 2.69 45,528 272
    4.1 Eiffel SmartEiffel 2.72 53,144 590
    ...
    52 Erlang HiPE #2 34.37 319,084 436
    54 Haskell GHC 35.54 486,224 478
    110 JavaScript SpiderMonkey 73.24 152,276 289


     
     
  • 6.40, Аноним (6), 19:53, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    1. Сравниваем конкретные реализации: Питон, официальный обыкновенный vs Node.js/V8.
    2. При чем тут какое-то умалчивание и какая разница, кто что вбухал, если оно на текущий момент именно такое?
    Искренне не понимаю, какая нам сейчас разница, что там было в 2006 или 2008. Или вбухивание денег в технологию ставит на ней крест?
     
     
  • 7.41, Аноним84701 (ok), 20:48, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > 1. Сравниваем конкретные реализации: Питон, официальный обыкновенный vs Node.js/V8.

    Питон - это ЯП. Есть СPython (типа, эталонная реализация), PyPy, Jython, IronPython, Stackless? Какую объявить официальной и на основе чего?

    > 2. При чем тут какое-то умалчивание и какая разница, кто что вбухал, если оно на текущий момент именно такое?

    При том, что  если JS "разгоняется" только за многие тонны бабла, то о каких-то особых преимуществах или "заслугах" самого языка (точнее, его структуры/семантики) в этой области ("быстродействие" ака "скорость") вряд ли можно говорить серьезно?

    > Искренне не понимаю, какая нам сейчас разница, что там было в 2006
    > или 2008. Или вбухивание денег в технологию ставит на ней крест?

    С таким подходом можно объявить Теслу первым в мире автомобилем, позволяющим выходить в космос. А еще самым быстрым среди атмосферников -- развивает вторую космическую, как-никак …


     
     
  • 8.43, Аноним (6), 23:15, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Странный вопрос Разумеется, официальная эталонная, самая распространенная, ко... большой текст свёрнут, показать
     
  • 4.49, Аноним (49), 10:47, 01/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    вот именно по этому смысла нет. Компилятору будет очень сложно обогнать гугломазиловский jit который они десятилетиями развивают.
     

  • 1.8, Аноним (9), 00:08, 29/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А мне интересно, можно ли nginx подключить к такому бинарю web-сервера.
     
     
  • 2.11, kai3341 (ok), 02:10, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А мне интересно, можно ли nginx подключить к такому бинарю web-сервера.

    Идея прикольная, реальная, но бесполезная. Узкое место web-приложения -- БД (проблему усугубляет еб***ная ORM. Сначала мы вводим абстракции, а потом героически выпиливаем) и сокет

     
  • 2.25, BrainFucker (ok), 09:18, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А мне интересно, можно ли nginx подключить к такому бинарю web-сервера.

    Ну простейший вариант CGI, там пофиг на чём написано, хоть на баше. FCGI наверное тоже можно. Интересно Flask и Django компилятся?

     
     
  • 3.33, Аноним (33), 12:41, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я как то видел, код админки django обработанную нюткой, но версия старая запускать не пробовал
     

  • 1.12, Аноним (12), 03:02, 29/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Судя по бенчмаркам, довольно быстрая штука.
     
  • 1.14, Космополитан (?), 03:11, 29/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Кстати вы знали что автор либы немец, а его жена русская, и либа звучит как "нютка" и посвящена его жене Анне, которую ласково зовут Анютка, сокращённо это будет нютка, но на английском языке это сложно написать поэтому написано нуитка
     
     
  • 2.23, BrainFucker (ok), 09:15, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > но на английском языке это сложно написать поэтому написано нуитка

    Niutka было бы ближе по звучанию.

     
  • 2.28, macfaq (?), 09:29, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Логичнее было бы увидеть Niutka.
     
     
  • 3.38, trunk (?), 17:05, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А ей понравится , что она "ни утка" ?
     
     
  • 4.47, macfaq (?), 20:15, 30/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А ей понравится , что она "ни утка" ?

    Главное, что не гусыня.

     

  • 1.16, Аноним (16), 06:28, 29/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что там тредами? Все так же печально как в самом Python? Совместимость жеж)))
     
  • 1.17, Грусть (?), 07:58, 29/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Си-типов, включая int и str
    > str

    Шо?

     
     
  • 2.19, Аноним (19), 08:38, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Nuitka предоставляет кучу внутренних типов, которые используются для формирования кода на Си.

    constant_builtin_types = (
        int,
        str,
        float,
        list,
        tuple,
        set,
        dict,
        slice,
        complex,
        xrange,
        NoneType,
    )

     
  • 2.21, Аноним (21), 08:56, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    There is a lot of ground to cover, with more C types to come, and all of them needing specialized helpers. But as soon as e.g. int, str are covered, many more programs are going to benefiting from this.
     

  • 1.20, Аноним (21), 08:44, 29/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А может проще сразу на C++ написать? Так-то питон гораздо уродливее и костыльнее
     
     
  • 2.24, A.Stahl (ok), 09:17, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну кто-то не знает плюсы.
    Я, например, не знаю Яву (и не хочу знать), поэтому вынужден писать под Андроид на Qt+C++. Хотя в терминах Андроид это жуткий костыль.
    Вот и эта штука для питонистов которым не нужен С++.
     
  • 2.27, пох (?), 09:28, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    так пишите, кто не дает? Только вы ж ничего не напишете, кроме ху%ловрот.

    а эта хрень для тех, кто переписывать весь мир на c++ не собирается, а конкретное уже написанное глюкало хочется сделать попроворнее.

     
  • 2.37, Аноним (6), 15:40, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вы же не предлагаете писать ТОЛЬКО на C++ или ТОЛЬКО на *любой компилируемый язык*?
     
     
  • 3.44, Аноним (21), 23:41, 29/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я написал то что написал, фантазии оставьте при себе
     
  • 2.48, topin89 (?), 01:02, 01/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если это не троллинг, то разверни мысль. В каких ситуациях код на C++ красивее и практичнее? Для всякой битовой арифметики я ещё могу согласиться. А в остальном, доказательства или трепло.
     

  • 1.26, Аноним (26), 09:20, 29/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Это c++ уродливый. А python cool.
     
     
  • 2.51, Аноним (51), 21:04, 03/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Просто попробуйте Golang и все пройдет.
     

  • 1.42, Аноним (42), 22:56, 29/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Для того что бы возненавилить JS или Python, достаточно выучить любой вменяемый компилируемый язык, сделать что-то сложное и поддерживать его несколько лет...
    Но тем не менее стоимость таких разработок (как минимум на первом этапе) говорит в пользу этих "недоязыков"...
    Так что как не прискорбно, от этого не уйти и приходиться пилить всякие нуитки и джиты ...
    В общем респект и уважуха автору)
     
     
  • 2.50, a3k (?), 13:17, 01/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Так что как не прискорбно, от этого не уйти и приходиться пилить всякие нуитки и джиты ...

    Это нужно для матана, где прототипы часто пилятся на Python. Если после этого его не нужно будет перепиливать на какой-нибудь C++ - вообще счастье.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру