Um novo compilador Python de alto desempenho acaba de chegar por meio da startup Exaloop. A empresa twittou sobre o lançamento do código do projeto Codon, que desenvolve um compilador para a linguagem Python que pode gerar código de máquina puro como saída, não vinculado ao tempo de execução do Python. Segundo a Exaloop, o Codon é um novo compilador Python de alto desempenho.
O compilador é desenvolvido pelos autores da linguagem Seq semelhante ao Python. Seria, portanto, uma continuação de seu desenvolvimento. O projeto também oferece um tempo de execução próprio para arquivos executáveis e uma biblioteca de funções que substitui as chamadas de biblioteca na linguagem Python.
Codon é um novo compilador Python de alto desempenho. Sobre o Codon
O desempenho dos executáveis de saída é considerado próximo ao de programas escritos na linguagem C. Comparado ao uso do CPython, o ganho de desempenho ao compilar com Codon é estimado em 10 a 100 vezes para execução única. Ao mesmo tempo, ao contrário do Python, o Codon implementa adicionalmente a possibilidade de usar multithreading, o que permite obter um aumento ainda maior no desempenho. Codon também permite compilar no nível da função para usar a visualização compilada em projetos Python existentes.
VAI GOSTAR: 10 ideias que todos os desenvolvedores deveriam fazer em 2023
O Codon é construído usando uma arquitetura modular que permite estender a funcionalidade por meio de plug-ins que podem adicionar novas bibliotecas,implementar otimizações de compilador e até fornecer suporte para sintaxe adicional.
Por exemplo,vários plugins estão sendo desenvolvidos em paralelo para uso em bioinformática e matemática financeira. O coletor de lixo Boehm é usado para gerenciamento de memória.
Mais detalhes
O compilador suporta a maior parte da sintaxe do Python, mas a compilação em código nativo impõe uma série de limitações que impedem que o Codon seja usado como um substituto transparente para o CPython. Por exemplo,Codon usa o tipo int de 64 bits para inteiros,enquanto CPython tem inteiros ilimitados.
O suporte de códon para grandes bases de código pode exigir alterações de código. As incompatibilidades são normalmente causadas pela falta de implementação de Codon de certos módulos Python e pela incapacidade de usar alguns dos recursos dinâmicos da linguagem. Para cada uma dessas incompatibilidades,o compilador emite uma mensagem de diagnóstico detalhada com informações sobre como corrigir o problema.
Código fonte
O código fonte para o compilador,tempo de execução e biblioteca padrão é escrito com C++(usando desenvolvimentos LLVM) e Python,e é distribuído sob a Business Source License (BSL). A essência do BSL é que o código de funcionalidade estendida está inicialmente disponível para modificação,mas por algum tempo pode ser usado gratuitamente apenas sujeito a condições adicionais,que exigem a compra de uma licença comercial para contornar.
Os termos de licença adicionais do projeto Codon exigem que o código seja transferido para a Licença Apache 2.0 após 3 anos (1º de novembro de 2025). Até então,a licença permite a cópia,distribuição e modificação,desde que seja utilizada para fins não comerciais.
LEIA TAMBÉM: