GNU Guile 3.0 waard frijlitten

barde frijlitte GNU Guile 3.0, in fergese ymplemintaasje fan in funksjonele programmeartaal Scheme, dy't de mooglikheid stipet om koade yn te lizzen yn applikaasjes yn oare programmeartalen. Guile kin brûkt wurde as taal om tapassingsútwreidings te ûntwikkeljen, konfiguraasje te definiearjen, of komponinten te ûntwikkeljen om de ferskate primitives te ferbinen dy't troch de applikaasje levere wurde. Guile is de offisjele útwreidingsûntwikkelingstaal foar it GNU-bestjoeringssysteem.

Yn it hert fan Guile is in effisjinte firtuele masine dy't in draachbere set ynstruksjes útfiert generearre troch in spesjale optimalisearjende kompilator. De firtuele masine fan Guile yntegreart maklik mei applikaasjekoade yn C en C ++. Neist de skemataal, wêrfoar spesifikaasjestipe wurdt ymplementearre R5RS, R6RS и R7RS, it Guile-projekt hat gearstallers ûntwikkele foar oare talen, lykas ECMAScript, Emacs Lisp en Lua (yn ûntwikkeling). It pakket omfettet in bibleteek fan modules dy't standert tsjinstfunksjes ymplementearje, lykas wurkjen mei it HTTP-protokol, XML-parsearjen en it brûken fan objektrjochte programmearringmetoaden.

In wichtige ynnovaasje yn GNU Guile 3.0 wie de ynfiering fan in JIT-kompiler, neist de earder oanbeane tolk en bytecode-kompiler, útfierd yn in spesjale firtuele masine ferbûn oan de applikaasje yn 'e foarm fan in biblioteek. JIT lit jo masinekoade op 'e flecht generearje en fersnelt de útfiering fan Guile-applikaasjes signifikant (tests litte fersnelling oant 4 kear sjen). De JIT-kompiler stipet x86-64, i686, ARMv7 en AArch64-arsjitektueren.

Guon oare ferbetterings:

  • Stipe foar de nije skema-taalspesifikaasje R7RS en biblioteek modules definiearre yn it;
  • De firtuele masine fan Guile biedt stipe foar bytekoade op legere nivo, wêrtroch avansearre optimisaasjes mooglik binne;
  • Stipe foar it kombinearjen fan ynterne definiearret en útdrukkingen (bygelyks "(define _ (begjin (foo) #f))");
  • In ferienige ymplemintaasje fan in strukturearre gegevenstype ("records") wurdt foarsteld;
  • Útsûndering ôfhanneljen primitives (smyt en fangen) binne reworked;
  • Definearre bindingen foar útwreide syntaksis "oars", "=>", "..." en "_";
  • Yn http-request, http-get en oare prosedueres yn ferbân mei de webclient, is de mooglikheid om ynhâld te downloaden oer in fersifere kommunikaasjekanaal mei TLS mei juste sertifikaatferifikaasje tafoege.

Boarne: opennet.ru

Add a comment