stringtranslate.com

Relámpago GNU

GNU Lightning es una biblioteca de software libre para generar código en lenguaje ensamblador en tiempo de ejecución. La versión 2.1.3, publicada en septiembre de 2019, es compatible con backends para SPARC (32 bits), x86 (32 y 64 bits), MIPS , ARM (32 y 64 bits), ia64 , HPPA , PowerPC (32 bits), Alpha , S390 y RISC-V (64 bits). [5] [6]

Ventajas sobre otras bibliotecas

Las características que ofrece GNU Lightning lo hacen útil para la compilación Just-in-Time . En comparación con bibliotecas como LLVM o libJIT , GNU Lightning ofrece solo una interfaz de bajo nivel para ensamblar desde un lenguaje ensamblador RISC estandarizado (basado libremente en las arquitecturas SPARC y MIPS [7] ) al lenguaje de máquina de la arquitectura de destino.

Desventajas

No proporciona asignación de registros , análisis de flujo de datos o flujo de control , ni optimización . [ cita requerida ] A partir de la versión 2.x, genera código a través de un gráfico intermedio, en lugar de uno por uno a partir de cada una de sus instrucciones estandarizadas. Este cambio permite la optimización entre instrucciones, como la asignación de registros y la eliminación de código muerto [1].

Conjunto de instrucciones

El conjunto de instrucciones de GNU Lightning se basa vagamente en las arquitecturas RISC existentes .

Tipos

Cuando sea necesario, las instrucciones manejan datos con estos 9 tipos:

Proyectos que utilizan GNU Lightning

GNU Smalltalk , [8] GNU Guile , [9] y CLISP [10] hacen uso de GNU Lightning para la compilación en tiempo real . GNU Lightning se desarrolló inicialmente como una herramienta para ser utilizada en el traductor dinámico de GNU Smalltalk de códigos de bytes a código nativo. [11] GNU Guile 2.9.2 y posteriores dejaron de usar GNU Lightning 2.x en lugar de su propia bifurcación basada en GNU Lightning 1.4 para la generación de código nativo, porque GNU Lightning 2.x dedica más complejidad a la optimización entre instrucciones. [12]

Notas

  1. ^ LGPL-3.0 o posterior desde el 1 de julio de 2007. [3]
  2. ^ LGPL-2.1 o posterior desde el 25 de junio de 2002 hasta el 1 de julio de 2007. [4]

Referencias

  1. ^ "ChangeLog". Proyecto GNU . Consultado el 22 de febrero de 2009 .
  2. ^ Paulo César Pereira de Andrade (8 de febrero de 2024). "¡Lanzamiento de GNU Lightning 2.2.3!" . Consultado el 8 de marzo de 2024 .
  3. ^ "README-hackeado".
  4. ^ "lightning-1.1.1.tar.gz".
  5. ^ "GNU lightning" . Consultado el 15 de enero de 2020 .
  6. ^ "¡Lanzado GNU Lightning 2.1.3!". 18 de septiembre de 2019.
  7. ^ "Uso y portabilidad de GNU Lightning" . Consultado el 22 de febrero de 2009 .
  8. ^ "Página del proyecto GNU Smalltalk" . Consultado el 17 de mayo de 2014 .
  9. ^ "Código nativo Just-In-Time". Archivado desde el original el 13 de mayo de 2020. Consultado el 11 de marzo de 2019 .
  10. ^ "Notas de implementación para GNU CLISP" . Consultado el 23 de febrero de 2009 .
  11. ^ "Manual de usuario de GNU Lightning, agradecimientos" . Consultado el 17 de mayo de 2014 .
  12. ^ "generación de código en tiempo de ejecución de lightening -- wingolog" . Consultado el 10 de diciembre de 2021 .

Enlaces externos