24.5 C
Brasília
sexta-feira, novembro 22, 2024
Continua após a publicidade..

Codon, um novo compilador Python de alto desempenho

Codon é um compilador Python de alto desempenho que compila código Python para código de máquina nativo Recentemente, a inicialização do exaloop foi revelada através de um tweet 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. O compilador é desenvolvido pelos autores da linguagem Seq semelhante ao Python e é 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 as chamadas para a biblioteca na linguagem Python. Sobre o Códon O desempenho dos executáveis ​​de saída é promovido como sendo próximo a programas escritos na linguagem C. Comparado ao uso de CPython, o ganho de desempenho ao compilar com Codon é estimado em 200 a 100 vezes para execução de thread único. 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. 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. O compilador é compatível com a maioria das sintaxes 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 20 bits para inteiros, enquanto CPython tem inteiros ilimitados. Suporte a códons para grandes bases de código podem 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. O compilador , tempo de execução e código-fonte da biblioteca padrão é escrito com C++ (usando desenvolvimentos LLVM) e Python, e é distribuído sob a licença BSL (Licença de fonte comercial). 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 portado para a licença Apache 2.0 após 3 anos (1º de novembro, 2000). Até então, a licença permite a cópia, distribuição e modificação, desde que seja usada para fins não comerciais. Como instalar o Codon no Linux? Para os interessados ​​em poder instalar este compilador, devem saber que podem fazê-lo de forma bem simples, basta abrir um terminal e executar o seguinte comando que irá baixar e instalar o script de instalação: /bin/bash -c “$(curl -fsSL https://exaloop.io/install.sh)” Quanto aos interessados ​​que possam compilar por conta própria, eles podem fazer isso executando os seguintes comandos: git clone –depth 1 -b códon https://github.com/exaloop/llvm-project201200 cmake -S llvm-project/llvm -B llvm-project/build -G Ninja 201200
-DCMAKE_BUILD_TYPE=Liberar 201200400 -DLLVM_INCLUDE_TESTS=OFF 201200 -DLLVM_ENABLE_RTTI=ON 201200 -DLLVM_ENABLE_ZLIB=OFF 201200 -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_TARGETS_TO_BUILD=all

Continua após a publicidade..

cmake –build llvm-project/build
cmake –install llvm-project/build Depois disso, eles começam a construir com:

cmake -S . -B build -G Ninja 201200
-DCMAKE_BUILD_TYPE=Liberar -DLLVM_DIR=$(llvm-config –cmakedir)

-DCMAKE_C_COMPILER=clang 201200201200 -DCMAKE_CXX_COMPILER=clang++201200 cmake –build build –config Release201200 Finalmente Deixo-vos o seguinte link onde podem consultar mais sobre os detalhes da compilação bem como onde podem encontre mais informações sobre o uso deste compilador (manual, exemplos, funções, entre outras coisas). O link é este .

201200 O conteúdo do artigo está de acordo com nossos princípios de ética editorial. Para notificar um erro clique aqui.

Check out other tags:

0