[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU Guile 2.1.6 released (beta)

From: Andy Wingo
Subject: GNU Guile 2.1.6 released (beta)
Date: Thu, 19 Jan 2017 03:26:40 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

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 address@hidden

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, 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

A more detailed NEWS summary follows these details on how to get the
Guile sources.

Here are the compressed sources:   (18MB)   (11MB)

Here are the GPG detached signatures[*]:

Use a mirror for higher download bandwidth:

Here are the SHA256 checksums:


[*] 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 --recv-keys 

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!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]