The OpenNET Project / Index page

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

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

26.10.2016 23:53

Доступен выпуск Cython 0.25, компилятора для языков Python и Cython. Язык Cython является расширенным вариантом языка Python, нацеленным на упрощение интеграции с кодом на языке Си и позволяющим создавать расширения на языке Си для проектов на языке Python так же просто, как писать код на Python. Cython расширяет возможности Python средствами для прямого вызова функций на языке Си, поддерживает определение переменных с типами языка Си и позволяет компилировать итоговый код на языке Cython в представление на языке Си, которое затем собирается штатным системным компилятором.

Основные новшества:

  • Ускорен вызов функций Python, благодаря задействованию FastCall-оптимизаций, добавленных для CPython 3.6;
  • Добавлена поддержка системы сборки bazel;
  • Начальная поддержка использования модулей Cython в Pyston, реализации языка Python с JIT-компилятором;
  • Реализованы классы C++, которые могут осуществлять прямые вызовы основных методов класса;
  • Добавлена директива cython.no_gc, позволяющая отключить сборщик мусора для классов cdef;
  • Проведена оптимизация целочисленных операций и функции cython.inline();
  • Добавлена поддержка C++ оператора typeid;
  • В классы cdef добавлены методы def/cpdef, поддерживающие интроспекцию и построчное профилирование;
  • Обновлено расширение Cython.Distutils.build_ext, которое теперь использует команду cythonize, корректно обрабатывающую зависимости. Старый вариант расширения объявлен устаревшим, но пока доступен как Cython.Distutils.old_build_ext.

  1. Главная ссылка к новости (http://www.mail-archive.com/py...)
  2. OpenNews: Выпуск PyPy3 5.5, реализации Python 3, написанной на языке Python
  3. OpenNews: Выпуск Pyston 0.5.1, реализации языка Python с JIT-компилятором
  4. OpenNews: Выпуск Cython 0.24, компилятора для языка Python
  5. OpenNews: Выпуск Nuitka 0.5.17, компилятора для языка Python
  6. OpenNews: Увидел свет язык программирования Python 3.5.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45378-cython
Ключевые слова: cython, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 07:48, 27/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А есть ли примеры его практического применения (в продакшене) в серьезных проектах? Вопроса без подкола и без издевок.
     
     
  • 2.2, Аноним (-), 09:25, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ога, гугл и дропбокс перешли, кто на rust, кто на go. Типичный success story питона в эти дни.
     
     
  • 3.4, kjfdhgkjdhfgkjgf (?), 09:54, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    уровни сравни где го/раст и где питон. Одно для опытных другое для начинающих. Мои симпатии к pypy
     
     
  • 4.7, Пингвино (ok), 10:08, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и я не понимаю, зачем питон тащать в продакшен
     
  • 4.13, Аноним (-), 10:48, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Нет.
     
  • 4.19, Аноним (-), 13:31, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > уровни сравни где го/раст и где питон. Одно для опытных другое для начинающих.

    Ну ты сам все про продакшны сказал. Нубам в больших продакшнах не место :).

     
     
  • 5.23, Аноним (-), 15:00, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как тут многие любят бросаться этим словом "продакшен". ХЗ что означает, но зато как круто звучит и поднимает ЧСВ.
     
  • 4.24, Аноним (-), 15:27, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Python исключительно для начинающих говорите? А что же его тогда так любят математики и теорфизики? NumPy, SciPy, Matplolib тому примеры.
     
     
  • 5.25, A.Stahl (ok), 15:35, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >А что же его тогда так любят математики и теорфизики?

    Где ты видел математиков и физиков, которые умеют программировать? Они в большинстве своём такой быдлокод хреначат, что код индийских математиков граничит, вероятно, с абсолютным злом.
    Касательно программирования математики и физики "начинающие".

     
     
  • 6.30, myhand (ok), 17:10, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Математики и физики, умеющие программировать мне встречались чаще, чем программисты, умеющие читать и понимать чужой код.

    > Они в большинстве своём такой быдлокод хреначат

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

     
  • 6.34, YetAnotherOnanym (ok), 19:13, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Где ты видел математиков и физиков, которые умеют программировать?

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

     
  • 5.40, Кармер (?), 09:25, 28/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Отвечу как океанолог : любим патамуша не дали денег на Matlab. А иначе мы к этому гнусному поделию и не прикасались бы !
     
     
  • 6.50, Аноним (-), 10:01, 27/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, Matlab - вершина совершенства, ога. :))
     
  • 4.48, Аноним (-), 04:57, 31/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    go проще питона
     
  • 2.5, Аноним (-), 09:54, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Продакшн и Python вещи не совместимые. Жаль многие этого не понимают и миллионы людей потом страдают от тормозов и зависаний того, что не должно было выйти за пределы школьной лабы.
     
  • 2.6, Аноним (-), 10:02, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Cython используют такие известные питоновские либы и проекты, как lxml, numpy, scipy, pandas, sage
     
     
  • 3.15, Аноним (-), 11:20, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    И всё это от безысходности, надо заметить
     
  • 2.18, myhand (ok), 12:35, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Cython на всю катушку используют в SageMath.  Доложите, пожалуйста, что для вас "продакшен" - вконтактик?
     
     
  • 3.20, Аноним (-), 13:34, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Cython на всю катушку используют в SageMath.  Доложите, пожалуйста, что для
    > вас "продакшен" - вконтактик?

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

     
     
  • 4.29, myhand (ok), 17:05, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > продакшнам

    Што это?  Таки вконтактик?

     
  • 3.28, ТТТ (?), 17:02, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что угодно, вконтактик тоже подойдет, либо какие-то библиотеки которые часто и широко применяются (как, например, Qt или проект Electron). Есть исследовательские проекты, есть проекты "just for fun", много можно придумать категорий. Просто было интересно увидеть какие-то сферы, которые наиболее просто оценить не знающему Cython человеку и понять область его применения. Если сузить категорию, то да, крупные компании/средние, которые применяют язык/проект для каких-то значительных продуктов, которые доступны широкому кругу пользователей. Скорее даже примеры использования.
     
     
  • 4.31, myhand (ok), 17:17, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Что угодно, вконтактик тоже подойдет, либо какие-то библиотеки которые часто и широко
    > применяются (как, например, Qt или проект Electron)

    Тогда таки чем вам SageMath не угодил?  Применяется Cython там строго по назначению (о котором имеет смысл осведомляться на cython.org).


     
  • 2.41, ueueue (?), 14:09, 28/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот на вскидку что собирается при помощи cython в портах FreeBSD: http://www.freshports.org/lang/cython (смотрите раздел "This port is required by: for Build"). Мы в "продакшене" используем собранный им py-libzfs.

    Вообще cython идеален для быстрого написания python-биндингов к сишным либам. Это в сотни раз проще, чем писать биндинг с использованием стандартных средств python. Причем cython можно натравить на либу, он интроспектирует ее (на основе include файлов) и собирает начальный уже работащий проект, который экспортирует функции, доступные для вызова из python. Остается дописать/поправить сгенерированные им функции.

     

  • 1.3, Аноним (-), 09:40, 27/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Это расплата за всеобъемлющую универсальность.

    Радует другое: куча профессионального свободного ПО все шире интегрирует API для использования вместе с Python: Blender, GIMP, InkSacpe, Reaper, OpenOffice. LibreOffice итд итп.

    Лично мне приятно что почти каждый мой административный или субд-шный скрипт (~1k строк кода), переписанный с BAT/VBS/WSH/PowerShell/BASH на самый обычный Python - работает в среднем в 8-10 раз быстрее (вместо минут - секунды).

    Посему за cython, pypy, jit-ы и прочую возню не переживаю: даже если они что-то сделают плохо - хуже никому не будет.

     
     
  • 2.11, 1 (??), 10:29, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Только сменой языка получаешь на порядок быстрее скрипт ?

    Это в какой вселенной ты живёшь ?

     
  • 2.16, freehck (ok), 11:56, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Лично мне приятно что почти каждый мой административный или субд-шный скрипт (~1k строк кода), переписанный с BAT/VBS/WSH/PowerShell/BASH на самый обычный Python - работает в среднем в 8-10 раз быстрее (вместо минут - секунды).

    Это ж как надо "хорошо" на баше писать, чтобы питон его потом обогнал. :)

     
     
  • 3.17, Аноним (-), 12:24, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Секрет скорости Python, по сравнению с другими скриптовыми языками и Башем в частности - в использовании байт-кода и высокоуровневых библиотек: re, sqlite3 итп. А также в богатстве встроенной библиотеки. И это еще без многопоточности и прочих ускорялок.
     
     
  • 4.39, freehck (ok), 08:34, 28/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Секрет скорости Python

    Насмешил.

    > по сравнению с другими скриптовыми языками и Башем в
    > частности - в использовании байт-кода и высокоуровневых библиотек: re, sqlite3 итп.
    > А также в богатстве встроенной библиотеки.

    Ну нашёл, с кем соревноваться. Комбайн с тяпкой сравнил. Ты выйди сначала со своей змеюкой к Perl-у, и попробуй ему сказать то же самое. :)

     
     
  • 5.42, Аноним (-), 15:58, 28/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я не "соревновал" Python с BASH, а лишь констатировал факт.
    Другие товарищи считают что Bash априори быстрее.

    Про Perl уверен - в скорости он будет если и лучше, то ненамного.
    Код будет компактней на Python. Скорость разработки для меня важнее скорости выполнения.

    Вот еще затравка: код на VBS - 5 кБ, время написания 15 часов. Аналог на Python - 1 кБ, время написания 3 часа. На Perl не пишу, может кто сравнит.  

     
     
  • 6.46, freehck (ok), 16:41, 28/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Я не "соревновал" Python с BASH, а лишь констатировал факт.
    > Другие товарищи считают что Bash априори быстрее.

    Ну выглядело-то это как заявка на серебяную пулю.

    > Про Perl уверен - в скорости он будет если и лучше, то ненамного.

    В задачах обработки текста довольно-таки намного. Сто раз уже сравнивалось.

    > На Perl не пишу... Код будет компактней на Python.

    Смелые выводы. Я вот уверен в обратном. Впрочем, это наверное потому, что я мало писал на Python и много на Perl, а Вы - наоборот.

     
  • 2.21, Аноним (-), 13:35, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это расплата за всеобъемлющую универсальность.

    Делать все, одинаково хреново. Вариант.

     
  • 2.32, Аноним (-), 17:21, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А тем временем в LibreCAD 3 отказались от Python в пользу Lua.

    http://github.com/librecad/librecad_3

     
     
  • 3.43, Аноним (-), 16:01, 28/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А тем временем в LibreCAD 3 отказались от Python в пользу Lua.
    > http://github.com/librecad/librecad_3

    И это надо приветствовать! Грустно было бы - если бы они совсем убрали макросы. Lua хороший язык, близок к змеюке. На как 1С-ник скажу - 5% времени кодинга тратятся на ;


     
  • 3.44, Аноним (-), 16:01, 28/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А тем временем в LibreCAD 3 отказались от Python в пользу Lua.
    > http://github.com/librecad/librecad_3

    И это надо приветствовать! Грустно было бы - если бы они совсем убрали макросы. Lua хороший язык, близок к змеюке. На как 1С-ник скажу - 5% времени кодинга тратятся на ;


     

  • 1.8, Аноним (-), 10:25, 27/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > позволяющим создавать расширения на языке Си для проектов на языке Python

    костылек - Костылище

     
     
  • 2.9, Аноним (-), 10:26, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    питонисты смешные
     
  • 2.10, Аноним (-), 10:27, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    варят кашку, и Си сдобрят, и С++
     
     
  • 3.12, Аноним (-), 10:32, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Си нынче стильно, модно, молодежно. Питонисты чеж, левые что ли? Вливаются потихоньку
     
     
  • 4.22, Аноним (-), 13:38, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Си нынче стильно, модно, молодежно. Питонисты чеж, левые что ли? Вливаются потихоньку

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

     

  • 1.26, Аноним (-), 16:35, 27/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Вот тут зацепили слово "продакшен". А как вам вот Это:

    - 1500 независимых разработчиков;
    - программное обеспечение загружается 1000 раз в день;
    - 4000 программных модулей, разработанных независимыми разработчиками;
    - в 120 странах существуют компании-партнёры, занимающиеся внедрением системы.

    Это ПО написано на Python, и это ПО отвоевало у компании SAP 30% рынка, в деньгах - 1,5 млрд. долларов. Точнее уменьшило их выручку на эту сумму, потому что как почти всё, написанное на Python, - свободно.

    Вот это - продакшн и серьезный проект. Впрочем, если вернуться по времени к змеиным временам "корпорации добра" - молчали все в тряпочку. Потому что унижать 4/5-й по популярности язык программирования - популярно. Но недостойно айтишника. Просто не к лицу ему.  

     
     
  • 2.33, daltin (??), 18:54, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А что за ПО, если не секрет?
     
     
  • 3.35, YetAnotherOnanym (ok), 19:43, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А что за ПО, если не секрет?

    Предположил бы, что Odoo, но она очень даже небесплатная, а с версии 9 - ещё и огороженная по самое небалуй.

     
     
  • 4.45, Аноним (-), 16:08, 28/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> А что за ПО, если не секрет?
    > Предположил бы, что Odoo, но она очень даже небесплатная, а с версии
    > 9 - ещё и огороженная по самое небалуй.

    YetAnotherOnanym - это да, ODOO. И она имеет бесплатную открытую Community-версию. Проект с недавних пор разделен. Большинство модулей имеют лицензию AGPL-GPL-LGPL. Платные - только небольшие фильтры и экзотика. Всё это можно написать самому.

    Миллиарды долларов, я вижу, никого уже не впечатляют. Тема продакшн-непригодности не сходит с уст прогрессивного человечества... :-)


     
  • 2.37, Аноним (-), 21:29, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    - миллионы мух
     
  • 2.38, Аноним (-), 21:30, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это ПО написано на Python, и это ПО отвоевало у компании SAP 30% рынка

    Эскобар.jpg

     

  • 1.47, Аноним (-), 21:16, 28/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А чё редакторы забили новости про NUITKA кидать? Последняя 2015 г., а с тех пор Нуитка хорошо продвинулась, и на мой взгляд намного эффективнее чем все остальные, если нужно вытянуть из питон программы максимум производительности.
     
  • 1.49, Аноним (-), 08:59, 31/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Думаю, проблемы повышения производительности программ на Python - в большинстве случаев надуманны. Уверен что оптимизация алгоритмов и перенос части работы в более подходящие python-библиотеки - даст сопоставимый с тяжелой артиллерией эффект (чем распараллеливание, вынос кода в си-библы, задействование GPU итп).

    Пример ускорения кода по сравнению с BAT/VBS/WSH/PS я привел, и ведь на моих сисадминов это никакого влияния не произвело: административные скрипты, на 80% взятие из Интернета они переписывать не будут даже из-за кратного роста скорости.

    "Быстрота" нужна в очень ограниченном круге задач (процессинг итп), но там скорее нужна realtime os, где все упомянутые ЯП идут лесом. Но и здесь хватает субъективизма: обычный CPython обеспечивает опрос 5 сенсоров с интервалом в 100 миллисекунд на Pi2, ежеминутно скидывает дамп в память, крутит web-сервер, делает фото и рассылает почту с ними. Я себе плохо представляю ЯП и задачу, которую нельзя реализовать на змеюке так, чтобы не захотелось ее переписать на другом, более быстром ЯП.

     

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



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

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