Shed Skin е експериментална Python-да-C ++ компилатор. Shed Skin приема чисти програми на Питон, и генерира оптимизиран C ++ код. Това означава, че в комбинация с C ++ компилатор, тя дава възможност за превод на Python програми в високоефективен език машина. За набор от 16 нетривиални програми за тест, измервания показват типичен ускорим на 2-40 над Psyco, около 12 средно, и 2-220 над CPython, около 45 средно (виж раздел 5 на моята магистърска теза в дясно ). Shed Skin също извежда анотиран изходния код.
Високата производителност и елегантен подход на Shed Skin (тя е само на 6000 линии!) Да има своята цена. Първо, в момента тя приема само програми, които са статично напечатани. Това просто означава, че променливите могат само да имат един и същи модел. Така например, а = 1; а = '1' не се допускат. Разбира се, един вид може да бъде абстрактна или генерични (както в C ++), така че напр А = А (); A = B (), където A и B имат общ базов клас, е разрешено.
Второ, Python програми понастоящем не може да използва свободно стандартната библиотека на Python. Въпреки това, някои общи внос се поддържат (виж * _. Пг), както и много други могат лесно да бъдат добавени. Проблемът е практично, тъй като теоретично е възможно да се създаде автомати за повечето модули библиотека. Една проста работа-около може да бъде само за съставяне на критичните части на програмата, Python, и да общуват с него чрез напр файлове и стандартни входове и изход. По този начин, програмата "основната" може да се използва пълният Python динамика и стандарта библиотеката, както и цялата програма е написана на чист Python.
Shed кожата е все още алфа софтуер, а има и някои други по-малки, най-вече временно, ограничения. Моля, прочетете раздела Ограничения внимателно, преди да се опитате да се състави програма. Единственото нещо, което искам в замяна на ползването на софтуера достъпен под GPL, е, че можете да ми изпратите имейл, когато срещнете проблем, че не е в списъка сред тези ограничения. Това е най-бързият начин да се подготвите с подкрепата си програма, тъй като аз обикновено не отстрани проблемите не знаят. Моля също така да ме уведомите, ако искате от мен да осъществи някои библиотечни разговори
Какво ново в тази версия:.
- скалируемост отново е значително подобрена.
- Изпълнение на файла I / O и комплексни числа е значително подобрена.
- Три нови модули се поддържат.
- са добавени шест нови програми, например.
- Имаше много други поправки на грешки и подобрения.
Какво ново във версия 0.8:
- Support е добавен за & quot; структура & quot; и & quot; масив & quot; модули.
- бяха добавени три нови примери, за общо 57.
- Примерът C64 е актуализиран, а сега е повече от 3000 линии (sloccount).
- Опция е добавен за да се покаже изключение tracebacks (shedskin -х).
- Много бъгове са фиксирани.
Какво ново във версия 0.1:.
- подобрена поддръжка за "OS" (UNIX)
- Добавянето на декодер JPEG (1200 линии) и някои други програми до набора от програми, например. Допълнителен модул поправки.
- Подобрена съставител знамена под OS X.
- Важен тип извод оправя.
- Подобрена променлива претоварване.
- подобрения леене.
- Поправени setslice и delslice ъглови случаи.
- xrange връща xrange обект, не итератор.
- Има няколко дребни поправки на грешки.
Какво ново във версия 0.0.30:.
- User-определено подкрепа клас в модули за разширение
- Много бързо набор изпълнение (FFAO).
- комплексно число подкрепа.
- Много подобрения форматиране низ.
- Няма карта на несъществуваща вместо 0, и щампи като "няма".
- re.match_object.group приема множество аргументи.
- подобрения леене.
- наследство от вградените изключения, различни от Exception.
- хеширане Няма да работя сега.
- Важен извод тип корекция, както и много други фиксирани бъга.
Какво ново във версия 0.0.29:.
- DateTime и ConfigParser подкрепа
- staticmethod и собственост декоратори.
- FreeBSD, OpenSolaris, и 64-битова поддръжка.
- GCC 4.3 поправки.
- Подкрепа за картиране на ключове ("% (ключ) х .."% some_dict).
- Подобрения на механизма за внос. __init__ е много по-малко от един специален случай сега.
- Много поправки за обажда методи прародител (например майка .__ първоначален __).
- Всички програми, например сега съставят като модули за разширение.
- Има много поправки на грешки.
Коментари не е намерена