[Top][All Lists]

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

GNU Guile 2.1.8 released (beta)

From: Andy Wingo
Subject: GNU Guile 2.1.8 released (beta)
Date: Fri, 10 Mar 2017 14:30:52 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

We are pleased to announce GNU Guile release 2.1.8.

Guile 2.1.8 is the eighth pre-release in what will eventually become the
2.2 release series.  We are optimistic that no further pre-releases will
be required.  We encourage you to test this pre-release and provide
feedback to address@hidden

This release focuses on portability bugs.  There are also a number of
miscellaneous fixes.  See the full NEWS below for an incomplete list of
bugs fixed, along with improvements to the GUILE_PROGS macro and the
addition of truly thread-local fluids.

With luck, we will be able to make a stable 2.2.0 release next week, so
do give this tarball a try!

                             *  *  *

Guile is an implementation of the Scheme programming language.

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

Guile 2.1.8 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:   (17MB)   (10MB)

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.8.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-1157-gb03f418
  Makeinfo 6.3

                             *  *  *

Changes in 2.1.8 (changes since the 2.1.7 alpha release):

* Notable changes

** Update to latest 2.0 changes

Notably this includes the fix for CVE-2016-8606 and the fix to make
Guile's builds reproducible.

** GUILE_PROGS searches for versioned Guile

The GUILE_PROGS autoconf macro can take a required version argument.  As
a new change, that version argument is additionally searched for as a
suffix.  For example, GUILE_PROGS(2.2) would look for guile-2.2,
guile2.2, guile-2, guile2, and then guile.  The found prefix is also
applied to guild, guile-config, and the like.  Thanks to Freja Nordsiek
for this work.

** Add thread-local fluids

Guile now has support for fluids whose values are not captured by
`current-dynamic-state' and not inheritied by child threads, and thus
are local to the kernel thread they run on.  See "Thread-Local
Variables" in the manual, for more.

* Bug fixes

** Fix build errors on macOS
** Fix build errors on Cygwin
** Fix build errors with clang
** Fix statprof and gcprof stack narrowing
** Fix errors on platforms with 64 KB pages
** Fix make-polar signedness of zeros
** Fix backtraces in case-lambda with multiple cases
** Fix generic function dispatch with multiple arities
** Fix guild compile --to=cps
** Fix bogus strength reduction on (* -1 x)
** Fix type inference when multiplying flonum with complex
** Fix bug comparing real and complex numbers
** Improve memory use of read-string / get-string-all
** Allow contification within case-lambda
** Relax some constraints for circular module dependencies
** Fix scm_with_guile for threads already known to libgc
** Better errors for keyword arguments missing values (foo #:bar)
** Various manual updates
** Use docstrings instead of comments for many core Guile functions
** Support truncate-file on string ports
** Getting output from R6RS string ports now truncates buffer
** Fix class-allocated GOOPS slots
** Fix tracing/breakpoints (broken in 2.2 since a long time!)
** `select' just returns instead of throwing exception on EINTR

reply via email to

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