Анонсирован (http://permalink.gmane.org/gmane.comp.python.announce/11323) выпуск проекта Cython 0.20 (http://cython.org/), в рамках которого развивается компилятор для языков Python и Cython. Язык Cython является подмножеством Python, нацеленным на упрощение интеграции с кодом на языке Си и позволяющим создавать расширения на языке Си для проектов на языке Python также просто, как писать на Python. Cython расширяет возможности Python средствами для прямого вызова функций на языке Си, поддерживает определение переменных с типами языка Си и позволяет компилировать итоговый код на языке Cython в представление на языке Си, которое затем собирается штатным системным компилятором.
В новой версии Cython 0.20 добавлена (https://github.com/cython/cython/blob/8d4d615c49e858fc61663b...) поддержка CPython 3.4, возможность вызова шаблонов функций С++, реализованы дополнительные оптимизации для результирующего кода на языке Си, обеспечена компиляция пакетов (__init__.py). Производительность кода при использовании Cython примерно на 30% выше (https://github.com/cython/cython/wiki/FAQ#wiki-is-cython-fas...), чем при использовании CPython, в некоторых случаях, прирост скорости достигает 60-90%, например, при выполнении операций if-elif-else или при работе циклов for. При использовании статических типов ускорение выполнения численных операций может достигать 100-1000 раз.Кроме Cython 0.20, увидел свет (http://permalink.gmane.org/gmane.comp.python.announce/11324) релиз Frosted 1.0.0 (https://github.com/timothycrosley/frosted), быстрой и простой в использовании системы проверки кода на языке Python, позволяющей выявлять распространённые логические ошибки разработчиков. В отличие от PyChecker, Frosted выявляет ошибки только путём парсинга исходных текстов, без непосредственного выполнения модулей. Frosted является форком pyflakes (https://pypi.python.org/pypi/pyflakes), созданным в ответ на стагнацию проекта и игнорирование присылаемых патчей. В Frosted проведён рефакторинг кода, добавлена возможность выборочной проверки, позволяющей выбирать какие файлы проверять и наличие каких ошибок анализировать, изменён интерфейс командной строки (по умолчанию pyflakes молча ожидал ввода из stdin, в то время как frosted выводит ошибку и экран подсказки по опциям).
Дополнительно можно отметить выпуск (http://nuitka.net/posts/nuitka-release-050.html) компилятора Nuitka 0.5.0 (http://nuitka.net), позволяющего транслировать скрипт на языке Python в представление на C++, которое можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython. В новой версии продолжено развитие standalone-режима сборки, внесено множество новых оптимизаций.
URL: http://permalink.gmane.org/gmane.comp.python.announce/11323
Новость: http://www.opennet.me/opennews/art.shtml?num=38914
Хорошая новость. Часто им пользуюсь.
> обеспечена компиляция пакетов (__init__.py).И как это понимать?
>И как это понимать?Обычный пакет python имеет структуру:
mymodule\
|
_ __init__.py
|
_ myfunction_file.py
...Ну вот и компиляция и обеспечена.
>> при работе циклов for.Векторизацию освоили или неполное вычисление? Хотя по большей части скрипты на пайтоне быстрее с++ - потому, что по-большей части на с++ пишут студенты.
Питон пайтоном называют студенты.
> Питон пайтоном называют студенты.И весь остальной мир.
ты за весь мир не расписывайся
А ты мне не указывай что делать, а я так и быть, не буду говорить куда тебе идти.
>>> при работе циклов for.
> Векторизацию освоили или неполное вычисление?Банально: типы не проверяются, а все остальное делает gcc.
> Хотя по большей части скрипты на пайтоне
> быстрее с++ - потому, что по-большей части на с++ пишут студенты.Вы про это: https://stackoverflow.com/questions/9371238/why-is-reading-l... ?
> The Cython programming language is a superset of PythonНикакое он не подмножество, учитывая, что он "расширяет возможности".
>> The Cython programming language is a superset of Python
> Никакое он не подмножество, учитывая, что он "расширяет возможности".Возможности чего? Не путайте язык и его имплементации.
>superset
>Никакое он не подмножествоТам и написано: надмножество.
Было написано подмножество. Мне что, скриншоты надо делать?
Скриншоты также можно подделать. :D
Интересно, кто-нибудь пробовал компилить portage?
Праздник компиляции на улице Python...
Frosted переводится как примороженный?
Как компилить JS?
Кто-нибудь сравнивал производительность CPython и PyPy? Нужно ли менять код, чтобы он компилировался в CPython?
Cython конечно же, а не CPython.
> Кто-нибудь сравнивал производительность CPython и PyPy?В разных задачах по разному.
> Нужно ли менять код, чтобы он
> компилировался в CPython?Путаете Cython и CPython?
Производительность не сравнивал, а вот менять код может понадобится - у Cython есть некоторые ограничения (http://docs.cython.org/src/userguide/limitations.html). Но если не писать код с использованием сильной магии, то в большинстве случаев ничего менять не придётся.