A fost lansată GNU Guile 3.0

A avut loc lansare GNU Guile 3.0, implementarea liberă a unui limbaj de programare funcțional Schema, care suportă capacitatea de inserare a codului în aplicații scrise în alte limbaje de programare. Guile poate fi utilizat ca limbaj pentru dezvoltarea extensiilor pentru aplicații, definirea configurației sau dezvoltarea componentelor pentru conectarea diferitelor primitive furnizate de aplicație. Guile este limbajul oficial pentru dezvoltarea extensiilor pentru sistemul de operare GNU.

Baza Guile este o mașină virtuală eficientă care execută un set portabil de instrucțiuni, generat de un compilator optimizator special. Mașina virtuală Guile se integrează ușor cu codul aplicațiilor scrise în C și C++. Pe lângă limbajul Scheme, pentru care a fost implementat suportul specificațiilor R5RS, R6RS și R7RS, în cadrul proiectului Guile au fost dezvoltate și compilatoare pentru alte limbaje, cum ar fi ECMAScript, Emacs Lisp și Lua (în curs de dezvoltare). Pachetul include o bibliotecă de module, în care sunt implementate funcții de servicii tipice, cum ar fi lucrul cu protocolul HTTP, parsarea XML și utilizarea metodelor de programare orientată pe obiect.

Una dintre cele mai importante inovații în GNU Guile 3.0 a fost apariția compilatorului JIT, pe lângă interpretatorul și compilatorul anterior care generează bytecode, executat într-o mașină virtuală specială legată de aplicație sub formă de bibliotecă. JIT permite generarea de cod mașină la cerere și accelerează semnificativ execuția aplicațiilor Guile (testele arată o accelerare de până la 4 ori). Compilatorul JIT suportă funcționarea pe arhitecturi x86-64, i686, ARMv7 și AArch64.

Din alte îmbunătățiri:

  • Suport pentru noua specificație a limbajului Scheme R7RS și modulele de bibliotecă definite în aceasta;
  • În mașina virtuală Guile este implementat un suport pentru bytecode de nivel inferior, care permite aplicarea unor optimizări avansate;
  • Suport pentru combinarea definițiilor interne define și a expresiilor (de exemplu, „(define _ (begin (foo) #f))”);
  • O implementare unificată a tipului de date structurat („records”);
  • Primitivii de gestionare a excepțiilor (throw și catch) au fost reconfigurați;
  • Binding-uri definite pentru sintaxa extinsă „else”, „=>”, „…” și „_”;
  • În http-request, http-get și alte proceduri asociate cu clientul web a fost adăugată posibilitatea de a încărca conținut printr-un canal de comunicare criptat folosind TLS cu o verificare corectă a certificatelor.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster