Inilabas ang GNU Guile 3.0

naganap pakawalan GNU Guile 3.0, isang libreng pagpapatupad ng isang functional na programming language Scheme, na sumusuporta sa kakayahang mag-embed ng code sa mga application sa iba pang mga programming language. Maaaring gamitin ang Guile bilang isang wika upang bumuo ng mga extension ng application, tukuyin ang configuration, o bumuo ng mga bahagi upang ikonekta ang iba't ibang primitive na ibinigay ng application. Ang Guile ay ang opisyal na extension development language para sa GNU operating system.

Sa gitna ng Guile ay isang mahusay na virtual machine na nagpapatupad ng isang portable na set ng mga tagubilin na nabuo ng isang espesyal na compiler sa pag-optimize. Ang Guile virtual machine ay madaling sumasama sa application code sa C at C++. Bilang karagdagan sa wika ng Scheme, kung saan ipinatupad ang suporta sa pagtutukoy R5RS, R6RS ΠΈ R7RS, ang proyekto ng Guile ay bumuo ng mga compiler para sa iba pang mga wika, tulad ng ECMAScript, Emacs Lisp at Lua (under development). Kasama sa package ang library ng mga module na nagpapatupad ng mga standard service function, tulad ng pagtatrabaho sa HTTP protocol, XML parsing at paggamit ng object-oriented programming method.

Ang isang pangunahing pagbabago sa GNU Guile 3.0 ay ang pagpapakilala ng isang JIT compiler, bilang karagdagan sa naunang inaalok na interpreter at bytecode compiler, na isinagawa sa isang espesyal na virtual machine na nakatali sa application sa anyo ng isang library. Binibigyang-daan ka ng JIT na bumuo ng machine code sa mabilisang at makabuluhang mapabilis ang pagpapatupad ng mga application ng Guile (mga pagsubok ay nagpapakita ng bilis ng hanggang 4 na beses). Ang JIT compiler ay sumusuporta sa x86-64, i686, ARMv7 at AArch64 na mga arkitektura.

Ilang iba pang mga pagpapabuti:

  • Suporta para sa bagong detalye ng wika ng Scheme R7RS at mga module ng library na tinukoy dito;
  • Ang Guile virtual machine ay nagbibigay ng suporta para sa mas mababang antas ng bytecode, na nagbibigay-daan para sa mga advanced na pag-optimize;
  • Suporta para sa pagsasama-sama ng mga panloob na define at expression (halimbawa, "(define _ (begin (foo) #f))");
  • Ang isang pinag-isang pagpapatupad ng isang structured na uri ng data ("mga talaan") ay iminungkahi;
  • Ang pagbubukod sa paghawak ng mga primitive (i-throw at catch) ay muling ginawa;
  • Tinukoy na mga binding para sa pinalawak na syntax na "else", "=>", "..." at "_";
  • Sa http-request, http-get at iba pang mga pamamaraan na nauugnay sa web client, ang kakayahang mag-download ng nilalaman sa isang naka-encrypt na channel ng komunikasyon gamit ang TLS na may tamang pag-verify ng certificate ay naidagdag.

Pinagmulan: opennet.ru

Magdagdag ng komento