Shed Skin

Software screenshot:
Shed Skin
Dettagli del software:
Versione: 0.9.1
Data di caricamento: 15 Apr 15
Sviluppatore: Mark Dufour
Licenza: Libero
Popolarità: 74

Rating: 3.7/5 (Total Votes: 3)

Shed Skin è una ++ compilatore sperimentale Python-to-C. Capannone pelle accetta programmi Python puri, e genera codice ottimizzato C ++. Ciò significa che, in combinazione con un compilatore C ++, permette per definizione di programmi Python in linguaggio macchina altamente efficiente. Per una serie di 16 programmi di test non banali, misurazioni mostrano un aumento di velocità tipica di 2-40 su Psyco, circa 12 in media, e 2-220 sopra CPython, circa 45 in media (vedi sezione 5 della tesi del mio Maestro a destra ). Pelle Capannone emette anche il codice sorgente annotato.
Le alte prestazioni e l'approccio elegante pelle Shed (è a soli 6000 linee!) Hanno un costo. In primo luogo, attualmente accetta solo i programmi che sono staticamente digitati. Questo significa semplicemente che le variabili possono sempre e solo avere un solo tipo. Così ad esempio a = 1; a = '1' non è permesso. Naturalmente, un singolo tipo può essere estratto o generico (come in C ++), in modo che ad esempio a = A (); a = B (), dove A e B hanno una classe base comune, è permesso.
 
In secondo luogo, i programmi Python non possono attualmente utilizzare liberamente la libreria standard di Python. Tuttavia, alcune importazioni comuni sono supportati (vedere * _. Py), e molti altri possono essere facilmente aggiunte. Il problema è di ordine pratico, in quanto in teoria è possibile creare binding per la maggior parte dei moduli della libreria. Un semplice work-around può compilare solo parti critiche di un programma Python, e comunicare con esso tramite ad esempio file e in- e standard output. In questo modo, il programma 'main' possibile utilizzare l'intera dinamica di Python e libreria standard, e l'intero programma è scritto in Python puro.
 
Capannone pelle è ancora software alpha, e ci sono alcune altre limitazioni minori, per lo più temporanea,. Si prega di leggere la sezione Limitazioni attentamente, prima di provare a compilare un programma. L'unica cosa che chiedo in cambio di rendere il software disponibile sotto licenza GPL, è che mi mandi una e-mail quando si verifica un problema, che non è elencato tra queste limitazioni. Questo è il modo più veloce per ottenere il vostro programma di sostegno, dal momento che di solito non risolvere problemi che non conosco. Prego inoltre lo lasciamo sapere se volete me per attuare alcune chiamate di libreria

Cosa c'è di nuovo in questa versione:.

  • Scalabilità stato nuovamente notevolmente migliorata.
  • Prestazioni del file di I / O e numeri complessi è stato notevolmente migliorato.
  • Tre nuovi moduli sono supportati.
  • sono stati aggiunti sei nuovi programmi di esempio.
  • Ci sono state molte altre correzioni e miglioramenti.

Cosa c'è di nuovo in versione 0.8:

  • Supporto è stato aggiunto per il & quot; struct & quot; e & quot; matrice & quot; moduli.
  • sono stati aggiunti tre nuovi esempi, per un totale di 57.
  • L'esempio C64 è stato aggiornato, ed è ora più di 3.000 linee (conteggio elaborato).
  • Una opzione è stata aggiunta per visualizzare traceback eccezione (shedskin -x).
  • Molti bug sono stati risolti.

Cosa c'è di nuovo in versione 0.1:.

  • Supporto migliorato per 'os' (UNIX)
  • L'aggiunta di un decodificatore JPEG (1200 linee) e alcuni altri programmi per l'insieme di programmi di esempio. Correzioni modulo di estensione.
  • Migliorata flag di compilazione sotto OS X.
  • Un importante fix di inferenza.
  • Migliore sovraccarico variabile.
  • miglioramenti Casting.
  • Correzioni per i casi setslice e angolo delslice.
  • xrange restituisce un oggetto xrange, non iteratore.
  • Ci sono diverse correzioni di bug minori.

Cosa c'è di nuovo nella versione 0.0.30:.

  • Supporto classe definita dall'utente in moduli di estensione
  • implementazione set molto veloce (FFAO).
  • Supporto numero complesso.
  • Molti miglioramenti formattazione di stringhe.
  • Nessuno mappe NULL invece di 0, e stampa come 'Nessuno'.
  • re.match_object.group accetta più argomenti.
  • miglioramenti Casting.
  • Inheritance eccezioni builtin diverse eccezioni.
  • hash Nessuno dovrebbe funzionare ora.
  • Un importante fix inferenza di tipo, e molti altri bugfix.

Cosa c'è di nuovo nella versione 0.0.29:.

  • datetime e ConfigParser supporto
  • staticmethod e proprietà decoratori.
  • FreeBSD, OpenSolaris, e il supporto a 64-bit.
  • GCC 4.3 correzioni.
  • Il supporto per i tasti di mappatura ('% (chiave) x ..'% some_dict).
  • I miglioramenti al meccanismo di importazione. __init__ è molto meno di un caso particolare momento.
  • Molte correzioni per chiamare i metodi ancestrali (es Parent .__ init __).
  • Tutti i programmi di esempio ora compilano come moduli di estensione.
  • Ci sono molte correzioni di bug.

Programmi simili

CmdOption
CmdOption

28 Sep 15

pyPEG
pyPEG

14 Apr 15

GNU Smalltalk
GNU Smalltalk

11 May 15

ChaiScript
ChaiScript

20 Feb 15

Commenti a Shed Skin

I commenti non trovato
Aggiungi commento
Accendere le immagini!