We are pleased to announce GNU Guile release 2.1.6. Guile 2.1.6 is the sixth pre-release in what will eventually become the 2.2 release series. We encourage you to test this release and provide feedback to guile-devel@gnu.org.
This is a bug-fix release, mostly fixing bugs related to threads and interrupts. It also includes support for fast floating-point comparisons; special thanks to new Guile committer David Thompson for this feature. See the full NEWS below, for details. The Guile web page is located at http://gnu.org/software/guile/, and among other things, it contains a copy of the Guile manual and pointers to more resources. Guile is an implementation of the Scheme programming language, with support for many SRFIs, packaged for use in a wide variety of environments. In addition to implementing the R5RS Scheme standard, Guile includes a module system, full access to POSIX system calls, networking support, multiple threads, dynamic linking, a foreign function call interface, and powerful string processing. 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 2.1.6 can be installed in parallel with Guile 2.0.x; see http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html. A more detailed NEWS summary follows these details on how to get the Guile sources. Here are the compressed sources: http://alpha.gnu.org/gnu/guile/guile-2.1.6.tar.gz (18MB) http://alpha.gnu.org/gnu/guile/guile-2.1.6.tar.xz (11MB) Here are the GPG detached signatures[*]: http://alpha.gnu.org/gnu/guile/guile-2.1.6.tar.gz.sig http://alpha.gnu.org/gnu/guile/guile-2.1.6.tar.xz.sig Use a mirror for higher download bandwidth: http://www.gnu.org/order/ftp.html Here are the SHA256 checksums: 6f3f34eb2d4b2c6e458c4103e731ce51479c0a4713cf4cfcc29844ec17f0305f guile-2.1.6.tar.gz f3c25770a34bdd4391593f793107991a57b88350f2dcb947e9924d6522595d59 guile-2.1.6.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.1.6.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 FF478FB264DE32EC296725A3DDC0F5358812F8F2 and rerun the 'gpg --verify' command. This release was bootstrapped with the following tools: Autoconf 2.69 Automake 1.15 Libtool 2.4.6 Gnulib v0.1-800-g68b6ade Makeinfo 6.1 Changes in 2.1.6 (changes since the 2.1.5 alpha release): * New interfaces ** suspendable-continuation? This predicate returns true if the delimited continuation captured by aborting to a prompt would be able to be resumed. See "Prompt Primitives" in the manual for more. ** scm_c_prepare_to_wait_on_fd, scm_c_prepare_to_wait_on_cond, ** scm_c_wait_finished See "Interrupts" in the manual for more. * Performance improvements ** Support unboxed floating-point comparisons Thanks to David Thompson for this work. * Incompatible changes ** Rename new array functions See "Arrays as arrays of arrays" in the manual for more. * Bug fixes ** `scm_gc_warn_proc' writes directly to stderr The garbage collector sometimes has warnings to display to the user. Before, Guile would see if the current warning port was a file port, and in that case write the warning to that file, and otherwise default to stderr. Now Guile just writes to stderr, fixing a bug where determining the current warning port would allocate and thus deadlock as the GC warnings are issued with the GC lock held. ** Fix miscompilation in significant-bits computation for loop vars ** Fix many threading bugs ** Fix macOS portability bugs Thanks to Matt Wette!