muda de pele é um compilador experimental Python-to-C ++. Galpão Pele aceita programas em Python puro, e gera código otimizado C ++. Isto significa que, em combinação com um compilador C ++, que permite a tradução de programas Python em linguagem de máquina altamente eficiente. Para um conjunto de 16 programas de teste não-triviais, medições mostram um aumento de velocidade típica de 2-40 sobre Psyco, cerca de 12, em média, e 2-220 sobre CPython, cerca de 45 em média (ver secção 5 da minha tese de mestrado sobre o direito ). Pele Shed também produz código fonte anotada.
O alto desempenho e abordagem elegante de pele da vertente (é apenas 6000 linhas!) Têm um custo. Em primeiro lugar, atualmente só aceita programas que são de tipagem estática. Isto significa simplesmente que as variáveis somente pode possuir um único tipo. Assim, por exemplo, a = 1; a = '1' não é permitido. Naturalmente, um único tipo pode ser abstrato ou genérico (como no C ++), de modo que, por exemplo a = A (); a = B (), onde A e B tem uma classe base comum, é permitido.
Em segundo lugar, os programas em Python atualmente não pode usar livremente a biblioteca padrão do Python. No entanto, algumas importações comuns são suportados (veja * _. Py), e muitos outros podem ser facilmente adicionados. O problema é de ordem prática, uma vez que, em teoria, é possível criar ligações para a maioria dos módulos de biblioteca. Uma obra-around simples pode ser a única compilação de partes críticas de um programa Python, e se comunicar com ele através, por exemplo arquivos e in- padrão e saída. Desta forma, o programa 'main' pode usar a dinâmica do Python e biblioteca padrão completo, e todo o programa é escrito em Python puro.
Muda de pele ainda é software alpha, e existem algumas outras pequenas limitações, principalmente temporária,. Por favor, leia a seção Limitações com cuidado, antes de tentar compilar um programa. A única coisa que peço em troca de tornar o software disponível sob a GPL, é que você me enviar um e-mail quando você encontrar um problema, que não está listado entre essas limitações. Esta é a maneira mais rápida de obter o seu programa apoiado, desde que eu normalmente não corrigir problemas que eu não conheça. Por favor, deixe-me saber se você gostaria de me à execução de determinadas chamadas de biblioteca
O que é novo nesta versão:.
- Escalabilidade foi novamente muito melhorada.
- Desempenho de arquivo I / O e números complexos foi muito melhorada.
- Três novos módulos são suportados.
- foram adicionados seis novos programas de exemplo.
- Houve muitas outras correções de bugs e melhorias.
O que é novo na versão 0.8:
- Foi adicionado suporte para o & quot; struct & quot; e & quot; matriz & quot; módulos.
- Três novos exemplos foram adicionados, para um total de 57.
- O exemplo C64 foi atualizado, e agora é mais de 3.000 linhas (SLOCCount).
- Uma opção foi adicionada para exibir tracebacks de exceção (shedskin -x).
- Muitos bugs foram corrigidos.
O que é novo na versão 0.1:.
- Suporte aprimorado para 'os' (UNIX)
- A adição de um decodificador JPEG (1200 linhas) e alguns outros programas para o conjunto de programas de exemplo. Correções módulo de extensão.
- Melhoria opções de compilação sob OS X.
- Uma correção tipo de inferência importante.
- sobrecarga variável melhorado.
- melhorias de qualidade.
- Correções para casos setslice e canto delslice.
- xrange retorna um objeto xrange, não iterator.
- Existem várias correções de bugs menores.
O que é novo na versão 0.0.30:.
- suporte de classe definido pelo usuário em módulos de extensão
- implementação conjunto Muito rápido (FFAO).
- apoio número Complex.
- Muitos aperfeiçoamentos de formatação de string.
- Nenhum mapeia para NULL em vez de 0 e as impressões como 'Nenhum'.
- re.match_object.group aceita vários argumentos.
- melhorias de qualidade.
- Herança de outros que Exception exceções embutidas.
- Hash Nada deve funcionar agora.
- Uma correção tipo de inferência importante, e muitas outras correções de bugs.
O que é novo na versão 0.0.29:.
- datetime e ConfigParser apoio
- staticmethod e propriedade decoradores.
- FreeBSD, OpenSolaris e suporte a 64 bits.
- GCC 4.3 correções.
- Suporte para chaves de mapeamento ('% (key) x ..' some_dict%).
- Melhorias para o mecanismo de importação. __init__ é muito menos de um caso especial agora.
- Muitas correções para chamar métodos ancestrais (ex Parent .__ o init __).
- Todos os programas de exemplo agora compilar como módulos de extensão.
- Existem muitas correções de bugs.
Comentários não encontrado