Es va llançar GNU Guile 3.0

tingué lloc alliberament GNU Guile 3.0, una implementació gratuïta d'un llenguatge de programació funcional Esquema, que admet la possibilitat d'incrustar codi en aplicacions en altres llenguatges de programació. Guile es pot utilitzar com a llenguatge per desenvolupar extensions d'aplicacions, definir configuració o desenvolupar components per connectar les diverses primitives proporcionades per l'aplicació. Guile és el llenguatge oficial de desenvolupament d'extensions per al sistema operatiu GNU.

Al cor de Guile hi ha una màquina virtual eficient que executa un conjunt portàtil d'instruccions generades per un compilador d'optimització especial. La màquina virtual Guile s'integra fàcilment amb el codi de l'aplicació en C i C++. A més del llenguatge Scheme, per al qual s'implementa el suport d'especificacions R5RS, R6RS и R7RS, el projecte Guile ha desenvolupat compiladors per a altres llenguatges, com ara ECMAScript, Emacs Lisp i Lua (en desenvolupament). El paquet inclou una biblioteca de mòduls que implementen funcions de servei estàndard, com ara treballar amb el protocol HTTP, l'anàlisi XML i l'ús de mètodes de programació orientats a objectes.

Una innovació clau a GNU Guile 3.0 va ser la introducció d'un compilador JIT, a més de l'intèrpret i el compilador de bytecode que s'ofereixen anteriorment, executat en una màquina virtual especial vinculada a l'aplicació en forma de biblioteca. JIT us permet generar codi màquina sobre la marxa i accelera significativament l'execució de les aplicacions Guile (les proves mostren una velocitat de fins a 4 vegades). El compilador JIT admet arquitectures x86-64, i686, ARMv7 i AArch64.

Algunes altres millores:

  • Suport per a la nova especificació del llenguatge Scheme R7RS i mòduls de biblioteca definits en ella;
  • La màquina virtual Guile proporciona suport per a bytecode de nivell inferior, permetent optimitzacions avançades;
  • Suport per combinar definicions i expressions internes (per exemple, "(definir _ (begin (foo) #f))");
  • Es proposa una implementació unificada d'un tipus de dades estructurades ("registres");
  • S'han reelaborat les primitives de gestió d'excepcions (llenar i atrapar);
  • Enllaços definits per a la sintaxi ampliada "else", "=>", "..." i "_";
  • A http-request, http-get i altres procediments relacionats amb el client web, s'ha afegit la possibilitat de descarregar contingut a través d'un canal de comunicació xifrat mitjançant TLS amb la verificació correcta del certificat.

Font: opennet.ru

Afegeix comentari