Сарай кожи является экспериментальной ++ компилятор Python к C. Сарай кожи принимает чистые программы Питона, и генерирует оптимизированный C ++ код. Это означает, что, в сочетании с компилятором C ++, что позволяет для перевода программ на языке Python в высокоэффективной машинном языке. Для набора из 16 нетривиальных тестовых программ, измерения показывают типичное ускорение 2-40 над Psyco, приблизительно 12 в среднем, и 2-220 за CPython, около 45 в среднем (см раздел 5 Thesis моей магистерской о праве ). Сарай кожи также выводит аннотированный исходный код.
Высокая производительность и элегантный подход Сарай кожи (это только 6000 линии!) Прийти в стоимости. Во-первых, в настоящее время он принимает только программы, которые статически типизированных. Это просто означает, что переменные могут только когда-либо один тип. Так, например, а = 1; а = '1' не разрешены. Конечно, один тип может быть абстрактным или родовым (как в C ++), так что, например A = A (); A = B (), где А и В имеют общий базовый класс, не допускается.
Во-вторых, программы Python могут в настоящее время не свободно использовать стандартную библиотеку Python. Тем не менее, некоторые общие импорта поддерживаются (см * _. Ру), и многие другие могут быть легко добавлены. Проблема в том, практический, так как в теории, можно создать привязки для большинства модулей библиотеки. Простой обходной может быть только собрать критические части программы Python и общаться с ним через, например, файлы и стандарт входом и выходом. Таким образом, «главный» программа может использовать полный динамика Python и стандартная библиотека, и вся программа написана на чистом Python.
Сарай кожа еще альфа-версия, и есть некоторые другие незначительные, в основном временные, ограничения. Пожалуйста, прочитайте раздел Ограничения тщательно, прежде чем пытаться компилировать программу. Единственное, что я прошу взамен для принятия программное обеспечение доступно в соответствии с лицензией GPL, является то, что вы напишите мне письмо, когда вы сталкиваетесь с проблемой, что не входит в число этих ограничений. Это самый быстрый способ получения ваша программа поддерживается, так как я, как правило, не исправить проблемы, которые я не знаю, о. Пожалуйста, дайте мне знать, если вы хотели бы мне реализовать определенные вызовы библиотечных
Что нового В этом выпуске:.
- Масштабируемость снова значительно улучшилось.
- Выполнение файла ввода / вывода и комплексные числа был значительно улучшен.
- Три новые модули поддерживаются.
- были добавлены шесть новых примеров программ.
- Были многие другие улучшения и исправления.
Что нового в версии 0.8:
- Добавлена поддержка для & Quot; структура и Quot; и & Quot; массив и Quot; Модули.
- Три новые примеры были добавлены, в общей сложности 57.
- Пример С64 был обновлен, и теперь более чем 3000 строк (sloccount).
- Возможность был добавлен для отображения исключений tracebacks (shedskin х).
- Многие ошибки были исправлены.
Что нового в версии 0.1:.
- Улучшена поддержка "ОС" (UNIX)
- Добавление декодера JPEG (1200 строк) и некоторые другие программы на множестве примеров программ. Модуль расширения исправления.
- Улучшена флаги компилятора под OS X.
- Важный вывод типа исправить.
- Улучшена переменная перегрузка.
- Кастинг улучшения.
- Исправлены setslice и delslice угловых случаях.
- xrange возвращает объект xrange, не итератор.
- Есть несколько незначительных исправлений.
Что нового в версии 0.0.30:.
- Пользовательский класс поддержки в дополнительных модулей
- Очень быстрая реализация комплект (FFAO).
- Поддержка Комплексное число.
- Много улучшений форматирования строки.
- Никто не отображается на NULL вместо 0 и печатает как "None".
- re.match_object.group принимает несколько аргументов.
- Кастинг улучшения.
- Наследование от других BuiltIn, чем исключение исключений.
- не хеширования None должно работать.
- Важный вывод типа исправление, и многие другие исправления.
Что нового в версии 0.0.29:.
- Дата и время и ConfigParser поддержка
- STATICMETHOD и имущественные декораторов.
- FreeBSD, OpenSolaris, и 64-битная поддержка.
- GCC 4.3 исправления.
- Поддержка для ключей отображения ("% (ключ) х .."% some_dict).
- Улучшение механизма импорта. __init__ гораздо меньше частного случая.
- Множество исправлений для вызова методов предка (например, родительский .__ инициализации __).
- Все примеры программ в настоящее время компиляции, как модулей расширения.
- Есть много исправлений.
Комментарии не найдены