[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GNU Guile 2.1.6 released (beta)
GNU Guile 2.1.6 released (beta)
Thu, 19 Jan 2017 03:26:40 +0100
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 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
A more detailed NEWS summary follows these details on how to get the
Here are the compressed sources:
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 keys.gnupg.net --recv-keys
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Changes in 2.1.6 (changes since the 2.1.5 alpha release):
* New interfaces
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,
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!