[Top][All Lists]

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

GNU Guile 3.0.1 released

From: Ludovic Courtès
Subject: GNU Guile 3.0.1 released
Date: Sun, 08 Mar 2020 17:11:38 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

We are delighted to announce GNU Guile release 3.0.1, the first bug-fix
release of the new 3.0 stable series.  This release represents 45
commits by 7 people since version 3.0.0.  See the NEWS excerpt that
follows for full 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, packaged
for use in a wide variety of environments.  In addition to implementing
the R5RS, R6RS, and R7RS Scheme standards, Guile includes full access to
POSIX system calls, networking support, multiple threads, dynamic
linking, a foreign function call interface, powerful string processing,
and HTTP client and server implementations.

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 3.0.0 can be installed in parallel with Guile 2.2.x; see

                             *  *  *

Changes in 3.0.1 (since 3.0.0):

* New interfaces and functionality

** Export constructor and predicate for '&quit-exception'

The (ice-9 exceptions) module, new in 3.0.0, now exports
'quit-exception?' and 'make-quit-exception', which is consistent with
other exception types.

** (texinfo plain-text) now exports '*line-width*' fluid

The new '*line-width*' fluid allows users to specify the width of a line
for the purposes of line wrapping.  See "texinfo plain-text" in the

** R7RS support recognizes the '.sld' extension

The '.sld' is what the R7RS suggests as a source file name extension.
It is now recognized when running "guile --r7rs", as well as
the '.guile.sld' extension.

* Bug fixes

** 'hash' correctly handles keywords, ports, hash tables, etc.

It used to be that the 'hash' procedure would return the same value for
all keyword objects, the same value for all hash tables, the same value
for all input ports, etc.

** 'include' no longer rejects relative file names

A bug in 3.0.0 would lead 'include' to error out when passed a relative
file name.

** Reduce GC pressure when using bignums

Guile no longer installs a finalizer on each bignum (large integer) it
creates.  This significantly improves speed and memory usage on
applications that make heavy use of bignums, such as the compiler

** Fix expansion of 'error' calls with a non-constant argument

Calls to the 'error' primitive with a non-constant argument, as in
(error message), would be incorrectly expanded by the compiler, leading
to non-printable errors ("Error while printing exception").

** Improve source location information for top-level references

Source location information, as is visible upon "unbound variable"
errors, is now more accurate.

** Web client treats TLS "premature termination" error as EOF

This allows 'http-request' from (web client) to gracefully handle
servers that terminate connections abruptly after responding to a
"Connection: close" request.

** Fix bug restoring a JIT continuation from the interpreter

** Export C symbols 'scm_sym_lambda', 'scm_sym_quote', etc. again

Those C symbols were inadvertently made private in 3.0.0.

** Fix build on IA64 and on platforms where the stack grows upwards

** Fix JIT compilation on 64-bit Cygwin

** texinfo properly renders @acronym in plain text

** Compiler now optimizes (logior 0 INT)

** Fix Readline configure check for the sake of libedit

This fixes builds on macOS against the system-provided libedit.

** Provided 'GUILE_PKG' Autoconf macro now detects Guile 3.0

                             *  *  *

Here are the compressed sources:   (21MB)   (11MB)   (13MB)

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-3.0.1.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 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.7
  Gnulib v0.1-1157-gb03f418

Happy hacking with Guile!

Ludovic Courtès and Andy Wingo.

Attachment: signature.asc
Description: PGP signature

reply via email to

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