A pele de galpão é um transpiler, que pode traduzir programas Python 3 pura, mas implicitamente, estaticamente, em C ++ otimizado. Ele pode gerar programas independentes ou módulos de extensão que podem ser importados e usados em programas Python maiores.
Além da restrição de digitação, os programas não podem usar livremente a biblioteca padrão do Python (embora cerca de 25 módulos comuns, como aleatório e RE, sejam atualmente suportados). Além disso, nem todos os recursos do Python, como funções aninhadas e números variáveis de argumentos, são suportados (consulte a documentação para obter detalhes).
Para um conjunto de 80 programas não triviais (em mais de 25.000 linhas no total (sloccount)), as medidas mostram uma aceleração típica de 1 a 100 vezes sobre o CPython.
Compilar e executar o 'Olá, mundo!' (test.py) Exemplo em Linux/OSX:
Teste de construção de pele de sheds construção/teste
Sob Windows:
Build Build -Construção -Connan Teste Build/Debug/test.exe
A pele de galpão suporta apenas um subconjunto restrito de Python; portanto, não se deve esperar que um determinado programa compile sem nenhuma alteração, se possível. Veja a documentação para obter uma visão geral das limitações.
A pele de galpão depende de outros projetos, como o coletor de lixo da Boehm. Consulte a documentação sobre como instalá -los.
Alguns horários para o exemplo de 'peneira' do galpão (n = 100000000) e várias implementações/otimizadores do Python:
Cpython 3.10.6: 13,4 segundos 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 (usando - -owrap - -nobounds)
Observe que o NUMBA é o padrão do INT64 como tipo inteiro, enquanto o Shed Skin padroniza para o INT32. O desempenho é praticamente igual ao usar o Shedskin -Long.
Algumas capturas de tela dos programas de exemplo em ação:
(Pylot)
(C64)
(pycsg)
(Othello2)
(ruína)
Este vídeo mostra a diferença dramática de desempenho para o exemplo do Doom antes e depois da compilação
As seguintes pessoas contribuíram para o desenvolvimento da pele do derramamento:
Shakeeb 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 Retsyo Pierre-Marie de Rodat JÉRÉMIE Roquet Mike Schrick Sirnotappearinginthistutorial 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