Izdan je GNU Guile 3.0

održan pustiti GNU Guile 3.0, besplatna implementacija funkcionalnog programskog jezika Šema, koji podržava mogućnost ugrađivanja koda u aplikacije na drugim programskim jezicima. Guile se može koristiti kao jezik za razvoj proširenja aplikacije, definiranje konfiguracije ili razvoj komponenti za povezivanje različitih primitiva koje pruža aplikacija. Guile je službeni jezik za razvoj proširenja za GNU operativni sistem.

U srcu Guilea je efikasna virtuelna mašina koja izvršava prenosivi skup instrukcija koje generiše poseban kompajler za optimizaciju. Guile virtuelna mašina se lako integriše sa kodom aplikacije u C i C++. Pored jezika šeme, za koji je implementirana specifikacijska podrška R5RS, R6RS и R7RS, projekat Guile je razvio kompajlere za druge jezike, kao što su ECMAScript, Emacs Lisp i Lua (u razvoju). Paket uključuje biblioteku modula koji implementiraju standardne servisne funkcije, kao što je rad sa HTTP protokolom, XML raščlanjivanje i korištenje metoda objektno orijentisanog programiranja.

Ključna inovacija u GNU Guile 3.0 bilo je uvođenje JIT kompajlera, pored prethodno ponuđenog interpretatora i kompajlera bajtkoda, koji se izvodi u posebnoj virtuelnoj mašini vezanoj za aplikaciju u obliku biblioteke. JIT vam omogućava da generišete mašinski kod u hodu i značajno ubrzava izvršavanje Guile aplikacija (testovi pokazuju ubrzanje do 4 puta). JIT kompajler podržava x86-64, i686, ARMv7 i AArch64 arhitekture.

Još neka poboljšanja:

  • Podrška za novu specifikaciju jezika šeme R7RS i bibliotečki moduli definisani u njemu;
  • Guile virtuelna mašina pruža podršku za bajt kod nižeg nivoa, omogućavajući napredne optimizacije;
  • Podrška za kombinovanje internih definicija i izraza (na primjer, "(define _ (begin (foo) #f))");
  • Predlaže se objedinjena implementacija strukturiranog tipa podataka (“zapisi”);
  • Primitivi za obradu izuzetaka (bacanje i hvatanje) su prerađeni;
  • Definirane veze za proširenu sintaksu "else", "=>", "..." i "_";
  • U http-request, http-get i drugim procedurama vezanim za web klijenta, dodata je mogućnost preuzimanja sadržaja preko šifrovanog komunikacijskog kanala koristeći TLS uz ispravnu verifikaciju certifikata.

izvor: opennet.ru

Dodajte komentar