GNU Guile 3.0 släpptes

tog plats släpp GNU Guile 3.0, en gratis implementering av ett funktionellt programmeringsspråk Schema, som stöder möjligheten att bädda in kod i applikationer på andra programmeringsspråk. Guile kan användas som ett språk för att utveckla applikationstillägg, definiera konfiguration eller utveckla komponenter för att koppla ihop de olika primitiverna som applikationen tillhandahåller. Guile är det officiella utvecklingsspråket för tillägg för GNU-operativsystemet.

I hjärtat av Guile är en effektiv virtuell maskin som exekverar en portabel uppsättning instruktioner genererade av en speciell optimeringskompilator. Den virtuella Guile-maskinen integreras enkelt med applikationskod i C och C++. Förutom Scheme-språket, för vilket specifikationsstöd implementeras R5RS, R6RS и R7RS, har Guile-projektet utvecklat kompilatorer för andra språk, såsom ECMAScript, Emacs Lisp och Lua (under utveckling). Paketet innehåller ett bibliotek med moduler som implementerar standardservicefunktioner, som att arbeta med HTTP-protokollet, XML-parsning och användning av objektorienterade programmeringsmetoder.

En nyckelnyhet i GNU Guile 3.0 var introduktionen av en JIT-kompilator, förutom den tidigare erbjudna tolken och bytecode-kompilatorn, exekverad i en speciell virtuell maskin kopplad till applikationen i form av ett bibliotek. JIT låter dig generera maskinkod i farten och påskyndar avsevärt exekveringen av Guile-applikationer (tester visar snabbare upp till 4 gånger). JIT-kompilatorn stöder arkitekturerna x86-64, i686, ARMv7 och AArch64.

Några andra förbättringar:

  • Stöd för den nya Scheme-språkspecifikationen R7RS och biblioteksmoduler definierade i den;
  • Den virtuella Guile-maskinen ger stöd för bytekod på lägre nivå, vilket möjliggör avancerade optimeringar;
  • Stöd för att kombinera interna definitioner och uttryck (till exempel "(define _ (begin (foo) #f))");
  • En enhetlig implementering av en strukturerad datatyp ("poster") föreslås;
  • Undantagshanteringsprimitiver (kast och fångst) har omarbetats;
  • Definierade bindningar för utökad syntax "else", "=>", "..." och "_";
  • I http-request, http-get och andra procedurer relaterade till webbklienten har möjligheten att ladda ner innehåll över en krypterad kommunikationskanal med hjälp av TLS med korrekt certifikatverifiering lagts till.

Källa: opennet.ru

Lägg en kommentar