stringtranslate.com

Nuitka

Nuitka (pronunciado como / n juː t k ʌ / [2] ) es un compilador de fuente a fuente que compila código Python en código fuente C , aplicando algunas optimizaciones en tiempo de compilación en el proceso, como el plegado y la propagación constantes . en predicción de llamadas, inferencia de tipos y ejecución de declaraciones condicionales. [3] [4] Inicialmente, Nuitka fue diseñado para producir código C++, pero las versiones actuales producen código fuente C usando solo aquellas características de C11 que son compartidas por C++03 , lo que permite una mayor compilación en un formato ejecutable binario por C y C++ modernos. compiladores que incluyen gcc , clang , MinGW o Microsoft Visual C++ . Acepta código Python compatible con varias versiones diferentes de Python (actualmente admite las versiones 2.6, 2.7 y 3.3–3.10) y, opcionalmente, permite la creación de programas independientes que no requieren la instalación de Python en la computadora de destino.

Nuitka se discutió en la conferencia EuroPython de 2012 y a finales del mismo año comenzó un desarrollo serio. Ahora admite prácticamente todas las funciones del lenguaje Python. [5] Se planean optimizaciones adicionales en tiempo de compilación para futuras versiones, incluido evitar el uso de objetos Python para variables adicionales cuyo tipo se pueda inferir en tiempo de compilación, particularmente cuando se usan iteradores, lo que se espera que dé como resultado un gran aumento en el rendimiento. [6]

Limitaciones

Actualmente no es posible realizar una compilación cruzada de archivos binarios (por ejemplo, crear el ejecutable en Windows y enviarlo a macOS).

Los archivos binarios independientes creados utilizando la --standaloneopción de línea de comando incluyen un intérprete CPython integrado para manejar aspectos del lenguaje que no se determinan cuando se compila el programa y deben interpretarse en tiempo de ejecución, como la tipificación pato , el manejo de excepciones y la ejecución dinámica de código (la evalfunción y execfunción o declaración), junto con aquellas bibliotecas nativas y de Python que se necesitan para la ejecución, lo que genera tamaños de archivos bastante grandes.

El diseño de Nuitka depende en gran medida de las partes internas del intérprete CPython y, como resultado, otras implementaciones del lenguaje Python como PyPy , Jython y IronPython no se pueden usar en lugar de CPython para el intérprete y la biblioteca en tiempo de ejecución. [3]

Uso

Nuitka se puede instalar desde los repositorios de muchas distribuciones de Linux. También se puede instalar mediante pipy pip3, respectivamente. La compilación se realiza con nuitka program.pyo llamando al propio Python y luego definiendo qué módulo ejecutar, que en este caso es Nuitka ( python -m nuitka program.py).

Referencias

  1. ^ "Lanzamientos de Nuitka".
  2. ^ Nuitka, el compilador de Python , consultado el 2 de marzo de 2022.
  3. ^ ab Hayen, Kay (21 de junio de 2012). "Manual de usuario". Casa Nuitka . Consultado el 14 de mayo de 2020 .
  4. ^ Yegulalp, Serdar (2 de octubre de 2018). "El compilador Nuitka Python-to-C prepara grandes ganancias de rendimiento". InfoMundo . Consultado el 14 de mayo de 2020 .
  5. ^ Yegulalp, Serdar (19 de diciembre de 2014). "El compilador de Python a C++ promete una ejecución más rápida". InfoMundo . Consultado el 14 de mayo de 2020 .
  6. ^ "Registro de cambios de Nuitka". GitHub . 2020-05-10 . Consultado el 14 de mayo de 2020 .

enlaces externos