Hangar pielii este un ++ compilator experimental Python-to-C. Shed pielii acceptă programe Python pure, și generează optimizat cod C ++. Acest lucru înseamnă că, în combinație cu un compilator C ++, aceasta permite traducerea de programe Python în limba mașină este extrem de eficiente. Pentru un set de 16 programe de testare non-triviale, măsurătorile arată o accelerare tipic de 2-40 peste Psyco, aproximativ 12 în medie, și 2-220 peste CPython, aproximativ 45, în medie, (a se vedea secțiunea 5 de Master tezei de doctorat meu pe dreapta ). Skin Shed ieșiri de asemenea, codul sursă adnotat.
De înaltă performanță și abordarea elegant de piele Hangar (este doar 6000 de linii!) Veni la un cost. În primul rând, în prezent acceptă numai programe care sunt static tastate. Acest lucru înseamnă pur și simplu că variabilele pot avea doar vreodată un singur tip. Deci, de exemplu a = 1; o = "1" nu este permis. Desigur, un singur tip poate fi abstract sau generic (ca în C ++), astfel încât de exemplu, o = A (); o = B (), unde A și B au o clasa de baza comun, este permis.
În al doilea rând, programele Python nu poate în prezent utiliza în mod liber biblioteca standard Python. Cu toate acestea, unele importuri comune sunt acceptate (a se vedea * _. Py), și multe altele pot fi ușor adăugate. Problema este unul practic, deoarece în teorie, este posibil să se creeze legături pentru majoritatea modulelor de bibliotecă. O lucrare-în jurul valorii de simplu poate fi la compila numai părți critice ale unui program Python, și să comunice cu el prin exemplu fișiere și in- și ieșirea standard. Astfel, programul "principal" poate utiliza dinamica Python și biblioteca standard pe deplin, și întregul program este scris în Python pură.
Shed Pielea este încă software alfa, și există unele alte limitări minore, cea mai mare parte temporar,. Vă rugăm să citiți secțiunea Limitări cu atenție, înainte de a încerca pentru a compila un program. Singurul lucru pe care îl cere în schimbul pentru a face software-ul disponibil sub GPL, este că-mi trimite un e-mail când vă confruntați cu o problemă, care nu este listat printre aceste limitări. Acesta este cel mai rapid mod de a obține programul susținut, din moment ce de obicei nu rezolva problemele de nu știu despre. Vă rugăm să să-mi spuneți dacă doriți mă să pună în aplicare anumite apeluri bibliotecii
Ce este nou în această versiune:.
- Scalabilitate a fost din nou mult îmbunătățit.
- Performanța de fișier I / O și numere complexe a fost mult îmbunătățit.
- Trei module noi sunt acceptate.
- s-au adăugat șase noi programe exemplu.
- Au fost multe alte rezolvări ale unor probleme și îmbunătățiri.
Ce este nou în versiunea 0,8:
- Suport-a adăugat pentru & quot; & quot; struct și & quot; situare & quot; module.
- Trei exemple de noi au fost adăugate, pentru un total de 57.
- Exemplul C64 a fost actualizată, iar acum este mai mult de 3.000 de linii (sloccount).
- O optiune a adăugat pentru a afișa tracebacks excepții (shedskin -x).
- multe bug-uri au fost stabilite.
Ce este nou în versiunea 0.1:.
- Suport îmbunătățit pentru "os" (UNIX)
- Adăugarea unui decodor JPEG (1200 linii) și alte programe la setul de programe de exemplu. Stabilește modul de extensie.
- îmbunătățit indicatorii de compilare sub OS X.
- O importantă fix tip deducție.
- supraîncărcarea variabil îmbunătățită.
- îmbunătățiri Angajări.
- stabilește, pentru setslice și colț delslice cazuri.
- xrange returneaza un obiect xrange, nu iterator.
- Există mai multe rezolvări ale unor probleme minore.
Ce este nou în versiunea 0.0.30:.
- definită de utilizator sprijin clasă în module de extensie
- punere în aplicare set foarte rapid (FFAO).
- sprijin număr complex.
- Numeroase îmbunătățiri de formatare șir.
- Nu există harti la NULL în loc de 0, și imprimă ca "Niciuna".
- re.match_object.group accepta mai multe argumente.
- îmbunătățiri Angajări.
- succesorale de la excepții builtin altele decât Excepție.
- hashing Fără specialitate ar trebui să funcționeze acum.
- O importantă fix tip deducție, precum și multe alte rezolvări ale unor probleme.
Ce este nou în versiunea 0.0.29:.
- datetime și ConfigParser sprijin
- staticmethod și de proprietate decorațiuni.
- FreeBSD, OpenSolaris, și suport 64-bit.
- GCC 4.3 remedieri.
- Suport pentru chei de cartografiere ("% (element) x .."% some_dict).
- Îmbunătățirile aduse mecanismului de import. __init__ este mult mai puțin de un caz special acum.
- Numeroase stabilește, pentru apelarea metodelor strămoșilor (de exemplu, mamă .__ init __).
- Toate programele exemplu compilați ca module de extensie acum.
- Există multe rezolvări ale unor probleme.
Comentariile nu a fost găsit