Թողարկվել է GNU Guile 3.0-ը

տեղի ունեցավ արձակել GNU Guile 3.0, ֆունկցիոնալ ծրագրավորման լեզվի անվճար իրականացում Սխեմա, որն աջակցում է ծրագրավորման այլ լեզուների հավելվածներում կոդը ներդնելու կարողությանը: Guile-ը կարող է օգտագործվել որպես լեզու՝ հավելվածների ընդլայնումներ մշակելու, կոնֆիգուրացիա սահմանելու կամ հավելվածների կողմից տրամադրվող տարբեր պարզունակները միացնելու համար բաղադրիչներ մշակելու համար: Guile-ը GNU օպերացիոն համակարգի ընդլայնման մշակման պաշտոնական լեզուն է:

Guile-ի հիմքում արդյունավետ վիրտուալ մեքենա է, որը կատարում է հրահանգների շարժական փաթեթ, որը ստեղծվել է հատուկ օպտիմալացնող կոմպիլյատորի կողմից: Guile վիրտուալ մեքենան հեշտությամբ ինտեգրվում է C և C++ հավելվածի կոդի հետ: Ի լրումն Scheme լեզվի, որի համար նախատեսված է հստակեցման աջակցություն 5 ռուբլի, 6 ռուբլի и 7 ռուբլի, Guile նախագիծը մշակել է կոմպիլյատորներ այլ լեզուների համար, ինչպիսիք են ECMAScript, Emacs Lisp և Lua (մշակման փուլում են): Փաթեթը ներառում է մոդուլների գրադարան, որոնք իրականացնում են ստանդարտ սպասարկման գործառույթներ, ինչպիսիք են HTTP արձանագրության հետ աշխատանքը, XML վերլուծությունը և օբյեկտի վրա հիմնված ծրագրավորման մեթոդների օգտագործումը:

GNU Guile 3.0-ի հիմնական նորամուծությունը JIT կոմպիլյատորի ներդրումն էր՝ ի լրումն նախկինում առաջարկված թարգմանիչի և բայթկոդի կազմողի, որն իրականացվել է հատուկ վիրտուալ մեքենայում՝ կապված հավելվածի հետ գրադարանի տեսքով: JIT-ը թույլ է տալիս արագորեն գեներացնել մեքենայի կոդ և զգալիորեն արագացնում է Guile հավելվածների կատարումը (թեստերը ցույց են տալիս արագացում մինչև 4 անգամ): JIT կոմպիլյատորն աջակցում է x86-64, i686, ARMv7 և AArch64 ճարտարապետություններին:

Որոշ այլ բարելավումներ.

  • Աջակցություն նոր Scheme լեզվի ճշգրտմանը 7 ռուբլի և դրանում սահմանված գրադարանային մոդուլներ;
  • Guile վիրտուալ մեքենան ապահովում է ավելի ցածր մակարդակի բայթկոդի աջակցություն՝ թույլ տալով կատարելագործված օպտիմալացումներ;
  • Ներքին սահմանումների և արտահայտությունների համակցման աջակցություն (օրինակ՝ «(սահմանել _ (սկիզբ (foo) #f))»);
  • Առաջարկվում է կառուցվածքային տվյալների տիպի («գրառումներ») միասնական իրականացում.
  • Բացառություն վարելու պրիմիտիվները (նետել և բռնել) վերամշակվել են.
  • Սահմանված կապեր ընդլայնված շարահյուսության համար «այլ», «=>», «...» և «_»;
  • http-հարցում, http-get և վեբ-հաճախորդի հետ կապված այլ ընթացակարգերում ավելացվել է բովանդակություն ներբեռնելու հնարավորությունը գաղտնագրված կապի ալիքով TLS-ի միջոցով՝ հավաստագրի ճիշտ ստուգմամբ:

Source: opennet.ru

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