Codon, um compilador Python, é publicado

A startup Exaloop publicou o código do projeto Codon, que desenvolve um compilador para a linguagem Python capaz de gerar como saída código de máquina puro, não vinculado ao tempo de execução do Python. O compilador está sendo desenvolvido pelos autores da linguagem Seq semelhante ao Python e está posicionado como uma continuação de seu desenvolvimento. O projeto também oferece seu próprio tempo de execução para arquivos executáveis ​​e uma biblioteca de funções que substitui chamadas de biblioteca em Python. Os códigos-fonte do compilador, tempo de execução e biblioteca padrão são escritos em C++ (usando desenvolvimentos do LLVM) e Python, e são distribuídos sob a BSL (Business Source License).

A licença BSL foi proposta pelos cofundadores do MySQL como uma alternativa ao modelo Open Core. A essência do BSL é que o código de funcionalidade avançada está inicialmente disponível para modificação, mas por algum tempo só pode ser usado gratuitamente se forem atendidas 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é este momento, a licença permite cópia, distribuição e modificação, desde que seja utilizada para fins não comerciais.

O desempenho dos arquivos executáveis ​​de saída é apresentado como próximo ao de programas escritos na linguagem C. Comparado ao uso do CPython, o ganho de desempenho ao compilar usando o Codon é estimado em 10 a 100 vezes para execução de thread único. Além disso, ao contrário do Python, o Codon implementa adicionalmente a capacidade de usar multithreading, o que permite um aumento ainda maior no desempenho. Codon também permite compilar no nível de função individual para usar a representação compilada em projetos Python existentes.

Codon é construído usando uma arquitetura modular que permite aumentar a funcionalidade por meio de plugins, com os quais você pode adicionar novas bibliotecas, implementar otimizações no compilador e até mesmo 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 gerenciar memória.

O compilador suporta a maior parte da sintaxe Python, mas compilar para 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 números inteiros, enquanto CPython usa um tamanho ilimitado para números inteiros. Bases de código grandes podem exigir alterações de código para obter compatibilidade com Codon. Via de regra, as incompatibilidades são causadas pela falta de implementação para Codon de determinados módulos Python e pela impossibilidade de utilizar alguns recursos dinâmicos da linguagem. Para cada incompatibilidade, o compilador emite uma mensagem de diagnóstico detalhada com informações sobre como contornar o problema.

Codon, um compilador Python, é publicado


Fonte: opennet.ru

Adicionar um comentário