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

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

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

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

© OpenNet