GNU Guile 3.0 saw the light of day

Took place Release GNU Guile 3.0, a free implementation of a functional programming language Scheme, which supports the ability to embed code in applications in other programming languages. Guile can be used as a language for developing application extensions, defining configuration, or developing components to communicate the various primitives provided by an application. Guile is the official extension language for the GNU operating system.

At the heart of Guile is an efficient virtual machine that executes a portable set of instructions generated by a special optimizing compiler. The Guile virtual machine easily integrates with C and C++ application code. In addition to the Scheme language, for which specification support is implemented R5RS, R6RS ΠΈ R7RS, the Guile project has also developed compilers for other languages ​​such as ECMAScript, Emacs Lisp, and Lua (under development). The package includes a library of modules that implement typical service functions, such as working with the HTTP protocol, XML parsing, and using object-oriented programming methods.

A key innovation in GNU Guile 3.0 was the introduction of a JIT compiler, in addition to the previously offered interpreter and compiler to bytecode, which runs in a special virtual machine that is linked to the application in the form of a library. JIT allows you to generate machine code on the fly and significantly speeds up the execution of Guile applications (tests show acceleration up to 4 times). The JIT compiler supports x86-64, i686, ARMv7 and AArch64 architectures.

Some of their other improvements:

  • Support for the new Scheme language specification R7RS and library modules defined in it;
  • The Guile VM has support for lower-level bytecode that allows for advanced optimizations;
  • Support for combining internal defines and expressions (e.g. "(define _ (begin (foo) #f))");
  • A unified implementation of a structured data type ("records");
  • Reworked exception handling primitives (throw and catch);
  • Defined bindings for extended syntax "else", "=>", "..." and "_";
  • Added the ability to download content over an encrypted communication channel using TLS with correct verification of certificates in http-request, http-get and other procedures related to the web client.

Source: opennet.ru

Add a comment