GNU Guile 3.0 estis publikigita

okazis liberigi GNU Guile 3.0, libera efektivigo de funkcia programlingvo Skemo, kiu subtenas la kapablon enigi kodon en aplikojn en aliaj programlingvoj. Guile povas esti uzata kiel lingvo por evoluigi aplikaĵ-etendaĵojn, difini agordon aŭ evoluigi komponentojn por ligi la diversajn primitivulojn disponigitajn per la aplikaĵo. Guile estas la oficiala etenda evolulingvo por la operaciumo GNU.

Ĉe la koro de Guile estas efika virtuala maŝino, kiu plenumas porteblan aron de instrukcioj generitaj de speciala optimumiga kompililo. La virtuala maŝino Guile facile integriĝas kun aplika kodo en C kaj C++. Aldone al la Skema lingvo, por kiu specifsubteno estas efektivigita R5RS, R6RS и R7RS, la projekto Guile evoluigis kompililojn por aliaj lingvoj, kiel ECMAScript, Emacs Lisp kaj Lua (evoluinta). La pakaĵo inkluzivas bibliotekon de moduloj, kiuj efektivigas normajn servofunkciojn, kiel labori kun la HTTP-protokolo, XML-analizado kaj la uzo de objekt-orientitaj programaj metodoj.

Ŝlosila novigado en GNU Guile 3.0 estis la enkonduko de JIT-kompililo, krom la antaŭe ofertita interpretisto kaj bajtokoda kompililo, efektivigita en speciala virtuala maŝino ligita al la aplikaĵo en la formo de biblioteko. JIT ebligas al vi generi maŝinkodon sur la flugo kaj signife plirapidigas la ekzekuton de Guile-aplikoj (testoj montras rapidiĝon ĝis 4 fojojn). La JIT-kompililo subtenas arkitekturojn x86-64, i686, ARMv7 kaj AArch64.

Iuj aliaj plibonigoj:

  • Subteno por la nova Skema lingvospecifo R7RS kaj bibliotekmoduloj difinitaj en ĝi;
  • La virtuala maŝino Guile disponigas subtenon por malsupra-nivela bajtokodo, enkalkulante altnivelajn optimumigojn;
  • Subteno por kombini internajn difinojn kaj esprimojn (ekzemple, "(difini _ (komenci (foo) #f))");
  • Unuigita efektivigo de strukturita datumtipo ("rekordoj") estas proponita;
  • Escepto-traktado de primitivoj (ĵeto kaj kapto) estis reverkitaj;
  • Difinitaj ligoj por plilongigita sintakso "else", "=>", "..." kaj "_";
  • En http-peto, http-get kaj aliaj proceduroj rilataj al la retkliento, la kapablo elŝuti enhavon per ĉifrita komunika kanalo uzante TLS kun ĝusta atestilkontrolo estis aldonita.

fonto: opennet.ru

Aldoni komenton