GNU Guile 3.0 is vrygestel

plaasgevind vrylating GNU Guile 3.0, 'n gratis implementering van 'n funksionele programmeertaal skema, wat die vermoë ondersteun om kode in toepassings in ander programmeertale in te sluit. Guile kan as 'n taal gebruik word om toepassingsuitbreidings te ontwikkel, konfigurasie te definieer of komponente te ontwikkel om die verskillende primitiewe wat deur die toepassing verskaf word, te verbind. Guile is die amptelike uitbreidingsontwikkelingstaal vir die GNU-bedryfstelsel.

In die hart van Guile is 'n doeltreffende virtuele masjien wat 'n draagbare stel instruksies uitvoer wat deur 'n spesiale optimaliseringsamesteller gegenereer word. Die Guile virtuele masjien integreer maklik met toepassingskode in C en C++. Benewens die Skema-taal, waarvoor spesifikasieondersteuning geïmplementeer word R5RS, R6RS и R7RS, het die Guile-projek samestellers vir ander tale ontwikkel, soos ECMAScript, Emacs Lisp en Lua (onder ontwikkeling). Die pakket sluit 'n biblioteek van modules in wat standaarddiensfunksies implementeer, soos om met die HTTP-protokol te werk, XML-ontleding en die gebruik van objekgeoriënteerde programmeringsmetodes.

Die sleutelinnovasie in GNU Guile 3.0 was die bekendstelling van 'n JIT-samesteller, benewens die voorheen aangebied tolk en greepkodesamesteller, uitgevoer in 'n spesiale virtuele masjien wat aan die toepassing gekoppel is in die vorm van 'n biblioteek. JIT laat jou toe om masjienkode op die vlug te genereer en versnel die uitvoering van Guile-toepassings aansienlik (toetse toon versnelling tot 4 keer). Die JIT samesteller ondersteun x86-64, i686, ARMv7 en AArch64 argitekture.

Enkele ander verbeterings:

  • Ondersteuning vir die nuwe Skema-taalspesifikasie R7RS en biblioteekmodules daarin omskryf;
  • Die Guile virtuele masjien bied ondersteuning vir laer-vlak greepkode, wat voorsiening maak vir gevorderde optimalisering;
  • Ondersteuning vir die kombinasie van interne definisies en uitdrukkings (byvoorbeeld, "(definieer _ (begin (foo) #f))");
  • 'n Eenvormige implementering van 'n gestruktureerde datatipe ("rekords") word voorgestel;
  • Uitsondering hantering primitiewe (gooi en vang) is herwerk;
  • Gedefinieerde bindings vir uitgebreide sintaksis "else", "=>", "..." en "_";
  • In http-versoek, http-kry en ander prosedures wat met die webkliënt verband hou, is die vermoë om inhoud oor 'n geënkripteerde kommunikasiekanaal af te laai met behulp van TLS met korrekte sertifikaatverifikasie bygevoeg.

Bron: opennet.ru

Voeg 'n opmerking