Lanzamento de Nuitka 2.0, un compilador para a linguaxe Python

Está dispoñible unha versión do proxecto Nuitka 2.0, que desenvolve un compilador para traducir scripts de Python nunha representación C, que despois pode compilarse nun ficheiro executable usando libpython para a máxima compatibilidade con CPython (usando ferramentas nativas de CPython para manipular obxectos). Compatibilidade completa coas versións actuais de Python 2.6, 2.7, 3.3 - 3.11. En comparación con CPython, os scripts compilados mostran unha mellora do rendemento do 335 % nas probas de pystone. O código do proxecto distribúese baixo a licenza Apache.

Entre os cambios na nova versión:

  • Engadiuse a posibilidade de usar variables na configuración do paquete, o que lle permite consultar os valores dos paquetes instalados no momento da compilación e usar eses valores para definir o backend. O soporte para variables na configuración permítelle resolver moitas tarefas de formas estándar que antes requirían conectar complementos.
  • Engadido soporte para parámetros definidos polo usuario para influír na configuración de cada paquete. Pódense ler os parámetros mediante a nova función get_parameter e utilizarse para seleccionar o comportamento dos módulos (por exemplo, pode configurar un parámetro para desactivar Numba JIT ou Torch JIT).
  • Engadiuse a opción "--include-onefile-external-data" para especificar modelos de ficheiros de datos que se definen na configuración pero que deben proporcionarse por separado do ficheiro executable cando se crean en modo onefile.
  • Engadiuse a opción "--cf-protection" para establecer o modo de protección CFI (Integridade do fluxo de control) en GCC, que bloquea as violacións da orde de execución normal (fluxo de control).
  • Para os ficheiros yaml do complemento, implementouse a capacidade de crear sumas de verificación para as comprobacións de integridade, que no futuro pensan usar para organizar a verificación en tempo de execución.
  • Actions permite especificar varias opcións, separadas por liñas (utilízase unha nova liña como delimitador). Por exemplo: include-data-dir: | a=bc=d
  • Implementouse unha análise de tipos de bucles, que se utilizarán no futuro para implementar optimizacións selectivas.
  • Engadíronse optimizacións para acelerar o traballo con variables non compartidas e escapadas.
  • Ampliáronse as capacidades do complemento anti-bloat, que agora se pode usar para reducir o número de paquetes cando se usan as bibliotecas streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx e pywt (basicamente vinculantes). a pytest, IPython, nose, triton está excluído e dask).

Fonte: opennet.ru

Engadir un comentario