GNU Guile 3.0 is verschenen

Heeft plaatsgevonden release GNU Guile 3.0, vrije implementatie van een functionele programmeertaal Scheme, die de mogelijkheid biedt om code in te voegen in applicaties geschreven in andere programmeertalen. Guile kan worden gebruikt als een taal voor het ontwikkelen van extensies voor applicaties, het definiëren van configuraties of het ontwikkelen van componenten voor de interactie tussen verschillende primitieve elementen die door de applicatie worden aangeboden. Guile is de officiële extensietaal voor het besturingssysteem GNU.

De basis van Guile is een efficiënte virtuele machine die een draagbare set instructies uitvoert, gegenereerd door een speciale optimaliserende compiler. De Guile-virtuele machine kan eenvoudig worden geïntegreerd met applicatiecode geschreven in C en C++. Naast de Scheme-taal, waarvoor ondersteuning is geïmplementeerd volgens de specificaties R5RS, R6RS en R7RS, zijn er binnen het Guile-project ook compilers ontwikkeld voor andere talen, zoals ECMAScript, Emacs Lisp en Lua (in ontwikkeling). Het pakket bevat een bibliotheek met modules, waarin typische servicefuncties zijn geïmplementeerd, zoals HTTP-protocolbeheer, XML-parsering en het gebruik van methoden uit de objectgeoriënteerde programmering.

Een belangrijke vernieuwing in GNU Guile 3.0 was de introductie van een JIT-compiler, naast de eerder aangeboden interpreter en compiler naar bytecode, die wordt uitgevoerd in een speciale virtuele machine die aan de applicatie is gekoppeld als een bibliotheek. JIT maakt het mogelijk om machinecode on the fly te genereren en versnelt de uitvoering van Guile-applicaties aanzienlijk (tests tonen snelheden tot 4 keer sneller aan). De JIT-compiler ondersteunt architecturen zoals x86-64, i686, ARMv7 en AArch64.

Enkele andere verbeteringen:

  • Ondersteuning voor de nieuwe specificatie van de Scheme-taal R7RS en de daarin gedefinieerde bibliotheekmodules;
  • In de Guile-virtuele machine is ondersteuning geïmplementeerd voor een laag-niveau bytecode, die uitgebreide optimalisaties mogelijk maakt;
  • Ondersteuning voor de combinatie van interne define-definities en expressies (bijvoorbeeld «(define _ (begin (foo) #f))»);
  • Een gefocuste implementatie van gestructureerde datatypes («records»);
  • Verbeteringen in de primitieve uitzonderingsverwerking (throw en catch);
  • Bindings zijn gedefinieerd voor uitgebreide syntaxis zoals «else», «=>», «…» en «_»;
  • In http-request, http-get en andere gerelateerde webclientprocedures is de mogelijkheid toegevoegd om inhoud te laden via een versleuteld communicatiekanaal met TLS en een correcte certificatavalidatie.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster