Buvo išleista GNU Guile 3.0

įvyko paleisti GNU Guile 3.0, nemokamas funkcinės programavimo kalbos įgyvendinimas Schema, kuri palaiko galimybę įterpti kodą į programas kitomis programavimo kalbomis. Guile gali būti naudojama kaip kalba kuriant programų plėtinius, apibrėžti konfigūraciją arba kuriant komponentus, jungiančius įvairius programos teikiamus primityvus. Guile yra oficiali GNU operacinės sistemos plėtinių kūrimo kalba.

„Guile“ esmė yra efektyvi virtuali mašina, kuri vykdo nešiojamą instrukcijų rinkinį, sugeneruotą specialaus optimizavimo kompiliatoriaus. Virtualioji mašina Guile lengvai integruojama su programos kodu C ir C++ kalbomis. Be schemos kalbos, kuriai įdiegtas specifikacijų palaikymas 5 RS, 6 RS и 7 RS, Guile projektas sukūrė kompiliatorius kitoms kalboms, pvz., ECMAScript, Emacs Lisp ir Lua (kuriamas). Į paketą įeina biblioteka modulių, įgyvendinančių standartines paslaugų funkcijas, tokias kaip darbas su HTTP protokolu, XML analizavimas ir objektinio programavimo metodų naudojimas.

Pagrindinė GNU Guile 3.0 naujovė buvo JIT kompiliatoriaus įdiegimas, be anksčiau pasiūlyto interpretatoriaus ir baitų kodo kompiliatoriaus, vykdomo specialioje virtualioje mašinoje, susietoje su programa bibliotekos pavidalu. JIT leidžia generuoti mašininį kodą skrydžio metu ir žymiai pagreitina Guile programų vykdymą (testai rodo pagreitį iki 4 kartų). JIT kompiliatorius palaiko x86-64, i686, ARMv7 ir AArch64 architektūras.

Kai kurie kiti patobulinimai:

  • Naujos schemos kalbos specifikacijos palaikymas 7 RS ir jame apibrėžtus bibliotekos modulius;
  • „Guile“ virtualioji mašina palaiko žemesnio lygio baitinį kodą, leidžiantį išplėsti optimizavimą;
  • Vidinių apibrėžimų ir išraiškų derinimo palaikymas (pvz., "(define _ (begin (foo) #f))");
  • Siūlomas vieningas struktūrizuotų duomenų tipo („įrašų“) įgyvendinimas;
  • Išimčių tvarkymo primityvai (metimas ir gaudymas) buvo perdirbti;
  • Apibrėžtos išplėstinės sintaksės „else“, „=>“, „...“ ir „_“ sąsajos;
  • Atliekant http užklausą, http-get ir kitas procedūras, susijusias su žiniatinklio klientu, buvo pridėta galimybė atsisiųsti turinį šifruotu ryšio kanalu naudojant TLS su teisingu sertifikato patvirtinimu.

Šaltinis: opennet.ru

Добавить комментарий