Компилятор Python Pyston 0.2


Появился новый выпуск Pyston, высокопроизводительной реализации Python, разработанной поставщиком облачных хранилищ Dropbox.

Pyston был доступен в первоначальной версии с открытым исходным кодом в начале года, состоящей из реализации Python на основе JIT, построенной на стеке компилятора LLVM.

В то время как оригинальная версия 0.1 была быстрой, в ней отсутствовал ряд языковых функций. Многие из них были добавлены в новую версию.

Обсуждая новый релиз в посте в блоге Pyston, разработчики говорят, что, хотя Pyston 0.2 все еще находится в стадии разработки, он имеет значительно улучшенную языковую совместимость и способен запускать многие стандартные библиотеки — и некоторые стандартные модули расширения — без изменений.

Одним из основных улучшений является добавление собственного API C. Это описывается как все еще незавершенная работа, но она изначально предоставляет подмножество API CPython и запускает существующие модули расширения с перекомпиляцией.

Также была добавлена поддержка многопоточности. В сообщении в блоге говорится, что разработчики в настоящее время используют GIL для защиты многопоточного кода. Хотя это неэлегантно, это просто и эффективно, когда есть только один поток.

«У нас есть экспериментальный вариант конфигурации для использования варианта блокировки чтения-записи, который удаляет GIL и позволяет нескольким потокам использовать несколько ядер, но потенциальный параллелизм сильно ограничен семантикой C API.»

Другие улучшения включают поддержку исключений, наследования и метаклассов, но также отсутствуют многие функции (такие как финализаторы, исключения unicode и API C).

В дальнейшем целью следующей версии является повышение производительности. В то время как выпуск 0.1 показал способность создавать высокопроизводительный код с использованием LLVM, запуск реальных тестов показал, что производительность сдерживается простым сборщиком мусора и наивной реализацией SSA-преобразования продукта. Это области, которые будут улучшены вместе с добавлением новой многоуровневой структуры. Это позволит более продвинутую спекуляцию типами, а также будет поддерживать расширенные функции самоанализа фреймов Python.

По словам разработчиков, новая версия все еще должна рассматриваться в начале альфа-версии. Более подробная информация доступна в блоге.

Dropbox и Pyston являются частью тенденции для поставщиков услуг, таких как Facebook, внедрять свои собственные языковые подсистемы в целях повышения производительности.


Добавить комментарий