Jitter paso a ser oficialmente parte del proyecto GNU
Hace pocos dias se dio a conocer la noticia de que el proyecto Jitter pasó a ser oficialmente un proyecto bajo el ala del Proyecto GNU y ahora se está desarrollando bajo el nombre GNU Jitter utilizando infraestructura GNU y de acuerdo con los requisitos del proyecto.
Para quienes desconocen de Jitter, deben saber que esta es una implementación que permite generar máquinas virtuales portátiles y muy rápidas para diseños arbitrarios de lenguajes de programación, cuyo rendimiento de ejecución de código está significativamente por delante de los intérpretes y se acerca al código compilado nativo.
Jitter es altamente portátil y una VM correcta exhibirá exactamente el mismo comportamiento en cualquier plataforma que tenga solo un compilador y una biblioteca C estándar; sin embargo, el rendimiento será mejor si se utiliza una de las arquitecturas compatibles (actualmente: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; segundo nivel: Aarch64, Alpha, ARM, S390x) en sistemas ELF con GCC . Por supuesto, Jitter es parte del proyecto GNU y está diseñado principalmente para su uso en el sistema GNU .
Jitter toma como entrada una especificación de alto nivel de instrucciones soportadas por una máquina virtual, y en la salida forma una implementación lista para usar de una máquina virtual para ejecutar las instrucciones dadas.
La lógica de cada instrucción en la especificación se especifica usando código C. Las características adicionales incluyen soporte para operaciones de bifurcación condicional que son difíciles de implementar en C e inherentes a los lenguajes de programación dinámica, como la verificación de valores de etiquetas y la verificación de desbordamientos.
El tiempo de ejecución de Jitter también presenta un soporte eficiente para operaciones de bifurcación condicional difíciles de implementar usando solo C, como la verificación de etiquetas de valor como lo requieren los lenguajes tipados dinámicamente y la aritmética con verificación de desbordamiento. El código de VM tiene acceso a operaciones de devolución y llamada de procedimiento, en la mayoría de los casos confiando en mecanismos de hardware eficientes.
La máquina virtual resultante está formateada en C con una pequeña cantidad de inserciones de ensamblador. Se proporcionan configuraciones para habilitar varias optimizaciones y seleccionar mecanismos de envío, lo que facilita la migración de una máquina virtual a diferentes plataformas.
Admite el uso de arquitecturas de ejecución de registro, pila y combinación, así como la capacidad de reflejar las estructuras de datos de la máquina virtual en los registros de hardware de la CPU y conectar recolectores de basura.
El código generado incluye una API C simple para sustituir y ejecutar dinámicamente código en una máquina virtual, así como un programa de controlador para ejecutar por separado el código de los archivos de texto en una máquina virtual.
El código C generado está fuertemente condicionado y puede configurarse para ejecutarse utilizando diferentes técnicas de distribución de diversa sofisticación; las técnicas de despacho más eficientes se basan en algún soporte de ensamblaje específico de la arquitectura, pero no específico de la VM, proporcionado por Jitter; todos los modelos de despacho, pero uno también se basa en extensiones GNU C.
Finalmente para quienes estén interesados en conocer más al respecto, deben saber que el código original de Jitter están escritos en C y están disponibles bajo la licencia GPLv3. Puedes conocer más en el siguiente enlace.
¿Como obtener Jitter?
Para quienes estén interesados en poder probar Jitter, pueden obtener el código fuente abriendo una terminal y tecleando en ella el siguiente comando:
git clone http://git.ageinghacker.net/jitter
Hecho esto, ahora procedemos a entrar a la carpeta que tiene el código vamos a ejecutar el script de arranque que sirve para generar los archivos necesarios para configurar y construir Jitter, incluido un script de configuración. Esto lo hacemos con:
cd jitter && ./bootstrap
Cabe mencionar que Jitter sigue las convenciones de GNU para la configuración y la construcción y admite la construcción desde el directorio de origen; de hecho, admite la compilación cruzada e incluso la ejecución del conjunto de pruebas en una compilación cruzada a través de un emulador.
./configure && make
Finalmente para ejecutar basta con teclear:
make check