We are delighted to announce GNU Guile release 2.2.4, the fourth bug-fix release in the 2.2 stable release series. See the NEWS excerpt that follows for full details. * * * Guile is an implementation of the Scheme programming language. The Guile web page is located at https://gnu.org/software/guile/, and among other things, it contains a copy of the Guile manual and pointers to more resources. Guile can run interactively, as a script interpreter, and as a Scheme compiler to VM bytecode. It is also packaged as a library so that applications can easily incorporate a complete Scheme interpreter/VM. An application can use Guile as an extension language, a clean and powerful configuration language, or as multi-purpose "glue" to connect primitives provided by the application. It is easy to call Scheme code from C code and vice versa. Applications can add new functions, data types, control structures, and even syntax to Guile, to create a domain-specific language tailored to the task at hand. Guile implements many common Scheme standards, including R5RS, R6RS, and a number of SRFIs. In addition, Guile includes its own module system, full access to POSIX system calls, networking support, multiple threads, dynamic linking, a foreign function call interface, and powerful string processing. Guile 2.2.4 can be installed in parallel with Guile 2.0.x; see https://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html. * * * Changes in 2.2.4 (since 2.2.3): * New interfaces and functionality ** SRFI-71 (Extended LET-syntax for multiple values) Guile now includes SRFI-71, which extends let, let*, and letrec to support assigning multiple values. See "SRFI-71" in the manual for details. ** (web client) export 'http-request' procedure The 'http-request' procedure is the generalized procedure underneath 'http-get', 'http-post', etc. ** GDB support now registers the 'guile-backtrace' GDB command The 'guile-backtrace' GDB command displays a backtrace of the VM stack for the current thread. ** Recognize RISC-V compilation targets in (system base target) * Bug fixes ** Fix stack-marking bug affecting multi-threaded programs () ** Add missing SYNC_IP calls in the VM These could cause multi-threaded code to crash. ** Fix multi-threaded access to modules (, , and ) ** (ice-9 match) now has better documentation ** 'get-bytevector-n' and 'get-bytevector-n!' can now read more than 4 GB ** Fix cross-compilation support for elisp ** Fix error reporting in 'load-thunk-from-memory' ** Fix GOOPS 'instance?' to work on objects that aren't structs () ** Fix type inference for bitwise logical operators () ** Avoid inexact arithmetic in the type inferrer for 'sqrt' ** Fix floating point unboxing regression in 2.2.3 () ** Fix eta-conversion edge cases in peval () ** Correctly interpret SRFI-18 timeout parameters () ** 'select' returns empty sets upon EINTR and EAGAIN () ** Restore pre-2.2.3 '%fresh-auto-compile' behavior This reverts an incorrect fix for . * * * Here are the compressed sources: https://ftp.gnu.org/gnu/guile/guile-2.2.4.tar.gz (18MB) https://ftp.gnu.org/gnu/guile/guile-2.2.4.tar.lz (9MB) https://ftp.gnu.org/gnu/guile/guile-2.2.4.tar.xz (11MB) Here are the GPG detached signatures[*]: https://ftp.gnu.org/gnu/guile/guile-2.2.4.tar.gz.sig https://ftp.gnu.org/gnu/guile/guile-2.2.4.tar.lz.sig https://ftp.gnu.org/gnu/guile/guile-2.2.4.tar.xz.sig Use a mirror for higher download bandwidth: https://www.gnu.org/order/ftp.html Here are the SHA256 checksums: 33b904c0bf4e48e156f3fb1d0e6b0392033bd610c6c9d9a0410c6e0ea96a3e5c guile-2.2.4.tar.gz b72724cb59d4cc1eed005a10a960831efe0f1f7bf17cc6a88fbfab0a48b4bf5c guile-2.2.4.tar.lz d9e8b94af7b206fcf52bec6501b921bd7d0bd7a31fb7e896a35ba8253678e31e guile-2.2.4.tar.xz [*] Use a .sig file to verify that the corresponding file (without the .sig suffix) is intact. First, be sure to download both the .sig file and the corresponding tarball. Then, run a command like this: gpg --verify guile-2.2.4.tar.gz.sig If that command fails because you don't have the required public key, then run this command to import it: gpg --keyserver keys.gnupg.net --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 and rerun the 'gpg --verify' command. This release was bootstrapped with the following tools: Autoconf 2.69 Automake 1.16.1 Libtool 2.4.6 Makeinfo 6.5 Gnulib v0.1-1157-gb03f418 Thanks to Arun Isaac, Christopher Lemmer Webber, Jan Smydke, and Shea Levy who all contributed to this release. Happy hacking with Guile, Andy Wingo, Ludovic Courtès, and Mark H Weaver.