La peau de la littoral est un transpileur, qui peut traduire des programmes Python 3 purs, mais implicitement statiques, en C ++ optimisé. Il peut générer des programmes autonomes ou des modules d'extension qui peuvent être importés et utilisés dans des programmes Python plus importants.
Outre la restriction de typage, les programmes ne peuvent pas utiliser librement la bibliothèque standard Python (bien qu'environ 25 modules communs, tels que Random et Re, soient actuellement pris en charge). De plus, toutes les fonctionnalités Python, telles que les fonctions imbriquées et les nombres variables d'arguments, ne sont pas pris en charge (voir la documentation pour plus de détails).
Pour un ensemble de 80 programmes non triviaux (à plus de 25 000 lignes au total (sloccount)), les mesures montrent une accélération typique de 1 à 100 fois par rapport à Cpython.
Compilez et dirigez le «Hello, World! (test.py) Exemple sous Linux / OSX:
Test de construction de la peau de lames construire / tester
Sous Windows:
Build de la peau de lames de handes - Test de Conan construire / débogage / test.exe
La peau de Shed suppose uniquement un sous-ensemble restreint de Python, donc il ne faut pas s'attendre à ce qu'un programme donné se compile sans aucun changement, si possible. Voir la documentation pour un aperçu des limitations.
La peau de la réussite dépend de certains autres projets, comme le collecteur de déchets Boehm. Veuillez consulter la documentation sur la façon de les installer.
Quelques horaires pour l'exemple «tamis» de la peau du hangar (n = 100000000) et plusieurs implémentations / optimirations Python:
cpython 3.10.6: 13,4 secondes cpython 3.11.0: 11.4 Nuitka 0.6.16: 11.4 PYPY 3.9.12: 5.8 Numba 0,56.4: 2,5 Shedskin 0.9.9: 1,9 Shedskin 0.9.9: 1,8 (Utilisation - Nowrap - Nobounds)
Notez que NuMBA par défaut est INT64 comme type entier, tandis que la peau de la longueur est par défaut INT32. Les performances sont pratiquement égales lors de l'utilisation de la peau de lalaise - longue.
Quelques captures d'écran des exemples de programmes en action:
(Pyllot)
(C64)
(pycsg)
(Othello2)
(perte)
Cette vidéo montre la différence dramatique de performance pour l'exemple de destin avant et après la compilation
Les personnes suivantes ont contribué au développement de la peau:
Shakeb Alireza Hakan Ardo Brian Blais Paul Boddie François Boutines Djamel Cherif James Coughlan Mark Dewing Mark Dufour Artem egorkine Michael Elkins Moataz Elmasry Enzo Erbano Ernesto Ferro Salvatore Ferro Ffao Victor Garcia Luis M. Gonzales Fahrzin Hemmati Folkert Van Heusden Karel Heyse Humhue Johan Kristensen Kousuke Denis de Leeuw Duarte Van Lindberg David Marek Douglas McNeil Andy Miller Jeff Miller Danny Milosavljevic Joaquin Abian Monux John Nagle Harri Pasanen Brent Pedersen Joris van rantwijk RETYO Pierre-Marie de Rodat Jérémie Roquet Mike Schrick SirnotapparingInthistutorial Paul Sokolevsky Thomas Spura Joerg Stippa Dan Stromberg Dave Tweed Jaroslaw Tworek Tony Veijalainen Yuri Victorovich Pavel Vinogradov Jason Ye Liu Zhenhai Joris van Zwieten