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