Lançamento do Nuitka 2.0, um compilador para a linguagem Python

Uma versão do projeto Nuitka 2.0 está disponível, desenvolvendo um compilador para traduzir scripts Python em uma representação C, que pode ser compilado em um arquivo executável usando libpython para compatibilidade máxima com CPython (usando ferramentas nativas CPython para manipular objetos). Fornece compatibilidade total com as versões atuais do Python 2.6, 2.7, 3.3 - 3.11. Em comparação com o CPython, os scripts compilados mostram uma melhoria de desempenho de 335% nos testes do pystone. O código do projeto é distribuído sob a licença Apache.

Entre as mudanças na nova versão:

  • Adicionada a capacidade de usar variáveis ​​na configuração do pacote, permitindo consultar valores de pacotes instalados em tempo de compilação e usar esses valores para definir o backend. O suporte para variáveis ​​​​na configuração permite resolver muitas tarefas de maneiras padrão que anteriormente exigiam a conexão de plug-ins.
  • Adicionado suporte para parâmetros definidos pelo usuário para influenciar a configuração de cada pacote. Os parâmetros podem ser lidos usando a nova função get_parameter e usados ​​para selecionar o comportamento dos módulos (por exemplo, você pode definir um parâmetro para desabilitar Numba JIT ou Torch JIT).
  • Adicionada opção "--include-onefile-external-data" para especificar modelos de arquivo de dados que são definidos na configuração, mas devem ser fornecidos separadamente do arquivo executável ao construir no modo onefile.
  • Adicionada a opção “--cf-protection” para definir o modo de proteção CFI (Control Flow Integrity) no GCC, que bloqueia violações da ordem de execução normal (fluxo de controle).
  • Para arquivos yaml de plug-in, foi implementada a capacidade de criar somas de verificação para verificações de integridade, que no futuro eles planejam usar para organizar a verificação em tempo de execução.
  • Actions permite que múltiplas opções sejam especificadas, separadas por linhas (uma nova linha é usada como delimitador). Por exemplo: include-data-dir: | a=bc=d
  • Foi implementada uma análise dos tipos de loop, que será utilizada no futuro para implementar otimizações seletivas.
  • Adicionadas otimizações para acelerar o trabalho com variáveis ​​não compartilhadas e de escape.
  • Os recursos do plugin anti-inchaço foram expandidos, que agora podem ser usados ​​​​para reduzir o número de pacotes ao usar as bibliotecas streamlit, torch, knetworkx, distribuído, skimage, bitsandbytes, tf_keras, pip, networkx e pywt (basicamente, ligação para pytest, IPython, nose, triton é excluído e dask).

Fonte: opennet.ru

Adicionar um comentário