GNU Guile 3.0 blev udgivet

tog sted релиз GNU Guile 3.0, en gratis implementering af et funktionelt programmeringssprog Scheme, som understøtter muligheden for at integrere kode i applikationer på andre programmeringssprog. Guile kan bruges som et sprog til at udvikle applikationsudvidelser, definere konfiguration eller udvikle komponenter til at forbinde de forskellige primitiver, der leveres af applikationen. Guile er det officielle udvidelsesudviklingssprog til GNU-operativsystemet.

I hjertet af Guile er en effektiv virtuel maskine, der udfører et bærbart sæt instruktioner genereret af en speciel optimeringskompiler. Den virtuelle Guile-maskine integreres nemt med applikationskode i C og C++. Ud over Scheme-sproget, for hvilket der er implementeret specifikationsunderstøttelse R5RS, R6RS и R7RS, har Guile-projektet udviklet compilere til andre sprog, såsom ECMAScript, Emacs Lisp og Lua (under udvikling). Pakken indeholder et bibliotek af moduler, der implementerer standard servicefunktioner, såsom arbejde med HTTP-protokollen, XML-parsing og brug af objektorienterede programmeringsmetoder.

En vigtig nyskabelse i GNU Guile 3.0 var introduktionen af ​​en JIT-kompiler, ud over den tidligere tilbudte fortolker og bytekode-kompiler, udført i en speciel virtuel maskine knyttet til applikationen i form af et bibliotek. JIT giver dig mulighed for at generere maskinkode i farten og fremskynder eksekveringen af ​​Guile-applikationer betydeligt (test viser hastigheder op til 4 gange). JIT compileren understøtter x86-64, i686, ARMv7 og AArch64 arkitekturer.

Nogle andre forbedringer:

  • Understøttelse af den nye Scheme-sprogspecifikation R7RS og biblioteksmoduler defineret i det;
  • Den virtuelle Guile-maskine understøtter bytekode på lavere niveau, hvilket giver mulighed for avancerede optimeringer;
  • Understøttelse til at kombinere interne definerer og udtryk (for eksempel "(define _ (begin (foo) #f))");
  • Der foreslås en samlet implementering af en struktureret datatype ("records");
  • Undtagelseshåndteringsprimitiver (kast og fangst) er blevet omarbejdet;
  • Definerede bindinger for udvidet syntaks "else", "=>", "..." og "_";
  • I http-request, http-get og andre procedurer relateret til webklienten er muligheden for at downloade indhold over en krypteret kommunikationskanal ved hjælp af TLS med korrekt certifikatbekræftelse blevet tilføjet.

Kilde: opennet.ru

Tilføj en kommentar