[Top][All Lists]

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

GNU Guile 2.0.3 released

From: Ludovic Courtès
Subject: GNU Guile 2.0.3 released
Date: Sat, 22 Oct 2011 17:44:17 +0200
User-agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.90 (gnu/linux)

We are pleased to announce GNU Guile release 2.0.3, the next maintenance
release for the 2.0.x stable series.

The Guile web page is located at .

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 and
a large subset of R6RS, 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

Guile can run interactively, as a script interpreter, and as a Scheme
compiler to VM bytecode suitable for stand-alone applications.  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.

Here are the compressed sources:   (6.6MB)   (4.1MB)

Here are the GPG detached signatures[*]:

To reduce load on the main server, use a mirror listed at:

Here are the MD5 and SHA1 checksums:

3b8b4e1083037f29d2c4704a6d55f2a8  guile-2.0.3.tar.gz
f8b511ad43bbda0a1cbb1c52ceeebdf7  guile-2.0.3.tar.xz
f555b811fa06ec15c07fc8f17acf806452ea98a0  guile-2.0.3.tar.gz
4fde55bbd612adda267420d86d8b395d49031809  guile-2.0.3.tar.xz

[*] You can use either of the above signature files 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.0.3.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 EA52ECF4

and rerun the `gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.68
  Automake 1.11.1
  Libtool 2.4
  Gnulib v0.0-6523-gb3609c1

This release contains compiler improvements, bug fixes, and some new
features.  Here are the highlights, taken from the `NEWS' file:

  Changes in 2.0.3 (since 2.0.2):

  * Speed improvements

  ** Guile has a new optimizer, `peval'.

  `Peval' is a partial evaluator that performs constant folding, dead code
  elimination, copy propagation, and inlining.  By default it runs on
  every piece of code that Guile compiles, to fold computations that can
  happen at compile-time, so they don't have to happen at runtime.

  If we did our job right, the only impact you would see would be your
  programs getting faster.  But if you notice slowdowns or bloated code,
  please send a mail to address@hidden with details.

  Thanks to William R. Cook, Oscar Waddell, and Kent Dybvig for inspiring
  peval and its implementation.

  You can see what peval does on a given piece of code by running the new
  `,optimize' REPL meta-command, and comparing it to the output of
  `,expand'.  See "Compile Commands" in the manual, for more.

  ** Fewer calls to `stat'.

  Guile now stats only the .go file and the .scm file when loading a fresh
  compiled file.

  * Notable changes

  ** New module: `(web client)', a simple synchronous web client.

  See "Web Client" in the manual, for more.

  ** Users can now install compiled `.go' files.

  See "Installing Site Packages" in the manual.

  ** Remove Front-Cover and Back-Cover text from the manual.

  The manual is still under the GNU Free Documentation License, but no
  longer has any invariant sections.

  ** More helpful `guild help'.

  `guild' is Guile's multi-tool, for use in shell scripting.  Now it has a
  nicer interface for querying the set of existing commands, and getting
  help on those commands.  Try it out and see!

  ** New macro: `define-syntax-rule'

  `define-syntax-rule' is a shorthand to make a `syntax-rules' macro with
  one clause.  See "Syntax Rules" in the manual, for more.

  ** The `,time' REPL meta-command now has more precision.

  The output of this command now has microsecond precision, instead of
  10-millisecond precision.

  ** `(ice-9 match)' can now match records.

  See "Pattern Matching" in the manual, for more on matching records.

  ** New module: `(language tree-il debug)'.

  This module provides a tree-il verifier.  This is useful for people that
  generate tree-il, usually as part of a language compiler.

  ** New functions: `scm_is_exact', `scm_is_inexact'.

  These provide a nice C interface for Scheme's `exact?' and `inexact?',

  * Bugs fixed

  See the git log (or the ChangeLog) for more details on these bugs.

  ** Fix order of importing modules and resolving duplicates handlers.
  ** Fix a number of bugs involving extended (merged) generics.
  ** Fix invocation of merge-generics duplicate handler.
  ** Fix write beyond array end in arrays.c.
  ** Fix read beyond end of hashtable size array in hashtab.c.
  ** (web http): Locale-independent parsing and serialization of dates.
  ** Ensure presence of Host header in HTTP/1.1 requests.
  ** Fix take-right and drop-right for improper lists.
  ** Fix leak in get_current_locale().
  ** Fix recursive define-inlinable expansions.
  ** Check that srfi-1 procedure arguments are procedures.
  ** Fix r6rs `map' for multiple returns.
  ** Fix scm_tmpfile leak on POSIX platforms.
  ** Fix a couple of leaks (objcode->bytecode, make-boot-program).
  ** Fix guile-lib back-compatibility for module-stexi-documentation.
  ** Fix --listen option to allow other ports.
  ** Fix scm_to_latin1_stringn for substrings.
  ** Fix compilation of untyped arrays of rank not 1.
  ** Fix unparse-tree-il of <dynset>.
  ** Fix reading of #||||#.
  ** Fix segfault in GOOPS when class fields are redefined.
  ** Prefer poll(2) over select(2) to allow file descriptors above FD_SETSIZE.

You can follow Guile development in the Git repository and on the Guile
mailing lists.  Guile builds from the `master' branch of Git have
version number 2.1.x.

Guile versions with an odd middle number, e.g., 2.1.*, are unstable
development versions.  Even middle numbers indicate stable versions.
This has been the case since the 1.3.* series.

Please report bugs to address@hidden'.  We also welcome reports of
successful builds, which can be sent to the same email address.

Ludovic, on behalf of the Guile team.

Attachment: pgpsVMnLMEBFw.pgp
Description: PGP signature

reply via email to

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