GNU Guile 3.0 gouf verëffentlecht

stattfonnt huet Fräisetzung GNU Guile 3.0, eng gratis Ëmsetzung vun enger funktioneller Programméierungssprooch Schema, déi d'Fähigkeit ënnerstëtzt fir Code an Uwendungen an anere Programméierungssproochen z'integréieren. Guile kann als Sprooch benotzt ginn fir Applikatiounsextensiounen z'entwéckelen, Konfiguratioun ze definéieren oder Komponenten z'entwéckelen fir déi verschidde Primitiven vun der Applikatioun ze verbannen. Guile ass déi offiziell Extensioun Entwécklungssprooch fir de GNU Betribssystem.

Am Häerz vu Guile ass eng effizient virtuell Maschinn déi e portable Set vun Instruktiounen ausféiert, generéiert vun engem speziellen Optimiséiere Compiler. D'Guile virtuell Maschinn integréiert einfach mat Applikatiounscode an C an C ++. Zousätzlech zu der Schema Sprooch, fir déi Spezifizéierung Ënnerstëtzung ëmgesat gëtt R5RS, R6RS и R7RS, de Guile-Projet huet Compilere fir aner Sproochen entwéckelt, wéi ECMAScript, Emacs Lisp a Lua (ënner Entwécklung). De Package enthält eng Bibliothéik vu Moduler déi Standardservicefunktiounen implementéieren, wéi zum Beispill mam HTTP Protokoll schaffen, XML Parsing an d'Benotzung vun objektorientéierte Programméierungsmethoden.

Eng Schlësselinnovatioun am GNU Guile 3.0 war d'Aféierung vun engem JIT Compiler, nieft dem virdru ugebueden Dolmetscher a Bytecode Compiler, ausgefouert an enger spezieller virtueller Maschinn verbonne mat der Applikatioun a Form vun enger Bibliothéik. JIT erlaabt Iech Maschinncode op der Flucht ze generéieren a beschleunegt d'Ausféierung vu Guile Uwendungen wesentlech (Tester weisen Geschwindegkeet bis zu 4 Mol). De JIT Compiler ënnerstëtzt x86-64, i686, ARMv7 an AArch64 Architekturen.

E puer aner Verbesserungen:

  • Ënnerstëtzung fir déi nei Schema Sprooch Spezifizéierung R7RS a Bibliothéik Moduler an et definéiert;
  • D'Guile virtuell Maschinn gëtt Ënnerstëtzung fir niddereg-Niveau Bytecode, fir fortgeschratt Optimisatiounen erlaabt;
  • Ënnerstëtzung fir intern Definitiounen an Ausdréck ze kombinéieren (zum Beispill "(definéieren _ (beginn (foo) #f))");
  • Eng vereenegt Ëmsetzung vun engem strukturéierten Datetyp ("Records") gëtt proposéiert;
  • Ausnahmshandlungsprimitiven (werfen a fänken) goufen ëmgeschafft;
  • Definéiert Bindungen fir erweidert Syntax "soss", "=>", "..." an "_";
  • An http-Request, http-get an aner Prozeduren am Zesummenhang mam Web Client, ass d'Fäegkeet fir Inhalt iwwer e verschlësselte Kommunikatiounskanal mat TLS mat der korrekter Zertifikaverifizéierung erofzelueden.

Source: opennet.ru

Setzt e Commentaire