Vio luz GNU Guile 3.0

Se realizó lanzamiento GNU Guile 3.0, una implementación libre de un lenguaje de programación funcional Scheme, que soporta la posibilidad de incrustar código en aplicaciones escritas en otros lenguajes de programación. Guile puede ser utilizado como un lenguaje para el desarrollo de extensiones para aplicaciones, definición de configuraciones o desarrollo de componentes para conectar diversos primitivos que proporciona la aplicación. Guile es el lenguaje oficial para el desarrollo de extensiones del sistema operativo GNU.

La base de Guile es una máquina virtual eficiente que ejecuta un conjunto de instrucciones portátil, generado por un compilador optimizador especial. La máquina virtual Guile se integra fácilmente con el código de aplicaciones en C y C++. Además del lenguaje Scheme, para el que se ha implementado soporte de las especificaciones R5RS, R6RS y R7RS, como parte del proyecto Guile, se han desarrollado compiladores también para otros lenguajes, como ECMAScript, Emacs Lisp y Lua (en proceso de desarrollo). El paquete incluye una biblioteca de módulos, que implementan funciones de servicio típicas, como manejo de protocolo HTTP, análisis XML y uso de métodos de programación orientada a objetos.

Una de las novedades clave en GNU Guile 3.0 es la aparición del compilador JIT, además de los interpretadores y compiladores previamente disponibles en bytecode, que se ejecuta en una máquina virtual especial, vinculada a la aplicación en forma de biblioteca. El JIT permite generar código máquina sobre la marcha y acelera significativamente la ejecución de aplicaciones Guile (las pruebas muestran aceleraciones de hasta 4 veces). El compilador JIT es compatible con arquitecturas x86-64, i686, ARMv7 y AArch64.

Algunas de las otras mejoras:

  • Soporte para la nueva especificación del lenguaje Scheme R7RS y los módulos de biblioteca definidos en ella;
  • La máquina virtual Guile implementa soporte para un bytecode de bajo nivel que permite aplicar optimizaciones avanzadas;
  • Soporte para combinar definiciones internas de define y expresiones (por ejemplo, «(define _ (begin (foo) #f))»);
  • Se ha propuesto una implementación unificada de tipos de datos estructurados («records»);
  • Se han rediseñado los primitivos de manejo de excepciones (throw y catch);
  • Se han definido enlaces para la sintaxis extendida «else», «=>», «…» y «_»;
  • En http-request, http-get y otros procedimientos relacionados con el cliente web se ha añadido la posibilidad de cargar contenido a través de un canal de comunicación cifrado utilizando TLS con verificación correcta de certificados.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster