Jolt incorpora imágenes de programa y backends de Scheme portables

Fuentes: Program images and portable Scheme backends for Jolt

Jolt, un lenguaje de la familia Lisp que se ejecuta sobre Scheme, ha incorporado dos funcionalidades derivadas de desacoplar su runtime del host. La primera es la posibilidad de serializar imágenes de programa —al estilo de Common Lisp y Smalltalk—, una especie de caja negra que captura el estado completo de la aplicación en un momento dado. En lugar de depender de logs, que obligan a anticipar qué información será relevante, el desarrollador puede volcar toda la memoria a disco cuando ocurre un error, copiar el archivo a su máquina local y explorar el estado desde el REPL, incluidos los datos y las funciones implicadas en el fallo. Las imágenes son agnósticas respecto a la arquitectura, funcionan con recursos abiertos (sockets, ficheros) mediante registros stub que pueden resolverse tras la restauración y se pueden enviar a otra persona para depurar colaborativamente o enseñar, replicando el flujo de trabajo de las máquinas Lisp y Smalltalk. La segunda novedad es una capa de Scheme portátil desacoplada del runtime de Chez: el compilador se ha dividido en un núcleo portable (colecciones, lector, vars, multimétodos), un contrato adaptador con 72 puntos de entrada sa-* agrupados en niveles (sistema, hilos, eval, introspección, FFI, compilación nativa, imagen) y backends específicos por host. Gracias a esta división, Gambit es ya un segundo objetivo, lo que permite ejecutar Jolt en el navegador a través de su backend de JavaScript, como se puede probar en el REPL interactivo del sitio oficial del proyecto.