GNU Guile 3.0 ble utgitt

fant sted utgivelse GNU Guile 3.0, en gratis implementering av et funksjonelt programmeringsspråk Scheme, som støtter muligheten til å bygge inn kode i applikasjoner på andre programmeringsspråk. Guile kan brukes som et språk for å utvikle applikasjonsutvidelser, definere konfigurasjon eller utvikle komponenter for å koble sammen de forskjellige primitivene fra applikasjonen. Guile er det offisielle utvidelsesutviklingsspråket for GNU-operativsystemet.

I hjertet av Guile er en effektiv virtuell maskin som utfører et bærbart sett med instruksjoner generert av en spesiell optimeringskompilator. Den virtuelle Guile-maskinen integreres enkelt med applikasjonskode i C og C++. I tillegg til Scheme-språket, som spesifikasjonsstøtte er implementert for R5RS, R6RS и R7RS, har Guile-prosjektet utviklet kompilatorer for andre språk, som ECMAScript, Emacs Lisp og Lua (under utvikling). Pakken inkluderer et bibliotek med moduler som implementerer standard tjenestefunksjoner, for eksempel arbeid med HTTP-protokollen, XML-parsing og bruk av objektorienterte programmeringsmetoder.

En nøkkelinnovasjon i GNU Guile 3.0 var introduksjonen av en JIT-kompilator, i tillegg til den tidligere tilbudte tolken og bytekode-kompilatoren, utført i en spesiell virtuell maskin knyttet til applikasjonen i form av et bibliotek. JIT lar deg generere maskinkode i farten og fremskynder utførelsen av Guile-applikasjoner betydelig (tester viser hastigheter opptil 4 ganger). JIT-kompilatoren støtter x86-64, i686, ARMv7 og AArch64 arkitekturer.

Noen andre forbedringer:

  • Støtte for den nye Scheme-språkspesifikasjonen R7RS og bibliotekmoduler definert i den;
  • Den virtuelle Guile-maskinen gir støtte for bytekode på lavere nivå, noe som tillater avanserte optimaliseringer;
  • Støtte for å kombinere interne definisjoner og uttrykk (for eksempel "(define _ (begin (foo) #f))");
  • En enhetlig implementering av en strukturert datatype ("poster") er foreslått;
  • Unntakshåndteringsprimitiver (kast og fangst) er omarbeidet;
  • Definerte bindinger for utvidet syntaks "else", "=>", "..." og "_";
  • I http-request, http-get og andre prosedyrer knyttet til webklienten er muligheten til å laste ned innhold over en kryptert kommunikasjonskanal ved hjelp av TLS med korrekt sertifikatverifisering lagt til.

Kilde: opennet.ru

Legg til en kommentar