The OpenNET Project / Index page

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

Выпуск компилятора Cython 0.20 и системы проверки Python-кода Frosted 1.0.0

23.01.2014 20:54

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

В новой версии Cython 0.20 добавлена поддержка CPython 3.4, возможность вызова шаблонов функций С++, реализованы дополнительные оптимизации для результирующего кода на языке Си, обеспечена компиляция пакетов (__init__.py). При тестировании пакетом pybench производительность обычного Python-кода при его компиляции в Cython более чем на 30% выше, чем при использовании CPython. В некоторых тестах, прирост скорости достигает 60-90%, например, при выполнении операций if-elif-else или при работе циклов for. При использовании Cython и статических Си-типов, ускорение выполнения численных операций может достигать 100-1000 раз.

Кроме Cython 0.20, увидел свет релиз Frosted 1.0.0, быстрой и простой в использовании системы проверки кода на языке Python, позволяющей выявлять распространённые логические ошибки разработчиков. В отличие от PyChecker, Frosted выявляет ошибки только путём парсинга исходных текстов, без непосредственного выполнения модулей. Frosted является форком pyflakes, созданным в ответ на стагнацию проекта и игнорирование присылаемых патчей. В Frosted устранены многие неисправленные в pyflakes проблемы, проведён рефакторинг кода, добавлена возможность выборочной проверки, позволяющей выбирать какие файлы проверять и наличие каких ошибок анализировать, изменён интерфейс командной строки (по умолчанию pyflakes молча ожидал ввода из stdin, в то время как frosted выводит ошибку и экран подсказки по опциям).

Дополнительно можно отметить выпуск компилятора Nuitka 0.5.0, позволяющего транслировать скрипт на языке Python в представление на C++, которое можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython. В новой версии продолжено развитие standalone-режима сборки, внесено множество новых оптимизаций.

  1. Главная ссылка к новости (http://permalink.gmane.org/gma...)
  2. OpenNews: Релиз Cython 0.15, варианта языка Python, поддерживающего плотную интеграцию с Си
  3. OpenNews: Представлен pypy-stm, интерпретатор Python с поддержкой распараллеливания на многоядерных системах
  4. OpenNews: Новый выпуск Nuitka 0.4.3, компилятора для языка Python
  5. OpenNews: Вышел Pythonium 0.4.7, компилятор из Python в JavaScript
  6. OpenNews: Выпуск PyPy 2.2, реализации Python, написанной на языке Python
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/38914-cython
Ключевые слова: cython, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (22) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Rodegast (??), 21:01, 23/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая новость. Часто им пользуюсь.
     
  • 1.4, ip1981 (ok), 21:41, 23/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > обеспечена компиляция пакетов (__init__.py).

    И как это понимать?

     
     
  • 2.15, Я (??), 08:17, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >И как это понимать?

    Обычный пакет python имеет структуру:
    mymodule\
             |
             _ __init__.py
             |
             _ myfunction_file.py
             ...  

    Ну вот и компиляция и обеспечена.

     

  • 1.5, Аноним (-), 22:02, 23/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >> при работе циклов for.

    Векторизацию освоили или неполное вычисление? Хотя по большей части скрипты на пайтоне быстрее с++ - потому, что по-большей части на с++ пишут студенты.  

     
     
  • 2.8, Аноним (-), 23:04, 23/01/2014 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Питон пайтоном называют студенты.
     
     
  • 3.16, Я (??), 08:18, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Питон пайтоном называют студенты.

    И весь остальной мир.

     
     
  • 4.24, Нанобот (ok), 11:00, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты за весь мир не расписывайся
     
     
  • 5.25, Я (??), 11:25, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А ты мне не указывай что делать, а я так и быть, не буду говорить куда тебе идти.
     
  • 2.20, Я (??), 08:26, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >>> при работе циклов for.
    > Векторизацию освоили или неполное вычисление?

    Банально: типы не проверяются, а все остальное делает gcc.

    > Хотя по большей части скрипты на пайтоне
    > быстрее с++ - потому, что по-большей части на с++ пишут студенты.

    Вы про это: https://stackoverflow.com/questions/9371238/why-is-reading-lines-from-stdin-mu ?


     

  • 1.6, Аноним (-), 22:14, 23/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > The Cython programming language is a superset of Python

    Никакое он не подмножество, учитывая, что он "расширяет возможности".

     
     
  • 2.17, Я (??), 08:19, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> The Cython programming language is a superset of Python
    > Никакое он не подмножество, учитывая, что он "расширяет возможности".

    Возможности чего? Не путайте язык и его имплементации.

     
  • 2.22, Аноним (-), 09:47, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >superset
    >Никакое он не подмножество

    Там и написано: надмножество.

     
     
  • 3.26, Аноним (-), 14:03, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Было написано подмножество. Мне что, скриншоты надо делать?
     
     
  • 4.27, Тетраэдрный Анон (?), 13:48, 27/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Скриншоты также можно подделать. :D
     

  • 1.7, mihalych (ok), 22:42, 23/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, кто-нибудь пробовал компилить portage?
     
  • 1.9, бедный буратино (ok), 05:27, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Праздник компиляции на улице Python...
     
  • 1.10, Аноним (-), 05:43, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Frosted переводится как примороженный?
     
  • 1.11, Аноним (-), 05:44, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как компилить JS?
     
  • 1.14, arsenicum (??), 07:52, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Кто-нибудь сравнивал производительность CPython и PyPy? Нужно ли менять код, чтобы он компилировался в CPython?
     
     
  • 2.18, arsenicum (??), 08:19, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Cython конечно же, а не CPython.
     
  • 2.19, Я (??), 08:21, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Кто-нибудь сравнивал производительность CPython и PyPy?

    В разных задачах по разному.

    > Нужно ли менять код, чтобы он
    > компилировался в CPython?

    Путаете Cython и CPython?

     
  • 2.21, Cykooz (?), 08:27, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Производительность не сравнивал, а вот менять код может понадобится - у Cython есть некоторые ограничения (http://docs.cython.org/src/userguide/limitations.html). Но если не писать код с использованием сильной магии, то в большинстве случаев ничего менять не придётся.
     

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



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

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